Current File : //usr/lib/python3/dist-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc |
�
/�g< � � � d dl Z d dlZd dlZd dlmZmZmZmZ d dlm Z m
Z
d dlmZ ede
� Z ej e� Zdee
deedf d efd
�Z e j* d�� d
e
d efd�� Zde
d efd�Zy)� N)�NewType�Optional�Tuple�cast)�
specifiers�version��Requirement�NormalizedExtra�requires_python�version_info.�returnc � � | �yt j | � }t j dj 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 �?/usr/lib/python3/dist-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 )�maxsize�
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 dd| � 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% 0 s( � � �����(9�3��!F�!L�!L�!N�O�Or )� functools�loggingr"