
    Mi                         S SK rS SKJrJr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	\5      r " S
 S5      rg)    N)AnyListOptionalSet   )parse_requirement)ParserSyntaxError)Marker_normalize_extra_values)SpecifierSetc                       \ 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       h/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/packaging/requirements.pyr   r      s    r   r   c                   f    \ rS rSrSrS\SS4S jrS\4S jrS\4S jrS\	4S	 jr
S
\S\4S jrSrg)Requirement   zParse 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.
requirement_stringreturnNc                     [        U5      nUR                  U l        UR
                  (       a  [        R                  R                  UR
                  5      nUR                  S:X  a9  [        R                  R                  U5      UR
                  :w  a  [        S5      eO\UR                  (       a3  UR                  (       a"  UR                  (       d)  UR                  (       d  [        SUR
                   35      eUR
                  U l        OS U l        [        UR                  (       a  UR                  O/ 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filezInvalid URL givenzInvalid URL: )_parse_requirementr	   r   strnameurlurllibparseurlparsescheme
urlunparsenetlocsetextrasr   	specifiermarkerr
   __new__r   _markers)selfr   parsede
parsed_urls        r   __init__Requirement.__init__!   sK   	4'(:;F  	::..vzz:J  F*<<**:6&**D,-@AA E ''J,=,=%%j.?.?(=)EFF&,jjDHDH #V]]FMM K'3F4D4D'E(,==$ ..0DK#:6==#IDKK  %' ! 	4$SV,!3	4s   F6 6
G GGc                 <   U R                   /nU R                  (       a9  SR                  [        U R                  5      5      nUR	                  SU S35        U R
                  (       a$  UR	                  [        U R
                  5      5        U R                  (       a@  UR	                  SU R                   35        U R                  (       a  UR	                  S5        U R                  (       a  UR	                  SU R                   35        SR                  U5      $ )N,[]z@  z;  )	r"   r+   joinsortedappendr,   r!   r#   r-   )r0   partsformatted_extrass      r   __str__Requirement.__str__;   s     II;;;"xxt{{(;<LL1-.a01>>LLT^^,-88LL2dhhZ){{S!;;LL2dkk]+,wwu~r   c                     SU  S3$ )Nz<Requirement('z')>r   r0   s    r   __repr__Requirement.__repr__O   s    vS))r   c                 V    [        U R                  R                  [        U 5      45      $ N)hash	__class__r   r!   rD   s    r   __hash__Requirement.__hash__R   s     T^^,,c$i899r   otherc                 j   [        U[        5      (       d  [        $ U R                  UR                  :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  $ rH   )
isinstancer   NotImplementedr"   r+   r,   r#   r-   )r0   rM   s     r   __eq__Requirement.__eq__U   s    %--!! II# ,u||+,%//1, EII%, u||+	
r   )r+   r-   r"   r,   r#   )r   r   r   r   r   r!   r4   rA   rE   intrK   r   boolrQ   r   r   r   r   r   r      sT    J3 J4 J4 (*# *:# :

C 

D 

r   r   )urllib.parser$   typingr   r   r   r   _parserr   r    
_tokenizerr	   markersr
   r   
specifiersr   
ValueErrorr   r   r   r   r   <module>r\      s4   
  + + < ) 4 $ K
 K
r   