
    *,hN                         d dl mZ d dlmZ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y)    )SpecifierSet)NormalizedNamecanonicalize_name)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y)ExplicitRequirement	candidatereturnNc                     || _         y Nr   selfr   s     r/var/www/html/Resume-Scraper/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                 d    dj                  | j                  j                  | j                        S )Nz{class_name}({candidate!r}))
class_namer   )format	__class____name__r   r   s    r   __repr__zExplicitRequirement.__repr__   s.    ,33~~..nn 4 
 	
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                 6    | j                   j                         S r   )r   format_for_errorr   s    r   r'   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_by&   s    DNN**r   )r    
__module____qualname__r   r   r   r   r!   propertyr   r#   r%   r'   r	   r)   boolr+    r   r   r   r   	   s    #) # ## #
# 
 +n + + #c # #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y)SpecifierRequirementireqr   Nc                 l    |j                   J d       || _        t        |j                        | _        y )NzThis is a link, not a specifier)link_ireq	frozensetextras_extras)r   r3   s     r   r   zSpecifierRequirement.__init__+   s,    yy C"CC
 -r   c                 @    t        | j                  j                        S r   )r   r6   reqr   s    r   r   zSpecifierRequirement.__str__0   s    4::>>""r   c                     dj                  | j                  j                  t        | j                  j
                              S )Nz{class_name}({requirement!r}))r   requirement)r   r   r    r   r6   r;   r   s    r   r!   zSpecifierRequirement.__repr__3   s7    .55~~..DJJNN+ 6 
 	
r   c                     | j                   j                  sJ d       t        | j                   j                  j                        S )N'Specifier-backed ireq is always PEP 508)r6   r;   r   r%   r   s    r   r#   z!SpecifierRequirement.project_name9   s/    zz~~HHH !4!455r   c                 B    t        | j                  | j                        S r   )r   r#   r9   r   s    r   r%   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   r'   z%SpecifierRequirement.format_for_errorB   st    
 %(IOOC$89q99u:?Z1_8Oyys$w.r:: :s   A5c                     d | j                   fS r   )r6   r   s    r   r)   z)SpecifierRequirement.get_candidate_lookupO   s    TZZr   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 r?   Tprereleases)r%   r6   r;   	specifiercontainsversion)r   r   specs      r   r+   z$SpecifierRequirement.is_satisfied_byR   sz    ~~* 	
D~~d499+/	
 zz~~HHHzz~~''}}Y..D}AAr   )r    r,   r-   r   r   r   r   r!   r.   r   r#   r%   r'   r	   r)   r   r/   r+   r0   r   r   r2   r2   *   s    ./ .D .
# #
# 
 6n 6 6 <c < <;# ; o  
B 
Bt 
Br   r2   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y)RequiresPythonRequirementz4A requirement representing Requires-Python metadata.rO   matchr   Nc                      || _         || _        y r   )rO   
_candidate)r   rO   rU   s      r   r   z"RequiresPythonRequirement.__init__b   s    "r   c                      d| j                    S )NzPython )rO   r   s    r   r   z!RequiresPythonRequirement.__str__f   s    ())r   c                 v    dj                  | j                  j                  t        | j                              S )Nz{class_name}({specifier!r}))r   rO   )r   r   r    r   rO   r   s    r   r!   z"RequiresPythonRequirement.__repr__i   s3    ,33~~..$..) 4 
 	
r   c                 .    | j                   j                  S r   )rW   r#   r   s    r   r#   z&RequiresPythonRequirement.project_nameo   s    +++r   c                 .    | j                   j                  S r   )rW   r%   r   s    r   r%   zRequiresPythonRequirement.names   s    ###r   c                     t        |       S r   r   r   s    r   r'   z*RequiresPythonRequirement.format_for_errorw       4yr   c                     | j                   j                  | j                  j                  d      r| j                  d fS y)NTrM   NN)rO   rP   rW   rQ   r   s    r   r)   z.RequiresPythonRequirement.get_candidate_lookupz   s5    >>""4??#:#:"M??D((r   r   c                     |j                   | j                  j                   k(  sJ d       | j                  j                  |j                  d      S )NzNot Python candidateTrM   )r%   rW   rO   rP   rQ   r   s     r   r+   z)RequiresPythonRequirement.is_satisfied_by   sC    ~~!5!55M7MM ~~&&y'8'8d&KKr   )r    r,   r-   __doc__r   r   r   r   r   r!   r.   r   r#   r%   r'   r	   r)   r/   r+   r0   r   r   rT   rT   _   s    > ,  y  T  * *
# 
 ,n , , $c $ $# o 
L Lt Lr   rT   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y)UnsatisfiableRequirementz'A requirement that cannot be satisfied.r%   r   Nc                     || _         y r   _name)r   r%   s     r   r   z!UnsatisfiableRequirement.__init__   s	    
r   c                      | j                    dS )Nz (unavailable)rf   r   s    r   r   z UnsatisfiableRequirement.__str__   s    **^,,r   c                 v    dj                  | j                  j                  t        | j                              S )Nz{class_name}({name!r}))r   r%   )r   r   r    r   rg   r   s    r   r!   z!UnsatisfiableRequirement.__repr__   s2    '..~~..TZZ / 
 	
r   c                     | j                   S r   rf   r   s    r   r#   z%UnsatisfiableRequirement.project_name       zzr   c                     | j                   S r   rf   r   s    r   r%   zUnsatisfiableRequirement.name   rk   r   c                     t        |       S r   r]   r   s    r   r'   z)UnsatisfiableRequirement.format_for_error   r^   r   c                      y)Nr`   r0   r   s    r   r)   z-UnsatisfiableRequirement.get_candidate_lookup   s    r   r   c                      y)NFr0   r   s     r   r+   z(UnsatisfiableRequirement.is_satisfied_by   s    r   )r    r,   r-   rb   r   r   r   r   r!   r.   r#   r%   r'   r	   r)   r   r/   r+   r0   r   r   rd   rd      s    1^  - -
# 
 n   c  # o  t r   rd   N) pip._vendor.packaging.specifiersr   pip._vendor.packaging.utilsr   r   pip._internal.req.req_installr   baser   r	   r
   r   r   r2   rT   rd   r0   r   r   <module>rt      sK    9 I < F F++ +B2B; 2Bj%L %LP{ r   