
    dhA                        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y)    )annotationsN)
specifiersversionRequirement    )maxsizec                    | yt        j                  |       }t        j                  dj	                  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.
    T.)r   SpecifierSetr   parsejoinmapstr)requires_pythonversion_inforequires_python_specifierpython_versions       _/var/www/html/vivango/api/ia/venv/lib/python3.12/site-packages/pip/_internal/utils/packaging.pycheck_requires_pythonr      sH      * 7 7 H]]388C\,B#CDN666    i'  c                    t        |       S )z5Construct a packaging.Requirement object with cachingr   )
req_strings    r   get_requirementr   $   s     z""r   )r   z
str | Noner   ztuple[int, ...]returnbool)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 :			8	$ R 77/>7	7 !7. U## $#r   