+
    yj                        ^ RI Ht ^ RIHt ^RIHt ^RIHt ^RI	H
t
Ht ^RIHtHt ^RIHt ]'       d   ^ RIHt R	R
.tR R lt ! R R	]4      t ! R R
4      tR# )    )annotations)TYPE_CHECKING)parse_requirement)ParserSyntaxError)Marker_normalize_extra_values)InvalidSpecifierSpecifierSetcanonicalize_name)IteratorInvalidRequirementRequirementc                   V ^8  d   QhRR/# )   returnz	list[str] )formats   "J/var/www/html/2rare/lib/python3.14/site-packages/packaging/requirements.py__annotate__r      s           c                     \         # N)__all__r   r   r   __dir__r      s    Nr   c                      ] tR t^tRtRtR# )r   zZ
An invalid requirement was found, users should refer to PEP 508.

.. versionadded:: 16.1
r   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r   r   r   r   r      s    r   c                  ~    ] tR t^#tRtRtR R ltR R ltR R ltR R	 lt	R
 R lt
R R ltR R ltR R ltRtR# )r   aq  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.
c                    V ^8  d   QhRRRR/# )r   requirement_stringstrr   Noner   )r   s   "r   r   Requirement.__annotate__R   s     J J3 J4 Jr   c                	4    \        V4      pTP                  T n        TP
                  ;'       g    R T n        \        TP                  4      T n         \        TP                  4      T n	        R T n        TP                  eF   \        P                  ! \        4      T n        \        TP                  4      T P                  n        R # R #   \         d   p\        \        T4      4      ThR p?ii ; i  \         d   p\        \        T4      4      ThR p?ii ; ir   )_parse_requirementr   r   r&   nameurlsetextrasr
   	specifierr	   markerr   __new__r   _markers)selfr%   parsedes   &&  r   __init__Requirement.__init__R   s    	4'(:;F  	%zz11T #FMM 2	4+78H8H+IDN &*==$ ..0DK#:6==#IDKK  % ! 	4$SV,!3	4   	4$SV,!3	4s/   C
 C2 
C/C**C/2D=DDc                    V ^8  d   QhRRRR/# )r   r+   r&   r   zIterator[str]r   )r   s   "r   r   r(   d   s     % % % %r   c              #  	  "   Vx  V P                   '       d-   R P                  \        V P                   4      4      pRV R2x  V P                  '       d   \	        V P                  4      x  V P
                  '       d(   RV P
                   2x  V P                  '       d   Rx  V P                  '       d   RV P                   2x  R# R# 5i),[]z @  z; N)r.   joinsortedr/   r&   r,   r0   )r3   r+   formatted_extrass   && r   _iter_partsRequirement._iter_partsd   s     
;;;"xxt{{(;<&'q))>>>dnn%%888z""{{{	;;;t{{m$$ s   AC(C "C#C9Cc                   V ^8  d   QhRR/# )r   r   ztuple[str, bool | None]r   )r   s   "r   r   r(   v   s     8 85 8r   c                	D    \        V 4      V P                  P                  3# r   )r&   r/   _prereleasesr3   s   &r   __getstate__Requirement.__getstate__v   s    
 D	4>>6677r   c                    V ^8  d   QhRRRR/# )r   stateobjectr   r'   r   )r   s   "r   r   r(   }   s     ! !& !T !r   c                	,   \        V\        4      '       d   TpR pM\        V\        4      '       d[   \        V4      ^8X  dK   \        V^ ,          \        4      '       d.   V^,          e   \        V^,          \        4      '       d   Vw  r#Mt\        V\
        4      '       dP   VP                  4       \        V P                  4      8  d(   V P                   F  p\        WW,          4       K  	  R # \        RV: 24      h \        V4      pTP                  T n        TP                  T n        TP                  T n        TP                   T n        Y0P                   n        TP$                  T n        R #   \         d   p\        RT: 24      ThR p?ii ; i)Nz Cannot restore Requirement from )
isinstancer&   tuplelenbooldictkeysr-   	__slots__setattr	TypeErrorr   r   r+   r,   r.   r/   rE   r0   )r3   rJ   r%   prereleaseskeytmpexcs   &&     r   __setstate__Requirement.__setstate__}   s:   eS!!&+'+Kue$$E
a58S))q!Za$%?%? /4+t$$T^^9L)L~~5:. &>uiHII	S01C HH	77jj&1#jj " 	S>uiHIsR	Ss   E3 3F>FFc                   V ^8  d   QhRR/# r   r   r&   r   )r   s   "r   r   r(      s     4 4 4r   c                	V    R P                  V P                  V P                  4      4      # ) )r>   rA   r+   rF   s   &r   __str__Requirement.__str__   s     wwt''		233r   c                   V ^8  d   QhRR/# r]   r   )r   s   "r   r   r(      s     = =# =r   c                	P    R V P                   P                   R\        V 4      : R2# )<(z)>)	__class__r   r&   rF   s   &r   __repr__Requirement.__repr__   s&    4>>**+1SYM<<r   c                   V ^8  d   QhRR/# )r   r   intr   )r   s   "r   r   r(      s     
 
# 
r   c                	    \        \        V P                  4      \        R  V P                   4       4      V P
                  V P                  V P                  34      # )c              3  8   "   T F  p\        V4      x  K  	  R # 5ir   r   .0r5   s   & r   	<genexpr>'Requirement.__hash__.<locals>.<genexpr>   s     D1+A..   )hashr   r+   	frozensetr.   r/   r,   r0   rF   s   &r   __hash__Requirement.__hash__   sI     !$)),DDD
 	
r   c                    V ^8  d   QhRRRR/# )r   otherrK   r   rP   r   )r   s   "r   r   r(      s     
 
F 
t 
r   c                	   \        V\        4      '       g   \        # \        R  V P                   4       4      p\        R VP                   4       4      p\        V P                  4      \        VP                  4      8H  ;'       dh    W#8H  ;'       d\    V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P                  VP                  8H  # )c              3  8   "   T F  p\        V4      x  K  	  R # 5ir   r   rm   s   & r   ro   %Requirement.__eq__.<locals>.<genexpr>   s     Jk 1! 4 4krq   c              3  8   "   T F  p\        V4      x  K  	  R # 5ir   r   rm   s   & r   ro   rz      s      L|!!21!5!5|rq   )
rM   r   NotImplementedrs   r.   r   r+   r/   r,   r0   )r3   rw   self_extrasother_extrass   &&  r   __eq__Requirement.__eq__   s    %--!!  JdkkJJ  Lu|| LLdii(,=ejj,II , ,+, ,%//1, , EII%, , u||+	
r   )r.   r0   r+   r/   r,   N)r   r   r   r    r!   rS   r6   rA   rG   rZ   r`   rg   rt   r   r"   r   r   r   r   r   #   s?    %X AIJ$%$8!@4=
 
 
r   N)
__future__r   typingr   _parserr   r*   
_tokenizerr   markersr   r   
specifiersr	   r
   utilsr   collections.abcr   r   r   
ValueErrorr   r   r   r   r   <module>r      sN    #   < ) 4 6 $(  ]
 ]
r   