+
     hC  c                   s    ^ RI t ^ RIt^ RIHtHt ^ RIHtHt ^ RIH	t	 ]P                  ! ]4      t] P                  ! ^ R7      R R l4       t] P                  ! RR7      R	 R
 l4       tR# )i    N)OptionalTuple)
specifiersversionRequirement)Zmaxsizec                sl    V ^8  d   QhR\         \        ,          R\        \        R3,          R\        /# )   requires_pythonversion_info.return)r    strr   ZintZboolZformat   "B/usr/lib/python3.14/site-packages/pip/_internal/utils/packaging.py__annotate__r      s0     7 7c]727S/7	7    c                s    V f   R# \         P                  ! V 4      p\        P                  ! RP	                  \        \        V4      4      4      pW29   # )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.
TZ.)r   ZSpecifierSetr   ZparseZjoinZmapr
   )r   r   Zrequires_python_specifierZpython_versions   &&  r   check_requires_pythonr      sE      * 7 7 H]]388C\,B#CDN66r   i'  c                s0    V ^8  d   QhR\         R\        /# )r   
req_stringr	   )r
   r   r   r   r   r   r   $   s     # # # #r   c                s    \        V 4      # )z5Construct a packaging.Requirement object with cachingr   )r   s   &r   get_requirementr   #   s     z""r   )Z	functoolsZloggingZtypingr    r   Zpip._vendor.packagingr   r   Z"pip._vendor.packaging.requirementsr   Z	getLoggerZ__name__ZloggerZ	lru_cacher   r   ) r   r   <module>r      sb      " 5 :			8	$ R 7 !7. U## $#r   