diff --git a/mach_nix/data/providers.py b/mach_nix/data/providers.py index 82f396d..3f3544a 100644 --- a/mach_nix/data/providers.py +++ b/mach_nix/data/providers.py @@ -291,21 +291,21 @@ class WheelDependencyProvider(DependencyProviderBase): cp_abi = f"cp{maj}{min}mu" if int(maj) == 2 else f"cp{maj}{min}m?" if self.system == "linux": self.preferred_wheels = ( - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-manylinux2014_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-manylinux2010_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-manylinux1_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-manylinux_2_5_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-manylinux_2_12_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-manylinux_2_17_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-linux_{self.platform}"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-any"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-manylinux2014_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-manylinux2010_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-manylinux1_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-manylinux_2_17_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-manylinux_2_12_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-manylinux_2_5_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-linux_{self.platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-any"), ) elif self.system == "darwin": platform = "arm64" if self.platform == "aarch64" else self.platform self.preferred_wheels = ( - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-any"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-macosx_\d*_\d*_universal"), - re.compile(rf".*(py{maj}|cp{maj}){min}?[\.-].*({cp_abi}|abi3|none)-macosx_\d*_\d*_{platform}"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-any"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-macosx_\d*_\d*_universal"), + re.compile(rf".*(py{maj}|cp{maj}).?.?[\.-].*({cp_abi}|abi3|none)-macosx_\d*_\d*_{platform}"), ) else: raise Exception(f"Unsupported Platform {platform.system()}") diff --git a/mach_nix/tests/test_providers.py b/mach_nix/tests/test_providers.py index b6e67f9..92811b9 100644 --- a/mach_nix/tests/test_providers.py +++ b/mach_nix/tests/test_providers.py @@ -8,11 +8,11 @@ from mach_nix.versions import PyVer @pytest.mark.parametrize("expected, py_ver, wheel_fn, system, platform", [ # with multiple versions (False, '2.7.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), - (False, '3.4.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), + (True, '3.4.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), (True, '3.5.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), (True, '3.6.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), (True, '3.7.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), - (False, '3.8.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), + (True, '3.8.0', 'PyQt5-5.15.1-5.15.1-cp35.cp36.cp37-abi3-manylinux2014_x86_64.whl', "linux", "x86_64"), # manylinux_${GLIBCMAJOR}_${GLIBCMINOR} (True, '3.9.0', 'pymaid-1.0.0a1-cp39-cp39-manylinux_2_5_x86_64.whl', "linux", "x86_64"), # combination of manylinux GLIBC* and YEAR formats