
    WhA                        d dl mZ d dlZd dlZd dlmZmZ d dlmZ  ej	        e
          Z ej        d          dd            Z ej        d          dd            ZdS )    )annotationsN)
specifiersversionRequirement    )maxsizerequires_python
str | Noneversion_infotuple[int, ...]returnboolc                    | dS t          j        |           }t          j        d                    t          t          |                              }||v S )a  
    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.
    NT.)r   SpecifierSetr   parsejoinmapstr)r
   r   requires_python_specifierpython_versions       o/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/pip/_internal/utils/packaging.pycheck_requires_pythonr      sQ     t * 7 H H]388C\,B,B#C#CDDN666    i'  
req_stringr   r   c                     t          |           S )z5Construct a packaging.Requirement object with cachingr   )r   s    r   get_requirementr   $   s     z"""r   )r
   r   r   r   r   r   )r   r   r   r   )
__future__r   	functoolsloggingpip._vendor.packagingr   r   "pip._vendor.packaging.requirementsr   	getLogger__name__logger	lru_cacher   r    r   r   <module>r)      s    " " " " " "      5 5 5 5 5 5 5 5 : : : : : :		8	$	$ R   7 7 7 ! 7. U#### # # $## # #r   