a
    ñ»jA  ã                   @  s€   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 	e
¡Zejdd�ddd	d
œdd„ƒZejdd�dddœdd„ƒZdS )é    )ÚannotationsN)Ú
specifiersÚversion©ÚRequirementé    )Úmaxsizez
str | Noneztuple[int, ...]Úbool)Úrequires_pythonÚversion_infoÚreturnc                 C  s4   | du rdS t  | ¡}t 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_version© r   úCE:\soccer\ml_env\Lib\site-packages\pip/_internal/utils/packaging.pyÚcheck_requires_python   s
    
r   i'  r   r   )Ú
req_stringr   c                 C  s   t | ƒS )z5Construct a packaging.Requirement object with cachingr   )r   r   r   r   Úget_requirement$   s    r   )Ú
__future__r   Ú	functoolsÚloggingZpip._vendor.packagingr   r   Ú"pip._vendor.packaging.requirementsr   Ú	getLoggerÚ__name__ÚloggerÚ	lru_cacher   r   r   r   r   r   Ú<module>   s   


