From 6e3e002d43efe35a2b1ea2fd2493a604d30ce749 Mon Sep 17 00:00:00 2001 From: Charles Tapley Hoyt Date: Fri, 31 Jan 2025 00:26:02 +0100 Subject: [PATCH 1/2] Use explicit _GLibCVersion tuple This mirrors the _MuslVersion named tuple in the sibling `_musllinux.py` file --- crates/uv-python/python/packaging/_manylinux.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/uv-python/python/packaging/_manylinux.py b/crates/uv-python/python/packaging/_manylinux.py index baa9fac4fadab..0afed17d9faa7 100644 --- a/crates/uv-python/python/packaging/_manylinux.py +++ b/crates/uv-python/python/packaging/_manylinux.py @@ -150,7 +150,7 @@ def _glibc_version_string() -> str | None: return _glibc_version_string_confstr() or _glibc_version_string_ctypes() -def _parse_glibc_version(version_str: str) -> tuple[int, int]: +def _parse_glibc_version(version_str: str) -> _GLibCVersion: """Parse glibc version. We use a regexp instead of str.split because we want to discard any @@ -165,15 +165,15 @@ def _parse_glibc_version(version_str: str) -> tuple[int, int]: f" got: {version_str}", RuntimeWarning, ) - return -1, -1 - return int(m.group("major")), int(m.group("minor")) + return _GLibCVersion(-1, -1) + return _GLibCVersion(int(m.group("major")), int(m.group("minor"))) @functools.lru_cache() -def _get_glibc_version() -> tuple[int, int]: +def _get_glibc_version() -> _GLibCVersion: version_str = _glibc_version_string() if version_str is None: - return (-1, -1) + return _GLibCVersion(-1, -1) return _parse_glibc_version(version_str) From d26e1e3481944c72c5de2043f68f3338e6e57688 Mon Sep 17 00:00:00 2001 From: Charles Tapley Hoyt Date: Fri, 31 Jan 2025 00:53:16 +0100 Subject: [PATCH 2/2] Explicitly type legacy manylinux map --- crates/uv-python/python/packaging/_manylinux.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/uv-python/python/packaging/_manylinux.py b/crates/uv-python/python/packaging/_manylinux.py index 0afed17d9faa7..3c3aa54cbfb20 100644 --- a/crates/uv-python/python/packaging/_manylinux.py +++ b/crates/uv-python/python/packaging/_manylinux.py @@ -204,13 +204,13 @@ def _is_compatible(arch: str, version: _GLibCVersion) -> bool: return True -_LEGACY_MANYLINUX_MAP = { +_LEGACY_MANYLINUX_MAP: dict[_GLibCVersion, str] = { # CentOS 7 w/ glibc 2.17 (PEP 599) - (2, 17): "manylinux2014", + _GLibCVersion(2, 17): "manylinux2014", # CentOS 6 w/ glibc 2.12 (PEP 571) - (2, 12): "manylinux2010", + _GLibCVersion(2, 12): "manylinux2010", # CentOS 5 w/ glibc 2.5 (PEP 513) - (2, 5): "manylinux1", + _GLibCVersion(2, 5): "manylinux1", }