
    j+                        S SK Jr  S SK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
/rSS jr " S S	\5      r " S S
5      rg)    )annotations)Iterator   )parse_requirement)ParserSyntaxError)Marker_normalize_extra_values)SpecifierSet)canonicalize_nameInvalidRequirementRequirementc                     [         $ N)__all__     s/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pip/_vendor/packaging/requirements.py__dir__r      s    Nr   c                      \ rS rSrSrSrg)r      zB
An invalid requirement was found, users should refer to PEP 508.
r   N)__name__
__module____qualname____firstlineno____doc____static_attributes__r   r   r   r   r      s    r   c                  h    \ 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S	 jrSS
 jrSrg)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 pip._vendor.packaging < 26.2 is supported but may be removed in a future
    release.
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r   )_parse_requirementr   r   strnameurlsetextrasr
   	specifiermarkerr   __new__r	   _markers)selfrequirement_stringparsedes       r   __init__Requirement.__init__5   s    	4'(:;F  	%zz1T #FMM$7R 8'3F4D4D'E%)==$ ..0DK#:6==#IDKK  % ! 	4$SV,!3	4s   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_partsD   s     
;;"xxt{{(;<&'q))>>dnn%%88z""{{	;;t{{m$$ s   CCc                    [        U 5      $ r   )r!   r*   s    r   __getstate__Requirement.__getstate__V   s     4yr   c                   [        U[        5      (       ab   [        U5      nUR
                  U l        UR                  U l        UR                  U l        UR                  U l        UR                  U l	        g [        U[        5      (       a  U R                  R                  U5        g [	        SU< 35      e! [         a  n[	        SU< 35      UeS nAff = f)Nz Cannot restore Requirement from )
isinstancer!   r   r   	TypeErrorr"   r#   r%   r&   r'   dict__dict__update)r*   statetmpexcs       r   __setstate__Requirement.__setstate__[   s    eS!!W!%( DIwwDH**DK ]]DN**DKeT""MM  ':5)DEE & W"B5) LMSVVWs   B8 8
CCCc                V    SR                  U R                  U R                  5      5      $ )N )r5   r8   r"   r;   s    r   __str__Requirement.__str__n   s     wwt''		233r   c                P    SU R                   R                   S[        U 5      < S3$ )N<(z)>)	__class__r   r!   r;   s    r   __repr__Requirement.__repr__q   s&    4>>**+1SYM<<r   c           	     n    [        [        U R                  [        U R                  5      5      5      5      $ r   )hashtupler8   r   r"   r;   s    r   __hash__Requirement.__hash__t   s'    E$**+<TYY+GHIJJr   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   )	r?   r   NotImplementedr   r"   r%   r&   r#   r'   )r*   others     r   __eq__Requirement.__eq__w   s    %--!! dii(,=ejj,II ,u||+,%//1, EII%, u||+	
r   )r%   r'   r"   r&   r#   N)r+   r!   returnNone)r"   r!   r]   zIterator[str])r]   r!   )rD   objectr]   r^   )r]   int)rZ   r_   r]   bool)r   r   r   r   r   r.   r8   r<   rG   rK   rQ   rV   r[   r   r   r   r   r   r      s2    ,J%$
F&4=K

r   N)r]   z	list[str])
__future__r   typingr   _parserr   r    
_tokenizerr   markersr   r	   
specifiersr
   utilsr   r   r   
ValueErrorr   r   r   r   r   <module>rj      sH    #  < ) 4 $ $  c
 c
r   