Ë
    ©Õ°j€  ã                  óª   — d dl mZ d dlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZmZ ddlmZ erd d	lmZ d
dgZdd„Z G d„ d
e«      Z G d„ d«      Zy)é    )Úannotations)ÚTYPE_CHECKINGé   )Úparse_requirement)ÚParserSyntaxError)ÚMarkerÚ_normalize_extra_values)ÚInvalidSpecifierÚSpecifierSet©Úcanonicalize_name)ÚIteratorÚInvalidRequirementÚRequirementc                 ó   — t         S ©N)Ú__all__© ó    úL/var/www/mission/venv/lib/python3.12/site-packages/packaging/requirements.pyÚ__dir__r      s   € Ü€Nr   c                  ó   — e Zd ZdZy)r   zf
    An invalid requirement was found, users should refer to PEP 508.

    .. versionadded:: 16.1
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r      s   „ òr   c                  óT   — e Zd ZdZdZdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zy)r   aÝ  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.

    .. versionadded:: 16.1

    .. versionchanged:: 22.0
        Added equality (``__eq__``) and hashing (``__hash__``) so requirements
        can be compared and stored in sets / dicts.

    .. versionchanged:: 23.2
        Equality and hashing began canonicalizing requirement names, so
        requirements whose names differ only by normalization (e.g.
        ``Requirement("Foo")`` vs ``Requirement("foo")``) now compare and hash
        equal.

    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.

    .. versionchanged:: 26.3

        The dedicated pickle support introduced in 26.2 did not preserve the
        specifier's explicit :attr:`~packaging.specifiers.SpecifierSet.prereleases`
        override; it is now included again.

        Equality and hashing normalize requirement names, extras, and
        equivalent specifiers. The string representation still preserves the
        parsed name and extras spelling.
    )ÚextrasÚmarkerÚnameÚ	specifierÚurlc                ó  — 	 t        |«      }|j                  | _        |j
                  xs d | _        t        |j                  «      | _        	 t        |j                  «      | _	        d | _        |j                  �Ct        j                  t        «      | _        t        |j                  «      | j                  _        y y # t        $ r}t        t        |«      «      |‚d }~ww xY w# t        $ r}t        t        |«      «      |‚d }~ww xY wr   )Ú_parse_requirementr   r   Ústrr    r"   Úsetr   r   r!   r
   r   r   Ú__new__r	   Ú_markers)ÚselfÚrequirement_stringÚparsedÚes       r   Ú__init__zRequirement.__init__R   sØ   € ð	4Ü'Ð(:Ó;ˆFð  Ÿ™ˆŒ	Ø%Ÿz™zÒ1¨TˆŒÜ # F§M¡MÓ 2ˆŒð	4Ü+7¸×8HÑ8HÓ+IˆDŒNð &*ˆŒØ�=‰=Ð$Ü Ÿ.™.¬Ó0ˆDŒKÜ#:¸6¿=¹=Ó#IˆD�K‰KÕ ð %øô !ò 	4Ü$¤S¨£VÓ,°!Ð3ûð	4ûô  ò 	4Ü$¤S¨£VÓ,°!Ð3ûð	4ús/   ‚B? ÁC% Â?	C"ÃCÃC"Ã%	DÃ.DÄDc              #  ó`  K  — |–— | j                   r,dj                  t        | j                   «      «      }d|› d�–— | j                  rt	        | j                  «      –— | j
                  r!d| j
                  › �–— | j                  rd–— | j                  rd| j                  › �–— y y ­w)Nú,ú[ú]z @ ú z; )r   ÚjoinÚsortedr!   r%   r"   r   )r)   r    Úformatted_extrass      r   Ú_iter_partszRequirement._iter_partsd   s’   è ø€ ØŠ
à�;Š;Ø"Ÿx™x¬¨t¯{©{Ó(;Ó<ÐØÐ&Ð' qÐ)Ò)à�>Š>Ü�d—n‘nÓ%Ò%à�8Š8Ø˜Ÿ™�zÐ"Ò"Ø�{Š{Ø’	à�;Š;Ø�t—{‘{�mÐ$Ó$ð ùs   ‚B,B.c                óD   — t        | «      | j                  j                  fS r   )r%   r!   Ú_prereleases©r)   s    r   Ú__getstate__zRequirement.__getstate__v   s   € ô
 �D“	˜4Ÿ>™>×6Ñ6Ð7Ð7r   c                ó¼  — t        |t        «      r|}d }nµt        |t        «      r?t        |«      dk(  r1t        |d   t        «      r|d   �t        |d   t        «      r|\  }}nft        |t
        «      rH|j                  «       t        | j                  «      k\  r"| j                  D ]  }t        | |||   «       Œ y t        d|›�«      ‚	 t        |«      }|j                  | _        |j                  | _        |j                  | _        |j                   | _        || j                   _        |j$                  | _        y # t        $ r}t        d|›�«      |‚d }~ww xY w)Né   r   r   z Cannot restore Requirement from )Ú
isinstancer%   ÚtupleÚlenÚboolÚdictÚkeysr&   Ú	__slots__ÚsetattrÚ	TypeErrorr   r   r    r"   r   r!   r8   r   )r)   Ústater*   ÚprereleasesÚkeyÚtmpÚexcs          r   Ú__setstate__zRequirement.__setstate__}   s6  € Ü�eœSÔ!à&+ÐØ'+‰Kä�uœeÔ$Ü�E“
˜a’Ü˜5 ™8¤SÔ)Ø�q‘Ð!¤Z°°a±¼$Ô%?ð /4Ñ+Ð¡Ü˜œtÔ$¨¯©«¼¸T¿^¹^Ó9LÒ)Là—~‘~ò /�Ü˜˜c 5¨¡:Õ.ð/àäÐ>¸u¸iÐHÓIÐIð	SÜÐ0Ó1ˆCð —H‘HˆŒ	Ø—7‘7ˆŒØ—j‘jˆŒØŸ™ˆŒØ&1ˆ�‰Ô#Ø—j‘jˆ�øô "ò 	SÜÐ>¸u¸iÐHÓIÈsÐRûð	Sús   ÃD> Ä>	EÅEÅEc                óV   — dj                  | j                  | j                  «      «      S )NÚ )r3   r6   r    r9   s    r   Ú__str__zRequirement.__str__�   s    € Ø�w‰w�t×'Ñ'¨¯	©	Ó2Ó3Ð3r   c                óN   — d| j                   j                  › dt        | «      ›d�S )Nú<ú(z)>)Ú	__class__r   r%   r9   s    r   Ú__repr__zRequirement.__repr__    s&   € Ø�4—>‘>×*Ñ*Ð+¨1¬S°«Y¨M¸Ð<Ð<r   c                ó¸   — t        t        | j                  «      t        d„ | j                  D «       «      | j
                  | j                  | j                  f«      S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   ©Ú.0r,   s     r   ú	<genexpr>z'Requirement.__hash__.<locals>.<genexpr>¬   s   è ø€ ÒD°1Ô+¨A×.ÑDùó   ‚)Úhashr   r    Ú	frozensetr   r!   r"   r   r9   s    r   Ú__hash__zRequirement.__hash__£   sI   € ô ä! $§)¡)Ó,ÜÑD¸¿¹ÔDÓDØ—‘Ø—‘Ø—‘ðó
ð 	
r   c                ó¤  — t        |t        «      st        S t        d„ | j                  D «       «      }t        d„ |j                  D «       «      }t        | j                  «      t        |j                  «      k(  xrV ||k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   rV   s     r   rX   z%Requirement.__eq__.<locals>.<genexpr>¸   s   è ø€ ÒJ¸Ô 1°!× 4ÑJùrY   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   rV   s     r   rX   z%Requirement.__eq__.<locals>.<genexpr>¹   s   è ø€ Ò L¸!Ô!2°1×!5Ñ LùrY   )
r=   r   ÚNotImplementedr[   r   r   r    r!   r"   r   )r)   ÚotherÚself_extrasÚother_extrass       r   Ú__eq__zRequirement.__eq__³   s¬   € Ü˜%¤Ô-Ü!Ð!ô  ÑJ¸d¿k¹kÔJÓJˆÜ Ñ L¸u¿|¹|Ô LÓLˆä˜dŸi™iÓ(Ô,=¸e¿j¹jÓ,IÑIò ,Ø˜|Ñ+ò,à—‘ %§/¡/Ñ1ò,ð —‘˜EŸI™IÑ%ò,ð —‘˜uŸ|™|Ñ+ð	
r   N)r*   r%   ÚreturnÚNone)r    r%   re   zIterator[str])re   ztuple[str, bool | None])rF   Úobjectre   rf   )re   r%   )re   Úint)ra   rg   re   r@   )r   r   r   r   rC   r-   r6   r:   rK   rN   rS   r\   rd   r   r   r   r   r   #   s:   „ ñ%ðX A€IóJó$%ó$8ó!ó@4ó=ó
ô 
r   N)re   z	list[str])Ú
__future__r   Útypingr   Ú_parserr   r$   Ú
_tokenizerr   Úmarkersr   r	   Ú
specifiersr
   r   Úutilsr   Úcollections.abcr   r   r   Ú
ValueErrorr   r   r   r   r   ú<module>rr      sN   ðõ #å  å <Ý )ß 4ß 6Ý $áÝ(ð Øð€óô˜ô ÷]
ò ]
r   