Skip to content

Commit

Permalink
allow -i 3.13t
Browse files Browse the repository at this point in the history
  • Loading branch information
davidhewitt committed Nov 26, 2024
1 parent 3316093 commit 514d09c
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions src/build_options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1266,12 +1266,7 @@ fn find_interpreter_in_sysconfig(
)
} else if let Some(ver) = python.strip_prefix("python") {
// Also accept things like `python3.13t` for free-threaded python
let (ver, abiflags) =
if let Some(ver) = ver.strip_prefix('-').unwrap_or(ver).strip_suffix('t') {
(ver, "t")
} else {
(ver, "")
};
let (ver, abiflags) = maybe_free_threaded(ver.strip_prefix('-').unwrap_or(ver));
(InterpreterKind::CPython, ver, abiflags)
} else if python
.chars()
Expand All @@ -1280,7 +1275,8 @@ fn find_interpreter_in_sysconfig(
.unwrap_or(false)
{
// Eg: -i 3.9 without interpreter kind, assume it's CPython
(InterpreterKind::CPython, &*python, "")
let (ver, abiflags) = maybe_free_threaded(&python);
(InterpreterKind::CPython, ver, abiflags)
} else {
// if interpreter not known
if std::path::Path::new(&python).is_file() {
Expand Down Expand Up @@ -1319,6 +1315,14 @@ fn find_interpreter_in_sysconfig(
Ok(interpreters)
}

fn maybe_free_threaded(python_ver: &str) -> (&str, &str) {
if let Some(ver) = python_ver.strip_suffix('t') {
(ver, "t")
} else {
(python_ver, "")
}
}

/// We need to pass the global flags to cargo metadata
/// (https://github.com/PyO3/maturin/issues/211 and https://github.com/PyO3/maturin/issues/472),
/// but we can't pass all the extra args, as e.g. `--target` isn't supported, so this tries to
Expand Down

0 comments on commit 514d09c

Please sign in to comment.