
    жvg                         d dl mZmZ 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 )    )AnyOptional)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defdZ	de
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     m/var/www/pixelcanvas.ch/venv/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                 *    t          | j                  S r   )hashr   r   s    r   __hash__zExplicitRequirement.__hash__   s    DN###r   otherc                 P    t          |t                    sdS | j        |j        k    S NF)
isinstancer   r   r   r)   s     r   __eq__zExplicitRequirement.__eq__   s)    %!455 	5~00r   c                     | j         j        S r   )r   project_namer   s    r   r0   z ExplicitRequirement.project_name   s     ~**r   c                     | j         j        S r   )r   namer   s    r   r2   zExplicitRequirement.name#   s     ~""r   c                 4    | j                                         S r   )r   format_for_errorr   s    r   r4   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%   intr(   r   boolr.   propertyr   r0   r2   r4   r   r6   r8    r   r   r   r      sT       #) # # # # ## # # # #@# @ @ @ @$# $ $ $ $1C 1D 1 1 1 1
 +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edefd            ZdefdZdefdZ	de
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            || _        d | _        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>8   +       Q Q!!21!5!5 Q Q Q Q Q Qr   )link_ireq_equal_cache_hash	frozensetextras_extrasr   rA   s     r   r   zSpecifierRequirement.__init__3   sV    y  "C   
+/$(
  Q Qtz?P Q Q QQQr   c                 ^    | j         | j         S t          | j                  | _         | j         S r   rM   r   rL   r   s    r   _equalzSpecifierRequirement._equal:   -    ($$
OO  r   c                 4    t          | j        j                  S r   )r   rL   reqr   s    r   r   zSpecifierRequirement.__str__B   s    4:>"""r   c                 T    | j         j         dt          | j        j                  dS r    )r#   r$   r   rL   rX   r   s    r   r%   zSpecifierRequirement.__repr__E   s*    .)DDC
,?,?DDDDr   r)   c                 Z    t          |t                    st          S | j        |j        k    S r   )r,   r@   NotImplementedrU   r-   s     r   r.   zSpecifierRequirement.__eq__H   s*    %!566 	"!!{el**r   c                 ^    | j         | j         S t          | j                  | _         | j         S r   rN   r'   rU   r   s    r   r(   zSpecifierRequirement.__hash__M   +    :!:$+&&
zr   c                 j    | j         j        s
J d            t          | j         j        j                  S )N'Specifier-backed ireq is always PEP 508)rL   rX   r   r2   r   s    r   r0   z!SpecifierRequirement.project_nameT   s0    z~HHHHHH !4555r   c                 6    t          | j        | j                  S r   )r   r0   rQ   r   s    r   r2   zSpecifierRequirement.nameY   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 r>   )strip)rG   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   r4   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   )rL   r   s    r   r6   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 r`   Tprereleases)r2   rL   rX   	specifiercontainsversion)r   r   specs      r   r8   z$SpecifierRequirement.is_satisfied_bym   s    ~***/~/ /#'9/ / +** z~HHHHHHz~'}}Y.D}AAAr   )r$   r9   r:   r	   r   r=   r   rU   r   r%   objectr<   r.   r;   r(   r   r0   r2   r4   r   r6   r   r8   r>   r   r   r@   r@   2   s       R/ RD R R R R ! ! ! ! X!# # # # #E# E E E E+F +t + + + +
#     6n 6 6 6 X6 <c < < < X<;# ; ; ; ; o        
B 
Bt 
B 
B 
B 
B 
B 
Br   r@   c                   Z    e Zd ZdZdeddfdZedefd            Zde	de
fdZde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.
    rA   r   Nc                     |j         
J d            t          |          | _        d | _        d | _        t          d | j        j        D                       | _        d S )NrC   c              3   4   K   | ]}t          |          V  d S r   rE   rF   s     r   rI   z=SpecifierWithoutExtrasRequirement.__init__.<locals>.<genexpr>   rJ   r   )rK   r   rL   rM   rN   rO   rP   rQ   rR   s     r   r   z*SpecifierWithoutExtrasRequirement.__init__   s^    y  "C   ,T22
+/$(
  Q Qtz?P Q Q QQQr   c                 ^    | j         | j         S t          | j                  | _         | j         S r   rT   r   s    r   rU   z(SpecifierWithoutExtrasRequirement._equal   rV   r   r)   c                 Z    t          |t                    st          S | j        |j        k    S r   )r,   rx   r[   rU   r-   s     r   r.   z(SpecifierWithoutExtrasRequirement.__eq__   s*    %!BCC 	"!!{el**r   c                 ^    | j         | j         S t          | j                  | _         | j         S r   r]   r   s    r   r(   z*SpecifierWithoutExtrasRequirement.__hash__   r^   r   )r$   r9   r:   __doc__r	   r   r=   r   rU   rv   r<   r.   r;   r(   r>   r   r   rx   rx   z   s         
R/ RD R R R R ! ! ! ! X!+F +t + + + +
#      r   rx   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	de
fd	Zd
e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.rr   matchr   Nc                 X    || _         t          |          | _        d | _        || _        d S r   )rr   r   _specifier_stringrN   
_candidate)r   rr   r   s      r   r   z"RequiresPythonRequirement.__init__   s)    "!$Y$(
r   c                     d| j          S )NzPython )rr   r   s    r   r   z!RequiresPythonRequirement.__str__   s    ))))r   c                 J    | j         j         dt          | j                  dS r    )r#   r$   r   rr   r   s    r   r%   z"RequiresPythonRequirement.__repr__   s(    .)DDC,?,?DDDDr   c                 l    | j         | j         S t          | j        | j        f          | _         | j         S r   )rN   r'   r   r   r   s    r   r(   z"RequiresPythonRequirement.__hash__   s3    :!:414?CDD
zr   r)   c                 p    t          |t                    sdS | j        |j        k    o| j        |j        k    S r+   )r,   r   r   r   r-   s     r   r.   z RequiresPythonRequirement.__eq__   s?    %!:;; 	5"e&== 45#33	
r   c                     | j         j        S r   )r   r0   r   s    r   r0   z&RequiresPythonRequirement.project_name   s    ++r   c                     | j         j        S r   )r   r2   r   s    r   r2   zRequiresPythonRequirement.name   s    ##r   c                      t          |           S r   r   r   s    r   r4   z*RequiresPythonRequirement.format_for_error       4yyr   c                 d    | j                             | j        j        d          r	| j        d fS dS )NTrp   NN)rr   rs   r   rt   r   s    r   r6   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 candidateTrp   )r2   r   rr   rs   rt   r   s     r   r8   z)RequiresPythonRequirement.is_satisfied_by   sC    ~!55557M555 ~&&y'8d&KKKr   )r$   r9   r:   r~   r   r   r   r   r   r%   r;   r(   r   r<   r.   r=   r   r0   r2   r4   r   r6   r8   r>   r   r   r   r      si       >> ,  y  T        * * * * *E# E E E E#    
C 
D 
 
 
 
 ,n , , , X, $c $ $ $ X$#    o    
L Lt L L L L L Lr   r   c                       e Zd ZdZdeddfdZdefdZdefdZde	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.r2   r   Nc                     || _         d S r   _name)r   r2   s     r   r   z!UnsatisfiableRequirement.__init__   s    


r   c                     | j          dS )Nz (unavailable)r   r   s    r   r   z UnsatisfiableRequirement.__str__   s    *,,,,r   c                 J    | j         j         dt          | j                  dS r    )r#   r$   r   r   r   s    r   r%   z!UnsatisfiableRequirement.__repr__   s&    .)@@C
OO@@@@r   r)   c                 Z    t          |t                    st          S | j        |j        k    S r   )r,   r   r[   r   r-   s     r   r.   zUnsatisfiableRequirement.__eq__   s*    %!9:: 	"!!zU[((r   c                 *    t          | j                  S r   )r'   r   r   s    r   r(   z!UnsatisfiableRequirement.__hash__   s    DJr   c                     | j         S r   r   r   s    r   r0   z%UnsatisfiableRequirement.project_name   
    zr   c                     | j         S r   r   r   s    r   r2   zUnsatisfiableRequirement.name   r   r   c                      t          |           S r   r   r   s    r   r4   z)UnsatisfiableRequirement.format_for_error   r   r   c                     dS )Nr   r>   r   s    r   r6   z-UnsatisfiableRequirement.get_candidate_lookup   s    zr   r   c                     dS r+   r>   r   s     r   r8   z(UnsatisfiableRequirement.is_satisfied_by   s    ur   )r$   r9   r:   r~   r   r   r   r   r%   rv   r<   r.   r;   r(   r=   r0   r2   r4   r   r6   r   r8   r>   r   r   r   r      sZ       11^     - - - - -A# A A A A)F )t ) ) ) )
 #         n    X c    X#    o     t      r   r   N)typingr   r    pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr   r   pip._internal.req.constructorsr   pip._internal.req.req_installr	   baser   r   r   r   r   r@   rx   r   r   r>   r   r   <module>r      s                   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#+ #+ #+ #+ #++ #+ #+ #+LEB EB EB EB EB; EB EB EBP    (<   D3L 3L 3L 3L 3L 3L 3L 3Ll# # # # #{ # # # # #r   