← Back
Editing: requirements.cpython-312.pyc
� ]*j � � � d dl mZ d dlmZ ddlmZ ddlmZ ddl m Z mZ ddlm Z ddlmZ d d gZdd�Z G d� d e� Z G d � d � Zy)� )�annotations)�Iterator� )�parse_requirement)�ParserSyntaxError)�Marker�_normalize_extra_values)�SpecifierSet)�canonicalize_name�InvalidRequirement�Requirementc � � t S �N)�__all__� � �E/opt/hc_python/lib/python3.12/site-packages/packaging/requirements.py�__dir__r s � ��Nr c � � e Zd ZdZy)r zJ An invalid requirement was found, users should refer to PEP 508. N)�__name__� __module__�__qualname__�__doc__r r r r r s � �r c �P � e Zd ZdZdd�Zdd�Zd d�Zdd�Zd d�Zd d�Z dd�Z dd �Zy )r ao Parse a requirement. Parse a given requirement string into its parts, such as name, specifier, URL, and extras. Raises InvalidRequirement on a badly-formed requirement string. Instances are safe to serialize with :mod:`pickle`. They use a stable format so the same pickle can be loaded in future packaging releases. .. versionchanged:: 26.2 Added a stable pickle format. Pickles created with packaging 26.2+ can be unpickled with future releases. Backward compatibility with pickles from packaging < 26.2 is supported but may be removed in a future release. c �� � t |� }|j | _ |j xs d | _ t |j xs g � | _ t |j � | _ d | _ |j �Ct j t � | _ t |j � | j _ y y # t $ r}t t |� � |�d }~ww xY wr )�_parse_requirementr r �str�name�url�set�extrasr � specifier�markerr �__new__r �_markers)�self�requirement_string�parsed�es r �__init__zRequirement.__init__5 s� � � 4�'�(:�;�F� ���� �%�z�z�1�T��� #�F�M�M�$7�R� 8���'3�F�4D�4D�'E���%)����=�=�$� �.�.��0�D�K�#:�6�=�=�#I�D�K�K� � %�� !� 4�$�S��V�,�!�3�� 4�s �C � C%�C � C%c # �` K � |�� | j r,dj t | j � � }d|� d��� | j rt | j � �� | j r!d| j � ��� | j rd�� | j rd| j � ��� y y �w)N�,�[�]z @ � z; )r! �join�sortedr"