
    !2i                    0   d dl mZ d dlmZ d dlmZ d dlmZ 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 eed         ee         f         Zd dZ ed           G d d                      Z G d d          Zd!dZ G d d          ZdS )"    )annotations)Iterable)	dataclass)Optional)SpecifierSet)NormalizedName)Version)Linklinks_equivalent)InstallRequirement)Hashes	Candidateprojectr   extrasfrozenset[NormalizedName]returnstrc                ^    |s| S d                     t          |                    }|  d| dS )N,[])joinsorted)r   r   extras_exprs      g/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/base.pyformat_namer      s=     ((6&>>**K&&&&&&    T)frozenc                  v    e Zd ZU ded<   ded<   ded<   edd            Zedd            ZddZddZddZ	dS )
Constraintr   	specifierr   hasheszfrozenset[Link]linksr   c                l    t          t                      t                      t                                S N)r    r   r   	frozenset)clss    r   emptyzConstraint.empty   s     ,..&((IKK@@@r   ireqr   c                    |j         rt          |j         g          nt                      }t          |j        |                    d          |          S NF)trust_internet)linkr&   r    r!   r"   )r'   r)   r#   s      r   	from_ireqzConstraint.from_ireq#   sE    *.)D	49+&&&$.$++U+*K*KUSSSr   boolc                z    t          | j                  p't          | j                  pt          | j                  S r%   )r/   r!   r"   r#   selfs    r   __bool__zConstraint.__bool__(   s0    DN##LtDK'8'8LD<L<LLr   otherc                   t          |t                    st          S | j        |j        z  }| j        |                    d          z  }| j        }|j        r|                    |j        g          }t          |||          S r+   )	
isinstancer   NotImplementedr!   r"   r#   r-   unionr    )r2   r4   r!   r"   r#   s        r   __and__zConstraint.__and__+   s{    %!344 	"!!NU_4	u||5|AAA
: 	.KK--E)VU333r   	candidater   c                    | j         r"t          fd| j         D                       sdS | j                            j        d          S )Nc              3  8   K   | ]}t          |          V  d S r%   )_match_link).0r-   r:   s     r   	<genexpr>z-Constraint.is_satisfied_by.<locals>.<genexpr>7   s-      !V!V4+dI">">!V!V!V!V!V!Vr   FT)prereleases)r#   allr!   containsversionr2   r:   s    `r   is_satisfied_byzConstraint.is_satisfied_by5   sX    : 	c!V!V!V!V4:!V!V!VVV 	5 ~&&y'8d&KKKr   N)r   r    )r)   r   r   r    r   r/   )r4   r   r   r    r:   r   r   r/   )
__name__
__module____qualname____annotations__classmethodr(   r.   r3   r9   rE    r   r   r    r       s         NNNA A A [A T T T [TM M M M4 4 4 4L L L L L Lr   r    c                  V    e Zd Zedd            Zedd            Zdd	ZddZddZdS )Requirementr   r   c                     t          d          )zThe "project name" of a requirement.

        This is different from ``name`` if this requirement contains extras,
        in which case ``name`` would contain the ``[...]`` part, while this
        refers to the name of the project.
        Subclass should overrideNotImplementedErrorr1   s    r   project_namezRequirement.project_name@   s     ""<===r   r   c                     t          d          )zThe name identifying this requirement in the resolver.

        This is different from ``project_name`` if this requirement contains
        extras, where ``project_name`` would not contain the ``[...]`` part.
        rQ   rR   r1   s    r   namezRequirement.nameJ   s     ""<===r   r:   r   r/   c                    dS NFrM   rD   s     r   rE   zRequirement.is_satisfied_byS   s    ur   CandidateLookupc                     t          d          NrQ   rR   r1   s    r   get_candidate_lookupz Requirement.get_candidate_lookupV       !"<===r   c                     t          d          r[   rR   r1   s    r   format_for_errorzRequirement.format_for_errorY   r]   r   Nr   r   r   r   rG   )r   rY   )	rH   rI   rJ   propertyrT   rV   rE   r\   r_   rM   r   r   rO   rO   ?   s        > > > X> > > > X>   > > > >> > > > > >r   rO   r-   r
   r:   r/   c                >    |j         rt          | |j                   S dS rX   )source_linkr   )r-   r:   s     r   r=   r=   ]   s%     =i&;<<<5r   c                      e Zd Zedd            Zedd            Zedd            Zedd	            Zedd
            Zedd            Z	ddZ
ddZddZdS )r   r   r   c                     t          d          )zThe "project name" of the candidate.

        This is different from ``name`` if this candidate contains extras,
        in which case ``name`` would contain the ``[...]`` part, while this
        refers to the name of the project.
        Override in subclassrR   r1   s    r   rT   zCandidate.project_named   s     ""8999r   r   c                     t          d          )zThe name identifying this candidate in the resolver.

        This is different from ``project_name`` if this candidate contains
        extras, where ``project_name`` would not contain the ``[...]`` part.
        rg   rR   r1   s    r   rV   zCandidate.namen   s     ""8999r   r	   c                     t          d          Nrg   rR   r1   s    r   rC   zCandidate.versionw       !"8999r   r/   c                     t          d          rj   rR   r1   s    r   is_installedzCandidate.is_installed{   rk   r   c                     t          d          rj   rR   r1   s    r   is_editablezCandidate.is_editable   rk   r   Link | Nonec                     t          d          rj   rR   r1   s    r   rd   zCandidate.source_link   rk   r   with_requiresIterable[Requirement | None]c                     t          d          rj   rR   )r2   rr   s     r   iter_dependencieszCandidate.iter_dependencies       !"8999r   InstallRequirement | Nonec                     t          d          rj   rR   r1   s    r   get_install_requirementz!Candidate.get_install_requirement   rv   r   c                     t          d          r[   rR   r1   s    r   r_   zCandidate.format_for_error   r]   r   Nr`   ra   )r   r	   rF   )r   rp   )rr   r/   r   rs   )r   rw   )rH   rI   rJ   rb   rT   rV   rC   rm   ro   rd   ru   ry   r_   rM   r   r   r   r   c   s       : : : X: : : : X: : : : X: : : : X: : : : X: : : : X:: : : :: : : :> > > > > >r   N)r   r   r   r   r   r   )r-   r
   r:   r   r   r/   )
__future__r   collections.abcr   dataclassesr   typingr    pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr   pip._vendor.packaging.versionr	   pip._internal.models.linkr
   r   pip._internal.req.req_installr   pip._internal.utils.hashesr   tuplerY   r   r    rO   r=   r   rM   r   r   <module>r      s   " " " " " " $ $ $ $ $ $ ! ! ! ! ! !       9 9 9 9 9 9 6 6 6 6 6 6 1 1 1 1 1 1 < < < < < < < < < < < < < < - - - - - --x8J/KKL' ' ' ' $"L "L "L "L "L "L "L "LJ> > > > > > > ><   +> +> +> +> +> +> +> +> +> +>r   