
    dh                        d dl mZ d dl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y)    )annotations)Any)SpecifierSet)NormalizedNamecanonicalize_name)install_req_drop_extras)InstallRequirement   )	CandidateCandidateLookupRequirementformat_namec                  p    e Zd ZddZddZddZddZddZedd       Z	edd       Z
ddZdd	Zdd
Zy)ExplicitRequirementc                    || _         y N	candidateselfr   s     r/var/www/html/vivango/api/ia/venv/lib/python3.12/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                N    | j                   j                   d| j                  dS N())	__class____name__r   r   s    r   __repr__zExplicitRequirement.__repr__   s%    ..))*!DNN+=Q??r   c                ,    t        | j                        S r   )hashr   r   s    r   __hash__zExplicitRequirement.__hash__   s    DNN##r   c                V    t        |t              sy| j                  |j                  k(  S NF)
isinstancer   r   r   others     r   __eq__zExplicitRequirement.__eq__   s#    %!45~~00r   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   r1   zExplicitRequirement.name%   s     ~~"""r   c                6    | j                   j                         S r   )r   format_for_errorr   s    r   r3   z$ExplicitRequirement.format_for_error*   s    ~~..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_by0   s    DNN**r   N)r   r   returnNoner8   r   r8   intr,   r   r8   boolr8   r   r8   r   r   r   r8   r>   )r#   
__module____qualname__r   r   r$   r'   r-   propertyr/   r1   r3   r5   r7    r   r   r   r      sS    ##@$1
 + + # #1$+r   r   c                      e Zd ZddZedd       ZddZddZddZddZ	edd       Z
edd       Zdd	Zdd
ZddZy)SpecifierRequirementc                    |j                   J d       || _        d | _        d | _        t	        d | j                  j
                  D              | _        y )NThis is a link, not a specifierc              3  2   K   | ]  }t        |        y wr   r   .0es     r   	<genexpr>z0SpecifierRequirement.__init__.<locals>.<genexpr>:         Q!!21!5 Q   )link_ireq_equal_cache_hash	frozensetextras_extrasr   ireqs     r   r   zSpecifierRequirement.__init__5   sJ    yy C"CC 
(,!%
  Qtzz?P?P QQr   c                ~    | j                   | j                   S t        | j                        | _         | j                   S r   rT   r   rS   r   s    r   _equalzSpecifierRequirement._equal<   6    ($$$

O   r   c                @    t        | j                  j                        S r   )r   rS   reqr   s    r   r   zSpecifierRequirement.__str__D   s    4::>>""r   c                t    | j                   j                   dt        | j                  j                        dS r   )r"   r#   r   rS   r`   r   s    r   r$   zSpecifierRequirement.__repr__G   s.    ..))*!C

,?+B!DDr   c                `    t        |t              st        S | j                  |j                  k(  S r   )r*   rG   NotImplementedr]   r+   s     r   r-   zSpecifierRequirement.__eq__J   s&    %!56!!{{ell**r   c                ~    | j                   | j                   S t        | j                        | _         | j                   S r   rU   r&   r]   r   s    r   r'   zSpecifierRequirement.__hash__O   0    ::!::$++&
zzr   c                    | j                   j                  sJ d       t        | j                   j                  j                        S )N'Specifier-backed ireq is always PEP 508)rS   r`   r   r1   r   s    r   r/   z!SpecifierRequirement.project_nameV   s1    zz~~HHH~ !4!455r   c                B    t        | j                  | j                        S r   )r   r/   rX   r   s    r   r1   zSpecifierRequirement.name[   s    4,,dll;;r   c                    t        |       j                  d      D cg c]  }|j                          }}t        |      dk(  ryt        |      dk(  r|d   S dj	                  |d d       dz   |d   z   S c c}w )N,r    r
   z, z and )r   splitstriplenjoin)r   spartss      r   r3   z%SpecifierRequirement.format_for_error_   st    
 %(IOOC$89q99u:?Z1_8Oyys$w.r:: :s   A5c                    d | j                   fS r   )rS   r   s    r   r5   z)SpecifierRequirement.get_candidate_lookupl   s    TZZr   c                *   |j                   | j                   k(  s!J d|j                    d| j                           | j                  j                  sJ d       | j                  j                  j                  }|j	                  |j
                  d      S )Nz6Internal issue: Candidate is not for this requirement z vs rh   Tprereleases)r1   rS   r`   	specifiercontainsversion)r   r   specs      r   r7   z$SpecifierRequirement.is_satisfied_byo   s    ~~* 	
D~~d499+/	
* zz~~HHH~zz~~''}}Y..D}AAr   NrZ   r	   r8   r9   r:   r,   objectr8   r>   r;   r?   r@   rA   )r#   rB   rC   r   rD   r]   r   r$   r-   r'   r/   r1   r3   r5   r7   rE   r   r   rG   rG   4   si    R ! !#E+
 6 6 < <; 
Br   rG   c                  :    e Zd ZdZddZedd       Zd	dZd
dZy)!SpecifierWithoutExtrasRequirementz
    Requirement backed by an install requirement on a base package.
    Trims extras from its install requirement if there are any.
    c                    |j                   J d       t        |      | _        d | _        d | _        t        d | j                  j                  D              | _        y )NrI   c              3  2   K   | ]  }t        |        y wr   rK   rL   s     r   rO   z=SpecifierWithoutExtrasRequirement.__init__.<locals>.<genexpr>   rP   rQ   )rR   r   rS   rT   rU   rV   rW   rX   rY   s     r   r   z*SpecifierWithoutExtrasRequirement.__init__   sO    yy C"CC ,T2
(,!%
  Qtzz?P?P QQr   c                ~    | j                   | j                   S t        | j                        | _         | j                   S r   r\   r   s    r   r]   z(SpecifierWithoutExtrasRequirement._equal   r^   r   c                `    t        |t              st        S | j                  |j                  k(  S r   )r*   r   rc   r]   r+   s     r   r-   z(SpecifierWithoutExtrasRequirement.__eq__   s&    %!BC!!{{ell**r   c                ~    | j                   | j                   S t        | j                        | _         | j                   S r   re   r   s    r   r'   z*SpecifierWithoutExtrasRequirement.__hash__   rf   r   Nr|   r:   r}   r;   )	r#   rB   rC   __doc__r   rD   r]   r-   r'   rE   r   r   r   r   |   s+    
R ! !+
r   r   c                  t    e Zd ZdZddZddZddZddZddZe	dd       Z
e	dd       Zdd	Zdd
ZddZy)RequiresPythonRequirementz4A requirement representing Requires-Python metadata.c                N    || _         t        |      | _        d | _        || _        y r   )rx   r   _specifier_stringrU   
_candidate)r   rx   matchs      r   r   z"RequiresPythonRequirement.__init__   s#    "!$Y!%
r   c                     d| j                    S )NzPython )rx   r   s    r   r   z!RequiresPythonRequirement.__str__   s    ())r   c                `    | j                   j                   dt        | j                        dS r   )r"   r#   r   rx   r   s    r   r$   z"RequiresPythonRequirement.__repr__   s*    ..))*!C,?+B!DDr   c                    | j                   | j                   S t        | j                  | j                  f      | _         | j                   S r   )rU   r&   r   r   r   s    r   r'   z"RequiresPythonRequirement.__hash__   s;    ::!::4114??CD
zzr   c                    t        |t              sy| j                  |j                  k(  xr | j                  |j                  k(  S r)   )r*   r   r   r   r+   s     r   r-   z RequiresPythonRequirement.__eq__   s@    %!:;""e&=&== 45#3#33	
r   c                .    | j                   j                  S r   )r   r/   r   s    r   r/   z&RequiresPythonRequirement.project_name   s    +++r   c                .    | j                   j                  S r   )r   r1   r   s    r   r1   zRequiresPythonRequirement.name   s    ###r   c                    t        |       S r   r   r   s    r   r3   z*RequiresPythonRequirement.format_for_error       4yr   c                    | j                   j                  | j                  j                  d      r| j                  d fS y)NTrv   NN)rx   ry   r   rz   r   s    r   r5   z.RequiresPythonRequirement.get_candidate_lookup   s5    >>""4??#:#:"M??D((r   c                    |j                   | j                  j                   k(  sJ d       | j                  j                  |j                  d      S )NzNot Python candidateTrv   )r1   r   rx   ry   rz   r   s     r   r7   z)RequiresPythonRequirement.is_satisfied_by   sF    ~~!5!55M7MM5 ~~&&y'8'8d&KKr   N)rx   r   r   r   r8   r9   r:   r;   r=   r?   r@   rA   )r#   rB   rC   r   r   r   r$   r'   r-   rD   r/   r1   r3   r5   r7   rE   r   r   r   r      sW    > *E
 , , $ $
Lr   r   c                  t    e Zd ZdZddZddZddZddZddZe	dd       Z
e	dd       Zdd	Zdd
ZddZy)UnsatisfiableRequirementz'A requirement that cannot be satisfied.c                    || _         y r   _name)r   r1   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                   dt        | j                        dS r   )r"   r#   r   r   r   s    r   r$   z!UnsatisfiableRequirement.__repr__   s)    ..))*!C

O+>a@@r   c                `    t        |t              st        S | j                  |j                  k(  S r   )r*   r   rc   r   r+   s     r   r-   zUnsatisfiableRequirement.__eq__   s&    %!9:!!zzU[[((r   c                ,    t        | j                        S r   )r&   r   r   s    r   r'   z!UnsatisfiableRequirement.__hash__   s    DJJr   c                    | j                   S r   r   r   s    r   r/   z%UnsatisfiableRequirement.project_name       zzr   c                    | j                   S r   r   r   s    r   r1   zUnsatisfiableRequirement.name   r   r   c                    t        |       S r   r   r   s    r   r3   z)UnsatisfiableRequirement.format_for_error   r   r   c                     y)Nr   rE   r   s    r   r5   z-UnsatisfiableRequirement.get_candidate_lookup   s    r   c                     yr)   rE   r   s     r   r7   z(UnsatisfiableRequirement.is_satisfied_by   s    r   N)r1   r   r8   r9   r:   r}   r;   r?   r@   rA   )r#   rB   rC   r   r   r   r$   r-   r'   rD   r/   r1   r3   r5   r7   rE   r   r   r   r      sV    1-A)
     r   r   N)
__future__r   typingr    pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr   r   pip._internal.req.constructorsr   pip._internal.req.req_installr	   baser   r   r   r   r   rG   r   r   r   rE   r   r   <module>r      sd    "  9 I B < F F#++ #+LEB; EBP(< D3L 3Ll#{ #r   