ó
    ÂÜhƒ  ã                  óŠ   • S SK Jr  S SKJrJr  SSKJr  SSKJ	r	  SSK
JrJr  SSKJr  SSKJr   " S	 S
\5      r " S S5      rg)é    )Úannotations)ÚAnyÚIteratoré   )Úparse_requirement)ÚParserSyntaxError)ÚMarkerÚ_normalize_extra_values)ÚSpecifierSet)Úcanonicalize_namec                  ó   • \ rS rSrSrSrg)ÚInvalidRequirementé   zB
An invalid requirement was found, users should refer to PEP 508.
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú8/usr/lib/python3/dist-packages/packaging/requirements.pyr   r      s   † ôr   r   c                  óT   • \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
S	rg
)ÚRequirementé   z±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.
c                óê  •  [        U5      nUR                  U l        UR
                  =(       d    S U l        [        UR                  =(       d    / 5      U l        [        UR                  5      U l	        S U l
        UR                  bD  [        R                  " [        5      U l
        [        UR                  5      U R                  l        g g ! [         a  n[        [        U5      5      UeS nAff = f©N)Ú_parse_requirementr   r   ÚstrÚnameÚurlÚsetÚextrasr   Ú	specifierÚmarkerr	   Ú__new__r
   Ú_markers)ÚselfÚrequirement_stringÚparsedÚes       r   Ú__init__ÚRequirement.__init__"   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 Ã
C2ÃC-Ã-C2c              #  ó’  #   • Uv •  U R                   (       a,  SR                  [        U R                   5      5      nSU S3v •  U R                  (       a  [	        U R                  5      v •  U R
                  (       a&  SU R
                   3v •  U R                  (       a  Sv •  U R                  (       a  SU R                   3v •  g g 7f)NÚ,Ú[Ú]z@ Ú z; )r#   ÚjoinÚsortedr$   r   r!   r%   )r(   r    Úformatted_extrass      r   Ú_iter_partsÚRequirement._iter_parts1   s�   é € ØŠ
à�;�;Ø"Ÿx™x¬¨t¯{©{Ó(;Ó<ÐØÐ&Ð' qÐ)Ò)à�>�>Ü�d—n‘nÓ%Ò%à�8�8Ø�t—x‘x�j�/Ò!Ø�{�{Ø’	à�;�;Ø�t—{‘{�mÐ$Ó$ð ùs   ‚CCc                óV   • SR                  U R                  U R                  5      5      $ )NÚ )r3   r6   r    ©r(   s    r   Ú__str__ÚRequirement.__str__C   s    € Ø�w‰w�t×'Ñ'¨¯	©	Ó2Ó3Ð3r   c                ó   • SU  S3$ )Nz<Requirement('z')>r   r:   s    r   Ú__repr__ÚRequirement.__repr__F   s   € Ø ˜v SÐ)Ð)r   c                óŒ   • [        U R                  R                  /U R                  [	        U R
                  5      5      Q75      $ r   )ÚhashÚ	__class__r   r6   r   r    r:   s    r   Ú__hash__ÚRequirement.__hash__I   s>   € Üà—‘×'Ñ'ðà×!Ñ!Ô"3°D·I±IÓ">Ó?ñó
ð 	
r   c                óŽ  • [        U[        5      (       d  [        $ [        U R                  5      [        UR                  5      :H  =(       ay    U R
                  UR
                  :H  =(       aY    U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r   )	Ú
isinstancer   ÚNotImplementedr   r    r#   r$   r!   r%   )r(   Úothers     r   Ú__eq__ÚRequirement.__eq__Q   s�   € Ü˜%¤×-Ñ-Ü!Ð!ô ˜dŸi™iÓ(Ô,=¸e¿j¹jÓ,IÑI÷ ,Ø—‘˜uŸ|™|Ñ+÷,à—‘ %§/¡/Ñ1÷,ð —‘˜EŸI™IÑ%÷,ð —‘˜uŸ|™|Ñ+ð	
r   )r#   r%   r    r$   r!   N)r)   r   ÚreturnÚNone)r    r   rK   zIterator[str])rK   r   )rK   Úint)rH   r   rK   Úbool)r   r   r   r   r   r,   r6   r;   r>   rC   rI   r   r   r   r   r   r      s&   † ñôJô%ô$4ô*ô
÷

r   r   N)Ú
__future__r   Útypingr   r   Ú_parserr   r   Ú
_tokenizerr   Úmarkersr	   r
   Ú
specifiersr   Úutilsr   Ú
ValueErrorr   r   r   r   r   Ú<module>rW      s4   ðõ #ç  å <Ý )ß 4Ý $Ý $ô˜ô ÷F
ò F
r   