ó
    Þ j=  ã                   óö   • S SK r S SKrS SKrS SKJrJrJrJr  S SKJ	r	J
r
  S SKJr  \" S\5      r\R                  " \5      rS\\   S\\S4   S	\4S
 jr\ R*                  " SS9S\S	\4S j5       rS\S	\4S jrg)é    N)ÚNewTypeÚOptionalÚTupleÚcast)Ú
specifiersÚversion©ÚRequirementÚNormalizedExtraÚrequires_pythonÚversion_info.Úreturnc                 ó¤   • U c  g[         R                  " U 5      n[        R                  " SR	                  [        [        U5      5      5      nX2;   $ )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)r   r   Úrequires_python_specifierÚpython_versions       ÚW/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/utils/packaging.pyÚcheck_requires_pythonr      sE   € ð ÑàÜ *× 7Ò 7¸Ó HÐä—]’] 3§8¡8¬C´°\Ó,BÓ#CÓD€NØÑ6Ð6ó    i   )ÚmaxsizeÚ
req_stringc                 ó   • [        U 5      $ )z5Construct a packaging.Requirement object with cachingr	   )r   s    r   Úget_requirementr   %   s   € ô �zÓ"Ð"r   Úextrac                 ój   • [        [        [        R                  " SSU 5      R	                  5       5      $ )a0  Convert an arbitrary string to a standard 'extra' name

Any runs of non-alphanumeric characters are replaced with a single '_',
and the result is always lowercased.

This function is duplicated from ``pkg_resources``. Note that this is not
the same to either ``canonicalize_name`` or ``_egg_link_name``.
z[^A-Za-z0-9.-]+Ú_)r   r   ÚreÚsubÚlower)r   s    r   Ú
safe_extrar%   0   s(   € ô ”¤§¢Ð(9¸3ÀÓ!F×!LÑ!LÓ!NÓOÐOr   )Ú	functoolsÚloggingr"   Útypingr   r   r   r   Úpip._vendor.packagingr   r   Ú"pip._vendor.packaging.requirementsr
   r   r   Ú	getLoggerÚ__name__ÚloggerÚintÚboolr   Ú	lru_cacher   r%   © r   r   Ú<module>r2      s£   ðÛ Û Û 	ß 1Ó 1ç 5Ý :áÐ+¨SÓ1€à	×	Ò	˜8Ó	$€ð7Ø˜c‘]ð7Ø27¸¸S¸±/ð7à	ô7ð. ×Ò˜TÑ"ð# ð #¨ó #ó #ð#ð	P�cð 	P˜oõ 	Pr   