mirror of
https://github.com/astral-sh/uv.git
synced 2025-11-17 18:57:30 +00:00
Log skip reasons during Python installation key interpreter match checks (#13472)
Investigating https://github.com/astral-sh/uv/issues/13471
This commit is contained in:
parent
18a1f0d9db
commit
e92c17881c
1 changed files with 25 additions and 4 deletions
|
|
@ -342,30 +342,51 @@ impl PythonDownloadRequest {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn satisfied_by_interpreter(&self, interpreter: &Interpreter) -> bool {
|
pub fn satisfied_by_interpreter(&self, interpreter: &Interpreter) -> bool {
|
||||||
|
let executable = interpreter.sys_executable().display();
|
||||||
if let Some(version) = self.version() {
|
if let Some(version) = self.version() {
|
||||||
if !version.matches_interpreter(interpreter) {
|
if !version.matches_interpreter(interpreter) {
|
||||||
|
let interpreter_version = interpreter.python_version();
|
||||||
|
debug!(
|
||||||
|
"Skipping interpreter at `{executable}`: version `{interpreter_version}` does not match request `{version}`"
|
||||||
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(os) = self.os() {
|
if let Some(os) = self.os() {
|
||||||
if &Os::from(interpreter.platform().os()) != os {
|
let interpreter_os = Os::from(interpreter.platform().os());
|
||||||
|
if &interpreter_os != os {
|
||||||
|
debug!(
|
||||||
|
"Skipping interpreter at `{executable}`: operating system `{interpreter_os}` does not match request `{os}`"
|
||||||
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(arch) = self.arch() {
|
if let Some(arch) = self.arch() {
|
||||||
if &Arch::from(&interpreter.platform().arch()) != arch {
|
let interpreter_arch = Arch::from(&interpreter.platform().arch());
|
||||||
|
if &interpreter_arch != arch {
|
||||||
|
debug!(
|
||||||
|
"Skipping interpreter at `{executable}`: architecture `{interpreter_arch}` does not match request `{arch}`"
|
||||||
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(implementation) = self.implementation() {
|
if let Some(implementation) = self.implementation() {
|
||||||
if LenientImplementationName::from(interpreter.implementation_name())
|
let interpreter_implementation = interpreter.implementation_name();
|
||||||
|
if LenientImplementationName::from(interpreter_implementation)
|
||||||
!= LenientImplementationName::from(*implementation)
|
!= LenientImplementationName::from(*implementation)
|
||||||
{
|
{
|
||||||
|
debug!(
|
||||||
|
"Skipping interpreter at `{executable}`: implementation `{interpreter_implementation}` does not match request `{implementation}`"
|
||||||
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(libc) = self.libc() {
|
if let Some(libc) = self.libc() {
|
||||||
if &Libc::from(interpreter.platform().os()) != libc {
|
let interpreter_libc = Libc::from(interpreter.platform().os());
|
||||||
|
if &interpreter_libc != libc {
|
||||||
|
debug!(
|
||||||
|
"Skipping interpreter at `{executable}`: libc `{interpreter_libc}` does not match request `{libc}`"
|
||||||
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue