Skip to content

Commit

Permalink
Replace distutils usage with sysconfig (#396)
Browse files Browse the repository at this point in the history
  • Loading branch information
uranusjr committed Apr 23, 2021
1 parent 64f82b5 commit c800826
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 20 deletions.
5 changes: 2 additions & 3 deletions packaging/tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
# for complete details.

import collections
import distutils.util
import logging
import os
import platform
Expand Down Expand Up @@ -715,7 +714,7 @@ def _manylinux_tags(linux: str, arch: str) -> Iterator[str]:


def _linux_platforms(is_32bit: bool = _32_BIT_INTERPRETER) -> Iterator[str]:
linux = _normalize_string(distutils.util.get_platform())
linux = _normalize_string(sysconfig.get_platform())
if is_32bit:
if linux == "linux_x86_64":
linux = "linux_i686"
Expand All @@ -728,7 +727,7 @@ def _linux_platforms(is_32bit: bool = _32_BIT_INTERPRETER) -> Iterator[str]:


def _generic_platforms() -> Iterator[str]:
yield _normalize_string(distutils.util.get_platform())
yield _normalize_string(sysconfig.get_platform())


def _platform_tags() -> Iterator[str]:
Expand Down
33 changes: 16 additions & 17 deletions tests/test_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import ctypes
except ImportError:
ctypes = None
import distutils.util
import os
import platform
import sys
Expand Down Expand Up @@ -456,14 +455,14 @@ def test_glibc_version_string_none(self, monkeypatch):
def test_linux_platforms_32_64bit_on_64bit_os(
self, arch, is_32bit, expected, monkeypatch
):
monkeypatch.setattr(distutils.util, "get_platform", lambda: arch)
monkeypatch.setattr(sysconfig, "get_platform", lambda: arch)
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False)
linux_platform = list(tags._linux_platforms(is_32bit=is_32bit))[-1]
assert linux_platform == expected

def test_linux_platforms_manylinux_unsupported(self, monkeypatch):
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args: False)
linux_platform = list(tags._linux_platforms(is_32bit=False))
Expand All @@ -473,15 +472,15 @@ def test_linux_platforms_manylinux1(self, monkeypatch):
monkeypatch.setattr(
tags, "_is_manylinux_compatible", lambda name, *args: name == "manylinux1"
)
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(platform, "machine", lambda: "x86_64")
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
platforms = list(tags._linux_platforms(is_32bit=False))
arch = platform.machine()
assert platforms == ["manylinux1_" + arch, "linux_" + arch]

def test_linux_platforms_manylinux2010(self, monkeypatch):
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(platform, "machine", lambda: "x86_64")
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.12", raising=False)
platforms = list(tags._linux_platforms(is_32bit=False))
Expand All @@ -502,7 +501,7 @@ def test_linux_platforms_manylinux2010(self, monkeypatch):
assert platforms == expected

def test_linux_platforms_manylinux2014(self, monkeypatch):
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(platform, "machine", lambda: "x86_64")
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.17", raising=False)
platforms = list(tags._linux_platforms(is_32bit=False))
Expand Down Expand Up @@ -535,7 +534,7 @@ def test_linux_platforms_manylinux2014_armhf_abi(self, monkeypatch):
"_is_manylinux_compatible",
lambda name, *args: name == "manylinux2014",
)
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_armv7l")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_armv7l")
monkeypatch.setattr(
sys,
"executable",
Expand All @@ -547,7 +546,7 @@ def test_linux_platforms_manylinux2014_armhf_abi(self, monkeypatch):

def test_linux_platforms_manylinux2014_i386_abi(self, monkeypatch):
monkeypatch.setattr(tags, "_glibc_version_string", lambda: "2.17")
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(
sys,
"executable",
Expand Down Expand Up @@ -579,7 +578,7 @@ def test_linux_platforms_manylinux_glibc3(self, monkeypatch):
# test for a future glic 3.x version
monkeypatch.setattr(tags, "_glibc_version_string", lambda: "3.2")
monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda name, *args: True)
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_aarch64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_aarch64")
monkeypatch.setattr(
sys,
"executable",
Expand All @@ -597,7 +596,7 @@ def test_linux_platforms_manylinux2014_armv6l(self, monkeypatch):
monkeypatch.setattr(
tags, "_is_manylinux_compatible", lambda name, _: name == "manylinux2014"
)
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_armv6l")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_armv6l")
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
platforms = list(tags._linux_platforms(is_32bit=True))
expected = ["linux_armv6l"]
Expand All @@ -611,7 +610,7 @@ def test_linux_platforms_not_manylinux_abi(
self, monkeypatch, machine, abi, alt_machine
):
monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda name, _: False)
monkeypatch.setattr(distutils.util, "get_platform", lambda: f"linux_{machine}")
monkeypatch.setattr(sysconfig, "get_platform", lambda: f"linux_{machine}")
monkeypatch.setattr(
sys,
"executable",
Expand Down Expand Up @@ -951,7 +950,7 @@ def test__generic_abi_no_soabi(self, monkeypatch):
assert not list(tags._generic_abi())

def test_generic_platforms(self):
platform = distutils.util.get_platform().replace("-", "_")
platform = sysconfig.get_platform().replace("-", "_")
platform = platform.replace(".", "_")
assert list(tags._generic_platforms()) == [platform]

Expand Down Expand Up @@ -1225,14 +1224,14 @@ def test_generic(self, monkeypatch):
assert result[-1] == expected

def test_linux_platforms_manylinux2014_armv6l(self, monkeypatch, manylinux_module):
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_armv6l")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_armv6l")
monkeypatch.setattr(os, "confstr", lambda x: "glibc 2.20", raising=False)
platforms = list(tags._linux_platforms(is_32bit=True))
expected = ["linux_armv6l"]
assert platforms == expected

def test_skip_manylinux_2014(self, monkeypatch, manylinux_module):
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_ppc64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_ppc64")
monkeypatch.setattr(tags, "_get_glibc_version", lambda: (2, 20))
monkeypatch.setattr(
manylinux_module, "manylinux2014_compatible", False, raising=False
Expand All @@ -1255,7 +1254,7 @@ def test_skip_manylinux_2014(self, monkeypatch, manylinux_module):
def test_linux_platforms_not_manylinux_abi(
self, monkeypatch, manylinux_module, machine, abi, alt_machine
):
monkeypatch.setattr(distutils.util, "get_platform", lambda: f"linux_{machine}")
monkeypatch.setattr(sysconfig, "get_platform", lambda: f"linux_{machine}")
monkeypatch.setattr(
sys,
"executable",
Expand All @@ -1277,7 +1276,7 @@ def manylinux_compatible(tag_major, tag_minor, tag_arch):
return False

monkeypatch.setattr(tags, "_get_glibc_version", lambda: (major, minor))
monkeypatch.setattr(distutils.util, "get_platform", lambda: f"linux_{machine}")
monkeypatch.setattr(sysconfig, "get_platform", lambda: f"linux_{machine}")
monkeypatch.setattr(
manylinux_module,
"manylinux_compatible",
Expand All @@ -1299,7 +1298,7 @@ def manylinux_compatible(tag_major, tag_minor, tag_arch):
return None

monkeypatch.setattr(tags, "_get_glibc_version", lambda: (2, 30))
monkeypatch.setattr(distutils.util, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(sysconfig, "get_platform", lambda: "linux_x86_64")
monkeypatch.setattr(
manylinux_module,
"manylinux_compatible",
Expand Down

0 comments on commit c800826

Please sign in to comment.