Repository: astral-sh/uv
File: crates/uv-configuration/src/target_triple.rs (Rust)

Code before:
                },
                Arch::Aarch64,
            ),
            Self::Aarch64Manylinux239 => Platform::new(
                Os::Manylinux {
                    major: 2,
                    minor: 39,
                },
                Arch::Aarch64,
            ),
            Self::Aarch64Manylinux240 => Platform::new(
                Os::Manylinux {
                    major: 2,
                    minor: 40,
                },
                Arch::Aarch64,
            ),
            Self::Wasm32Pyodide2024 => Platform::new(
                Os::Pyodide {
                    major: 2024,
                    minor: 0,
                },
                Arch::Wasm32,
            ),
            Self::Aarch64LinuxAndroid => {
                let api_level = android_api_level().map_or(21, |api_level| {
                    debug!("Found Android API level: {}", api_level);
                    api_level
                });
                Platform::new(Os::Android { api_level }, Arch::Aarch64)
            }
            Self::X8664LinuxAndroid => {
                let api_level = android_api_level().map_or(21, |api_level| {
                    debug!("Found Android API level: {}", api_level);
                    api_level
                });
                Platform::new(Os::Android { api_level }, Arch::X86_64)
            }
        }
    }

    /// Return the `platform_machine` value for the target.
    pub fn platform_machine(self) -> &'static str {
        match self {
            Self::Windows | Self::X8664PcWindowsMsvc => "x86_64",
            Self::Aarch64PcWindowsMsvc => "ARM64",
            Self::Linux | Self::X8664UnknownLinuxGnu => "x86_64",
            Self::Macos | Self::Aarch64AppleDarwin => "arm64",
            Self::I686PcWindowsMsvc => "x86",
            Self::X8664AppleDarwin => "x86_64",
            Self::Aarch64UnknownLinuxGnu => "aarch64",

Review comment (suggestion):
In Python 3.14 the minimum API level has been [increased to 24](https://github.com/python/cpython/blob/main/Android/android-env.sh), and packages on PyPI will be tagged accordingly. So I'm not sure what's the best way to handle this in uv, but it would be preferable not to exclude all of those packages by default.

Code after:
                },
                Arch::Aarch64,
            ),
            Self::Aarch64Manylinux239 => Platform::new(
                Os::Manylinux {
                    major: 2,
                    minor: 39,
                },
                Arch::Aarch64,
            ),
            Self::Aarch64Manylinux240 => Platform::new(
                Os::Manylinux {
                    major: 2,
                    minor: 40,
                },
                Arch::Aarch64,
            ),
            Self::Wasm32Pyodide2024 => Platform::new(
                Os::Pyodide {
                    major: 2024,
                    minor: 0,
                },
                Arch::Wasm32,
            ),
            Self::Aarch64LinuxAndroid => {
                let api_level = android_api_level().map_or(24, |api_level| {
                    debug!("Found Android API level: {}", api_level);
                    api_level
                });
                Platform::new(Os::Android { api_level }, Arch::Aarch64)
            }
            Self::X8664LinuxAndroid => {
                let api_level = android_api_level().map_or(24, |api_level| {
                    debug!("Found Android API level: {}", api_level);
                    api_level
                });
                Platform::new(Os::Android { api_level }, Arch::X86_64)
            }
        }
    }

    /// Return the `platform_machine` value for the target.
    pub fn platform_machine(self) -> &'static str {
        match self {
            Self::Windows | Self::X8664PcWindowsMsvc => "x86_64",
            Self::Aarch64PcWindowsMsvc => "ARM64",
            Self::Linux | Self::X8664UnknownLinuxGnu => "x86_64",
            Self::Macos | Self::Aarch64AppleDarwin => "arm64",
            Self::I686PcWindowsMsvc => "x86",
            Self::X8664AppleDarwin => "x86_64",
            Self::Aarch64UnknownLinuxGnu => "aarch64",