Your IP : 216.73.216.189


Current Path : /snap/certbot/5603/lib/python3.12/site-packages/packaging/__pycache__/
Upload File :
Current File : //snap/certbot/5603/lib/python3.12/site-packages/packaging/__pycache__/requirements.cpython-312.pyc

�

�j���ddlmZddlmZddlmZddlmZddl	m
Z
mZddlm
Z
ddlmZd	d
gZdd�ZGd�d	e�ZGd
�d
�Zy)�)�annotations)�Iterator�)�parse_requirement)�ParserSyntaxError)�Marker�_normalize_extra_values)�SpecifierSet)�canonicalize_name�InvalidRequirement�Requirementc��tS�N)�__all__����/build/snapcraft-certbot-54d6d23c1eba5f776fc280588daee8b3/parts/certbot/install/lib/python3.12/site-packages/packaging/requirements.py�__dir__rs���Nrc��eZdZdZy)rzJ
    An invalid requirement was found, users should refer to PEP 508.
    N)�__name__�
__module__�__qualname__�__doc__rrrrrs��rc�P�eZdZdZdd�Zdd�Zd
d�Zdd�Zd
d�Zd
d�Z	dd�Z
dd	�Zy
)r
aoParse 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
xsd|_t
|jxsg�|_t|j�|_	d|_
|j�Ctjt�|_
t|j�|j_yy#t$r}tt|��|�d}~wwxYwr)�_parse_requirementrr�str�name�url�set�extrasr
�	specifier�markerr�__new__r	�_markers)�self�requirement_string�parsed�es    r�__init__zRequirement.__init__5s���	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�|��|jr,djt|j��}d|�d���|jrt	|j���|j
r!d|j
����|jrd��|jrd|j����yy�w)N�,�[�]z @ � z; )r!�join�sortedr"rrr#)r&r�formatted_extrass   r�_iter_partszRequirement._iter_partsDs������
��;�;�"�x�x��t�{�{�(;�<���&�'�q�)�)��>�>��d�n�n�%�%��8�8�����z�"�"��{�{��	��;�;��t�{�{�m�$�$��s�B,B.c��t|�Sr)r�r&s r�__getstate__zRequirement.__getstate__Vs���4�y�rc��t|t�rb	t|�}|j
|_|j|_|j|_|j|_|j|_	yt|t�r|jj|�yt	d|����#t$r}t	d|���|�d}~wwxYw)Nz Cannot restore Requirement from )
�
isinstancerr
r�	TypeErrorrrr!r"r#�dict�__dict__�update)r&�state�tmp�excs    r�__setstate__zRequirement.__setstate__[s����e�S�!�
W�!�%�(�����D�I��w�w�D�H��*�*�D�K� �]�]�D�N��*�*�D�K���e�T�"��M�M� � ��'���:�5�)�D�E�E��&�
W��"B�5�)� L�M�SV�V��
W�s�B-�-	C
�6C�C
c�V�dj|j|j��S)N�)r0r3rr5s r�__str__zRequirement.__str__ns ���w�w�t�'�'��	�	�2�3�3rc�N�d|jj�dt|��d�S)N�<�(z)>)�	__class__rrr5s r�__repr__zRequirement.__repr__qs&���4�>�>�*�*�+�1�S��Y�M��<�<rc	�n�tt|jt|j����Sr)�hash�tupler3rrr5s r�__hash__zRequirement.__hash__ts'���E�$�*�*�+<�T�Y�Y�+G�H�I�J�Jrc�\�t|t�stSt|j�t|j�k(xrj|j
|j
k(xrO|j|jk(xr4|j|jk(xr|j|jk(Sr)	r8r
�NotImplementedrrr!r"rr#)r&�others  r�__eq__zRequirement.__eq__ws����%��-�!�!�
�d�i�i�(�,=�e�j�j�,I�I�
,����u�|�|�+�
,����%�/�/�1�
,����E�I�I�%�
,����u�|�|�+�	
rN)r'r�return�None)rrrQz
Iterator[str])rQr)r=�objectrQrR)rQ�int)rOrSrQ�bool)rrrrr*r3r6r@rCrHrLrPrrrr
r
s2���,
J�%�$�
F�&4�=�K�

rN)rQz	list[str])�
__future__r�typingr�_parserrr�
_tokenizerr�markersrr	�
specifiersr
�utilsrrr�
ValueErrorrr
rrr�<module>r^sH��#��<�)�4�$�$���������c
�c
r