Ë
    Çqj^  ã                   ó"  — d dl Z d dlZd dlZd dlmZmZmZmZ d dlm	Z	m
Z
 d dlmZ  ede«      Z ej                  e«      Z e j$                  d¬«      dee   d	eed
f   defd„«       Z e j$                  d¬«      dedefd„«       Zdedefd„Zy)é    N)ÚNewTypeÚOptionalÚTupleÚcast)Ú
specifiersÚversion©ÚRequirementÚNormalizedExtraé    )ÚmaxsizeÚrequires_pythonÚversion_info.Úreturnc                 óž   — | €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)r   r   Úrequires_python_specifierÚpython_versions       ú^/var/www/html/kelly-backend/venv/lib/python3.12/site-packages/pip/_internal/utils/packaging.pyÚcheck_requires_pythonr      sH   € ð ÐàÜ *× 7Ñ 7¸Ó HÐä—]‘] 3§8¡8¬C´°\Ó,BÓ#CÓD€NØÐ6Ð6Ð6ó    i   Ú
req_stringc                 ó   — t        | «      S )z5Construct a packaging.Requirement object with cachingr	   )r   s    r   Úget_requirementr   &   s   € ô �zÓ"Ð"r   Úextrac                 óh   — t        t        t        j                  dd| «      j	                  «       «      S )aD  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(   € ô ”¤§¡Ð(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Ú	lru_cacheÚintÚboolr   r   r&   © r   r   Ú<module>r3      sÃ   ðÛ Û Û 	ß 1Ó 1ç 5Ý :áÐ+¨SÓ1€à	ˆ×	Ñ	˜8Ó	$€ð €×Ñ˜RÔ ð7Ø˜c‘]ð7Ø27¸¸S¸±/ð7à	ò7ó !ð7ð. €×Ñ˜TÔ"ð# ð #¨ò #ó #ð#ð	P�cð 	P˜oô 	Pr   