PHP 8.2.31
Preview: packaging.py Size: 1.56 KB
//opt/imunify360/venv/lib64/python3.11/site-packages/pip/_internal/utils/packaging.py

from __future__ import annotations

import functools
import logging

from pip._vendor.packaging import specifiers, version
from pip._vendor.packaging.requirements import Requirement

logger = logging.getLogger(__name__)


@functools.lru_cache(maxsize=32)
def check_requires_python(
    requires_python: str | None, version_info: tuple[int, ...]
) -> bool:
    """
    Check if the given Python version matches a "Requires-Python" specifier.

    :param version_info: A 3-tuple of ints representing a Python
        major-minor-micro version to check (e.g. `sys.version_info[:3]`).

    :return: `True` if the given Python version satisfies the requirement.
        Otherwise, return `False`.

    :raises InvalidSpecifier: If `requires_python` has an invalid format.
    """
    if requires_python is None:
        # The package provides no information
        return True
    requires_python_specifier = specifiers.SpecifierSet(requires_python)

    python_version = version.parse(".".join(map(str, version_info)))
    return python_version in requires_python_specifier


@functools.lru_cache(maxsize=10000)
def get_requirement(req_string: str) -> Requirement:
    """Construct a packaging.Requirement object with caching"""
    # Parsing requirement strings is expensive, and is also expected to happen
    # with a low diversity of different arguments (at least relative the number
    # constructed). This method adds a cache to requirement object creation to
    # minimize repeated parsing of the same string to construct equivalent
    # Requirement objects.
    return Requirement(req_string)

Directory Contents

Dirs: 1 × Files: 26

Name Size Perms Modified Actions
- drwxr-xr-x 2026-05-27 11:04:30
Edit Download
1.64 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
2.46 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
6.47 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
868 B lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.61 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.13 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
2.40 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.25 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
6.73 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
689 B lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.64 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
4.88 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
13.10 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
23.17 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
1.56 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.73 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
1.43 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
8.77 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
9.09 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
12.67 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
1.56 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.37 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
4.36 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
3.27 KB lrw-r--r-- 2026-04-14 09:45:18
Edit Download
1015 B lrw-r--r-- 2026-04-14 09:45:18
Edit Download
0 B lrw-r--r-- 2026-04-14 09:45:18
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).