
    g^                        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\ R$                  " SS9S\\   S	\\S
4   S\4S j5       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    )maxsize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       e/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/pip/_internal/utils/packaging.pycheck_requires_pythonr      sE      * 7 7 H]]388C\,B#CDN66    i   
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&   1   s(     (93!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	lru_cacheintboolr   r   r&    r   r   <module>r3      s      	 1 1 5 :+S1			8	$ R 7c]727S/7	7 !7. T"# # # ##	Pc 	Po 	Pr   