
    if@                         d dl mZ d dlmZmZ d dlmZ d dlmZ ddl	m
Z
mZmZmZ  G d de          Z G d	 d
e          Z G d de          Z G d de          Z G d de          ZdS )    )SpecifierSet)NormalizedNamecanonicalize_name)install_req_drop_extras)InstallRequirement   )	CandidateCandidateLookupRequirementformat_namec                       e Zd ZdeddfdZdefdZdefdZede	fd            Z
edefd            Zdefd	Zdefd
ZdedefdZdS )ExplicitRequirement	candidatereturnNc                     || _         d S Nr   selfr   s     b/var/www/html/env/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/requirements.py__init__zExplicitRequirement.__init__   s    "    c                 *    t          | j                  S r   )strr   r   s    r   __str__zExplicitRequirement.__str__   s    4>"""r   c                 0    | j         j         d| j        dS N())	__class____name__r   r   s    r   __repr__zExplicitRequirement.__repr__   s     .)??DN????r   c                     | j         j        S r   )r   project_namer   s    r   r%   z ExplicitRequirement.project_name   s     ~**r   c                     | j         j        S r   )r   namer   s    r   r'   zExplicitRequirement.name   s     ~""r   c                 4    | j                                         S r   )r   format_for_errorr   s    r   r)   z$ExplicitRequirement.format_for_error   s    ~..000r   c                     | j         d fS r   r   r   s    r   get_candidate_lookupz(ExplicitRequirement.get_candidate_lookup!   s    ~t##r   c                     || j         k    S r   r   r   s     r   is_satisfied_byz#ExplicitRequirement.is_satisfied_by$   s    DN**r   )r"   
__module____qualname__r	   r   r   r   r#   propertyr   r%   r'   r)   r
   r+   boolr-    r   r   r   r   
   s       #) # # # # ## # # # #@# @ @ @ @ +n + + + X+ #c # # # X#1# 1 1 1 1$o $ $ $ $+ +t + + + + + +r   r   c                       e Zd ZdeddfdZdefdZdefdZede	fd            Z
edefd            Zdefd	Zdefd
ZdedefdZdS )SpecifierRequirementireqr   Nc                     |j         
J d            || _        t          d | j        j        D                       | _        d S )NThis is a link, not a specifierc              3   4   K   | ]}t          |          V  d S r   r   .0es     r   	<genexpr>z0SpecifierRequirement.__init__.<locals>.<genexpr>,   +       Q Q!!21!5!5 Q Q Q Q Q Qr   )link_ireq	frozensetextras_extrasr   r5   s     r   r   zSpecifierRequirement.__init__)   sG    y  "C   
  Q Qtz?P Q Q QQQr   c                 4    t          | j        j                  S r   )r   r@   reqr   s    r   r   zSpecifierRequirement.__str__.   s    4:>"""r   c                 T    | j         j         dt          | j        j                  dS r   )r!   r"   r   r@   rF   r   s    r   r#   zSpecifierRequirement.__repr__1   s*    .)DDC
,?,?DDDDr   c                 j    | j         j        s
J d            t          | j         j        j                  S )N'Specifier-backed ireq is always PEP 508)r@   rF   r   r'   r   s    r   r%   z!SpecifierRequirement.project_name4   s/    z~HHHHH~ !4555r   c                 6    t          | j        | j                  S r   )r   r%   rC   r   s    r   r'   zSpecifierRequirement.name9   s    4,dl;;;r   c                    d t          |                               d          D             }t          |          dk    rdS t          |          dk    r|d         S d                    |d d                   dz   |d         z   S )	Nc                 6    g | ]}|                                 S r2   )strip)r;   ss     r   
<listcomp>z9SpecifierRequirement.format_for_error.<locals>.<listcomp>B   s     999q999r   ,r    r   z, z and )r   splitlenjoin)r   partss     r   r)   z%SpecifierRequirement.format_for_error=   s}    
 :9CIIOOC$8$8999u::??2ZZ1__8Oyyss$$w.r::r   c                     d | j         fS r   )r@   r   s    r   r+   z)SpecifierRequirement.get_candidate_lookupJ   s    TZr   r   c                     |j         | j         k    sJ d|j          d| j                      | j        j        s
J d            | j        j        j        }|                    |j        d          S )Nz6Internal issue: Candidate is not for this requirement z vs rI   Tprereleases)r'   r@   rF   	specifiercontainsversion)r   r   specs      r   r-   z$SpecifierRequirement.is_satisfied_byM   s    ~***/~/ /#'9/ / +** z~HHHHH~z~'}}Y.D}AAAr   )r"   r.   r/   r   r   r   r   r#   r0   r   r%   r'   r)   r
   r+   r	   r1   r-   r2   r   r   r4   r4   (   s&       R/ RD R R R R
# # # # #E# E E E E 6n 6 6 6 X6 <c < < < X<;# ; ; ; ; o        
B 
Bt 
B 
B 
B 
B 
B 
Br   r4   c                   "    e Zd ZdZdeddfdZdS )!SpecifierWithoutExtrasRequirementz
    Requirement backed by an install requirement on a base package.
    Trims extras from its install requirement if there are any.
    r5   r   Nc                     |j         
J d            t          |          | _        t          d | j        j        D                       | _        d S )Nr7   c              3   4   K   | ]}t          |          V  d S r   r9   r:   s     r   r=   z=SpecifierWithoutExtrasRequirement.__init__.<locals>.<genexpr>c   r>   r   )r?   r   r@   rA   rB   rC   rD   s     r   r   z*SpecifierWithoutExtrasRequirement.__init__`   sO    y  "C   ,T22
  Q Qtz?P Q Q QQQr   )r"   r.   r/   __doc__r   r   r2   r   r   r`   r`   Z   sI         
R/ RD R R R R R Rr   r`   c                       e Zd ZdZdededdfdZdefdZdefdZ	e
defd	            Ze
defd
            ZdefdZdefdZdedefdZdS )RequiresPythonRequirementz4A requirement representing Requires-Python metadata.r[   matchr   Nc                 "    || _         || _        d S r   )r[   
_candidate)r   r[   rf   s      r   r   z"RequiresPythonRequirement.__init__i   s    "r   c                     d| j          S )NzPython )r[   r   s    r   r   z!RequiresPythonRequirement.__str__m   s    ))))r   c                 J    | j         j         dt          | j                  dS r   )r!   r"   r   r[   r   s    r   r#   z"RequiresPythonRequirement.__repr__p   s(    .)DDC,?,?DDDDr   c                     | j         j        S r   )rh   r%   r   s    r   r%   z&RequiresPythonRequirement.project_names   s    ++r   c                     | j         j        S r   )rh   r'   r   s    r   r'   zRequiresPythonRequirement.namew   s    ##r   c                      t          |           S r   r   r   s    r   r)   z*RequiresPythonRequirement.format_for_error{       4yyr   c                 d    | j                             | j        j        d          r	| j        d fS dS )NTrY   NN)r[   r\   rh   r]   r   s    r   r+   z.RequiresPythonRequirement.get_candidate_lookup~   s6    >""4?#:"MM 	)?D((zr   r   c                     |j         | j        j         k    s
J d            | j                            |j        d          S )NzNot Python candidateTrY   )r'   rh   r[   r\   r]   r   s     r   r-   z)RequiresPythonRequirement.is_satisfied_by   sC    ~!55557M555 ~&&y'8d&KKKr   )r"   r.   r/   rc   r   r	   r   r   r   r#   r0   r   r%   r'   r)   r
   r+   r1   r-   r2   r   r   re   re   f   s,       >> ,  y  T        * * * * *E# E E E E ,n , , , X, $c $ $ $ X$#    o    
L Lt L L L L L Lr   re   c                       e Zd ZdZdeddfdZdefdZdefdZe	defd            Z
e	defd	            Zdefd
ZdefdZdedefdZdS )UnsatisfiableRequirementz'A requirement that cannot be satisfied.r'   r   Nc                     || _         d S r   _name)r   r'   s     r   r   z!UnsatisfiableRequirement.__init__   s    


r   c                     | j          dS )Nz (unavailable)rv   r   s    r   r   z UnsatisfiableRequirement.__str__   s    *,,,,r   c                 J    | j         j         dt          | j                  dS r   )r!   r"   r   rw   r   s    r   r#   z!UnsatisfiableRequirement.__repr__   s&    .)@@C
OO@@@@r   c                     | j         S r   rv   r   s    r   r%   z%UnsatisfiableRequirement.project_name   
    zr   c                     | j         S r   rv   r   s    r   r'   zUnsatisfiableRequirement.name   r{   r   c                      t          |           S r   rn   r   s    r   r)   z)UnsatisfiableRequirement.format_for_error   ro   r   c                     dS )Nrq   r2   r   s    r   r+   z-UnsatisfiableRequirement.get_candidate_lookup   s    zr   r   c                     dS )NFr2   r   s     r   r-   z(UnsatisfiableRequirement.is_satisfied_by   s    ur   )r"   r.   r/   rc   r   r   r   r   r#   r0   r%   r'   r)   r
   r+   r	   r1   r-   r2   r   r   rt   rt      s       11^     - - - - -A# A A A A n    X c    X#    o     t      r   rt   N) pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr   r   pip._internal.req.constructorsr   pip._internal.req.req_installr   baser	   r
   r   r   r   r4   r`   re   rt   r2   r   r   <module>r      sn   9 9 9 9 9 9 I I I I I I I I B B B B B B < < < < < < F F F F F F F F F F F F+ + + + ++ + + +</B /B /B /B /B; /B /B /Bd	R 	R 	R 	R 	R(< 	R 	R 	R"L "L "L "L "L "L "L "LJ    {     r   