def test_default_python_version_needs_underscore(self, monkeypatch): monkeypatch.setattr(sys, "version_info", (3, 11)) result = list(tags.compatible_tags(interpreter="cp311", platforms=["plat"])) assert result == [ tags.Tag("py311", "none", "plat"), tags.Tag("py3", "none", "plat"), tags.Tag("py310", "none", "plat"), tags.Tag("py39", "none", "plat"), tags.Tag("py38", "none", "plat"), tags.Tag("py37", "none", "plat"), tags.Tag("py36", "none", "plat"), tags.Tag("py35", "none", "plat"), tags.Tag("py34", "none", "plat"), tags.Tag("py33", "none", "plat"), tags.Tag("py32", "none", "plat"), tags.Tag("py31", "none", "plat"), tags.Tag("py30", "none", "plat"), tags.Tag("cp311", "none", "any"), tags.Tag("py311", "none", "any"), tags.Tag("py3", "none", "any"), tags.Tag("py310", "none", "any"), tags.Tag("py39", "none", "any"), tags.Tag("py38", "none", "any"), tags.Tag("py37", "none", "any"), tags.Tag("py36", "none", "any"), tags.Tag("py35", "none", "any"), tags.Tag("py34", "none", "any"), tags.Tag("py33", "none", "any"), tags.Tag("py32", "none", "any"), tags.Tag("py31", "none", "any"), tags.Tag("py30", "none", "any"), ]
def test_major_only_python_version(self): result = list(tags.compatible_tags((3, ), "cp33", ["plat"])) assert result == [ tags.Tag("py3", "none", "plat"), tags.Tag("cp33", "none", "any"), tags.Tag("py3", "none", "any"), ]
def test_default_interpreter(self): result = list(tags.compatible_tags((3, 1), platforms=["plat"])) assert result == [ tags.Tag("py31", "none", "plat"), tags.Tag("py3", "none", "plat"), tags.Tag("py30", "none", "plat"), tags.Tag("py31", "none", "any"), tags.Tag("py3", "none", "any"), tags.Tag("py30", "none", "any"), ]
def get_supported_tags(self): """ Mimic the output of packaging.tags.sys_tags() on the given platform """ return list( cpython_tags(python_version=self._python_version, platforms=self._platforms)) + list( compatible_tags( python_version=self._python_version, platforms=self._platforms))
def pyodide_tags() -> Iterator[Tag]: """ Returns the sequence of tag triples for the Pyodide interpreter. The sequence is ordered in decreasing specificity. """ PYMAJOR = get_make_flag("PYMAJOR") PYMINOR = get_make_flag("PYMINOR") python_version = (int(PYMAJOR), int(PYMINOR)) yield from cpython_tags(platforms=[PLATFORM], python_version=python_version) yield from compatible_tags(platforms=[PLATFORM], python_version=python_version)
def test_default_python_version(self, monkeypatch): monkeypatch.setattr(sys, "version_info", (3, 1)) result = list(tags.compatible_tags(interpreter="cp31", platforms=["plat"])) assert result == [ tags.Tag("py31", "none", "plat"), tags.Tag("py3", "none", "plat"), tags.Tag("py30", "none", "plat"), tags.Tag("cp31", "none", "any"), tags.Tag("py31", "none", "any"), tags.Tag("py3", "none", "any"), tags.Tag("py30", "none", "any"), ]
def test_default_platforms(self, monkeypatch): monkeypatch.setattr(tags, "_platform_tags", lambda: ["plat"]) result = list(tags.compatible_tags((3, 1), "cp31")) assert result == [ tags.Tag("py31", "none", "plat"), tags.Tag("py3", "none", "plat"), tags.Tag("py30", "none", "plat"), tags.Tag("cp31", "none", "any"), tags.Tag("py31", "none", "any"), tags.Tag("py3", "none", "any"), tags.Tag("py30", "none", "any"), ]
def get_supported( version=None, # type: Optional[str] platforms=None, # type: Optional[List[str]] impl=None, # type: Optional[str] abis=None, # type: Optional[List[str]] ): # type: (...) -> List[Tag] """Return a list of supported tags for each version specified in `versions`. :param version: a string version, of the form "33" or "32", or None. The version will be assumed to support our ABI. :param platforms: specify a list of platforms you want valid tags for, or None. If None, use the local system platform. :param impl: specify the exact implementation you want valid tags for, or None. If None, use the local interpreter impl. :param abis: specify a list of abis you want valid tags for, or None. If None, use the local interpreter abi. """ supported = [] # type: List[Tag] python_version = None # type: Optional[PythonVersion] if version is not None: python_version = _get_python_version(version) interpreter = _get_custom_interpreter(impl, version) platforms = _expand_allowed_platforms(platforms) is_cpython = (impl or interpreter_name()) == "cp" if is_cpython: supported.extend( cpython_tags( python_version=python_version, abis=abis, platforms=platforms, )) else: supported.extend( generic_tags( interpreter=interpreter, abis=abis, platforms=platforms, )) supported.extend( compatible_tags( python_version=python_version, interpreter=interpreter, platforms=platforms, )) return supported
def test_all_args_needs_underscore(self): result = list(tags.compatible_tags((3, 11), "cp311", ["plat1", "plat2"])) assert result == [ tags.Tag("py311", "none", "plat1"), tags.Tag("py311", "none", "plat2"), tags.Tag("py3", "none", "plat1"), tags.Tag("py3", "none", "plat2"), tags.Tag("py310", "none", "plat1"), tags.Tag("py310", "none", "plat2"), tags.Tag("py39", "none", "plat1"), tags.Tag("py39", "none", "plat2"), tags.Tag("py38", "none", "plat1"), tags.Tag("py38", "none", "plat2"), tags.Tag("py37", "none", "plat1"), tags.Tag("py37", "none", "plat2"), tags.Tag("py36", "none", "plat1"), tags.Tag("py36", "none", "plat2"), tags.Tag("py35", "none", "plat1"), tags.Tag("py35", "none", "plat2"), tags.Tag("py34", "none", "plat1"), tags.Tag("py34", "none", "plat2"), tags.Tag("py33", "none", "plat1"), tags.Tag("py33", "none", "plat2"), tags.Tag("py32", "none", "plat1"), tags.Tag("py32", "none", "plat2"), tags.Tag("py31", "none", "plat1"), tags.Tag("py31", "none", "plat2"), tags.Tag("py30", "none", "plat1"), tags.Tag("py30", "none", "plat2"), tags.Tag("cp311", "none", "any"), tags.Tag("py311", "none", "any"), tags.Tag("py3", "none", "any"), tags.Tag("py310", "none", "any"), tags.Tag("py39", "none", "any"), tags.Tag("py38", "none", "any"), tags.Tag("py37", "none", "any"), tags.Tag("py36", "none", "any"), tags.Tag("py35", "none", "any"), tags.Tag("py34", "none", "any"), tags.Tag("py33", "none", "any"), tags.Tag("py32", "none", "any"), tags.Tag("py31", "none", "any"), tags.Tag("py30", "none", "any"), ]
def test_all_args(self): result = list(tags.compatible_tags((3, 3), "cp33", ["plat1", "plat2"])) assert result == [ tags.Tag("py33", "none", "plat1"), tags.Tag("py33", "none", "plat2"), tags.Tag("py3", "none", "plat1"), tags.Tag("py3", "none", "plat2"), tags.Tag("py32", "none", "plat1"), tags.Tag("py32", "none", "plat2"), tags.Tag("py31", "none", "plat1"), tags.Tag("py31", "none", "plat2"), tags.Tag("py30", "none", "plat1"), tags.Tag("py30", "none", "plat2"), tags.Tag("cp33", "none", "any"), tags.Tag("py33", "none", "any"), tags.Tag("py3", "none", "any"), tags.Tag("py32", "none", "any"), tags.Tag("py31", "none", "any"), tags.Tag("py30", "none", "any"), ]