
    *,hd                        d dl mZmZmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ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eeef   Zd	ed
ee   defdZ G d d      Z G d d      ZdedddefdZ G d d      Zy)    )	FrozenSetIterableOptionalTupleUnion)SpecifierSet)NormalizedNamecanonicalize_name)LegacyVersionVersion)Linklinks_equivalent)InstallRequirement)Hashes	Candidateprojectextrasreturnc                 p    |s| S t        d |D              }dj                  | dj                  |            S )Nc              3   2   K   | ]  }t        |        y wN)r
   ).0es     j/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py	<genexpr>zformat_name.<locals>.<genexpr>   s     Cq/2Cs   z{}[{}],)sortedformatjoin)r   r   canonical_extrass      r   format_namer!      s6    CFCC??7CHH-=$>??    c                       e Zd Zdededee   ddfdZedd       Z	ede
dd fd	       Zdefd
Zde
dd fdZdddefdZy)
Constraint	specifierhasheslinksr   Nc                 .    || _         || _        || _        y r   )r%   r&   r'   )selfr%   r&   r'   s       r   __init__zConstraint.__init__   s     #
r"   c                 L    t        t               t               t                     S r   )r$   r   r   	frozenset)clss    r   emptyzConstraint.empty   s    ,.&(IK@@r"   ireqc                     |j                   rt        |j                   g      n	t               }t        |j                  |j	                  d      |      S NF)trust_internet)linkr,   r$   r%   r&   )r-   r/   r'   s      r   	from_ireqzConstraint.from_ireq"   s:    *.))	499+&$..$++U+*KUSSr"   c                     t        | j                        xs, t        | j                        xs t        | j                        S r   )boolr%   r&   r'   r)   s    r   __bool__zConstraint.__bool__'   s-    DNN#LtDKK'8LD<LLr"   otherc                     t        |t              st        S | j                  |j                  z  }| j                  |j	                  d      z  }| j
                  }|j                  r|j                  |j                  g      }t        |||      S r1   )	
isinstancer   NotImplementedr%   r&   r'   r3   unionr$   )r)   r9   r%   r&   r'   s        r   __and__zConstraint.__and__*   sq    %!34!!NNU__4	u||5|AA

::KK-E)VU33r"   	candidater   c                     | j                   rt        fd| j                   D              sy| j                  j                  j                  d      S )Nc              3   6   K   | ]  }t        |        y wr   )_match_link)r   r3   r?   s     r   r   z-Constraint.is_satisfied_by.<locals>.<genexpr>6   s     !V4+dI">!Vs   FT)prereleases)r'   allr%   containsversionr)   r?   s    `r   is_satisfied_byzConstraint.is_satisfied_by4   s@    ::c!V4::!VV ~~&&y'8'8d&KKr"   )r   r$   )__name__
__module____qualname__r   r   r   r   r*   classmethodr.   r   r4   r6   r8   r>   rH    r"   r   r$   r$      s    %/5>Go	 A A T/ TL T TM$ M4/ 4L 4L L Lr"   r$   c                   `    e Zd Zedefd       Zedefd       ZdddefdZ	de
fdZdefdZy	)
Requirementr   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NotImplementedErrorr7   s    r   project_namezRequirement.project_name?   s     ""<==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   r7   s    r   namezRequirement.nameI   s     ""<==r"   r?   r   c                      yNFrM   rG   s     r   rH   zRequirement.is_satisfied_byR   s    r"   c                     t        d      NrQ   rR   r7   s    r   get_candidate_lookupz Requirement.get_candidate_lookupU       !"<==r"   c                     t        d      rZ   rR   r7   s    r   format_for_errorzRequirement.format_for_errorX   r\   r"   N)rI   rJ   rK   propertyr	   rT   strrV   r6   rH   CandidateLookupr[   r^   rM   r"   r   rO   rO   >   sa    >n > > >c > >  >o >># >r"   rO   r3   r?   c                 H    |j                   rt        | |j                         S yrX   )source_linkr   )r3   r?   s     r   rB   rB   \   s!    i&;&;<<r"   c                       e Zd Zedefd       Zedefd       Zedefd       Z	ede
fd       Zede
fd       Zedee   fd       Zde
deee      fd	Zdee   fd
ZdefdZy)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   r7   s    r   rT   zCandidate.project_namec   s     ""899r"   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.
        rf   rR   r7   s    r   rV   zCandidate.namem   s     ""899r"   c                     t        d      Nrf   rR   r7   s    r   rF   zCandidate.versionv       !"899r"   c                     t        d      ri   rR   r7   s    r   is_installedzCandidate.is_installedz   rj   r"   c                     t        d      ri   rR   r7   s    r   is_editablezCandidate.is_editable~   rj   r"   c                     t        d      ri   rR   r7   s    r   rc   zCandidate.source_link   rj   r"   with_requiresc                     t        d      ri   rR   )r)   rp   s     r   iter_dependencieszCandidate.iter_dependencies       !"899r"   c                     t        d      ri   rR   r7   s    r   get_install_requirementz!Candidate.get_install_requirement   rs   r"   c                     t        d      rZ   rR   r7   s    r   r^   zCandidate.format_for_error   r\   r"   N)rI   rJ   rK   r_   r	   rT   r`   rV   CandidateVersionrF   r6   rl   rn   r   r   rc   r   rO   rr   r   ru   r^   rM   r"   r   r   r   b   s    :n : : :c : : :) : : :d : : :T : : :Xd^ : ::t :+AV8W ::2D)E :># >r"   N)typingr   r   r   r   r    pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr	   r
   pip._vendor.packaging.versionr   r   pip._internal.models.linkr   r   pip._internal.req.req_installr   pip._internal.utils.hashesr   ra   rw   r`   r!   r$   rO   r6   rB   r   rM   r"   r   <module>r      s    > > 9 I @ < < --x8J/KKL/0 @ @in @ @%L %LP> ><d { t +> +>r"   