Ejemplo n.º 1
0
 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"),
     ]
Ejemplo n.º 2
0
 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"),
     ]
Ejemplo n.º 3
0
 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"),
     ]
Ejemplo n.º 4
0
 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))
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
 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"),
     ]
Ejemplo n.º 7
0
 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"),
     ]
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
 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"),
     ]
Ejemplo n.º 10
0
 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"),
     ]