
    q"h                         S SK JrJr  S SKJr  S SKJrJr  S SKJ	r	  S SK
Jr  SSKJrJrJrJr   " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      rg)    )AnyOptional)SpecifierSet)NormalizedNamecanonicalize_name)install_req_drop_extras)InstallRequirement   )	CandidateCandidateLookupRequirementformat_namec                       \ rS rSrS\SS4S jrS\4S jrS\4S jrS\	4S jr
S	\S\4S
 jr\S\4S j5       r\S\4S j5       rS\4S jrS\4S jrS\S\4S jrSrg)ExplicitRequirement   	candidatereturnNc                     Xl         g Nr   selfr   s     b/var/www/html/env/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/requirements.py__init__ExplicitRequirement.__init__   s    "    c                 ,    [        U R                  5      $ r   )strr   r   s    r   __str__ExplicitRequirement.__str__   s    4>>""r   c                 P    U R                   R                   SU R                  < S3$ N())	__class____name__r   r   s    r   __repr__ExplicitRequirement.__repr__   s%    ..))*!DNN+=Q??r   c                 ,    [        U R                  5      $ r   )hashr   r   s    r   __hash__ExplicitRequirement.__hash__   s    DNN##r   otherc                 `    [        U[        5      (       d  gU R                  UR                  :H  $ NF)
isinstancer   r   r   r.   s     r   __eq__ExplicitRequirement.__eq__   s&    %!455~~00r   c                 .    U R                   R                  $ r   )r   project_namer   s    r   r6    ExplicitRequirement.project_name   s     ~~***r   c                 .    U R                   R                  $ r   )r   namer   s    r   r9   ExplicitRequirement.name#   s     ~~"""r   c                 6    U R                   R                  5       $ r   )r   format_for_errorr   s    r   r<   $ExplicitRequirement.format_for_error(   s    ~~..00r   c                     U R                   S 4$ r   r   r   s    r   get_candidate_lookup(ExplicitRequirement.get_candidate_lookup+   s    ~~t##r   c                     XR                   :H  $ r   r   r   s     r   is_satisfied_by#ExplicitRequirement.is_satisfied_by.   s    NN**r   r   )r'   
__module____qualname____firstlineno__r   r   r   r    r(   intr,   r   boolr3   propertyr   r6   r9   r<   r   r?   rB   __static_attributes__ r   r   r   r      s    #) # ## #@# @$# $1C 1D 1
 +n + + #c # #1# 1$o $+ +t +r   r   c                       \ rS rSrS\SS4S jr\S\4S j5       rS\4S jr	S\4S jr
S	\S\4S
 jrS\4S jr\S\4S j5       r\S\4S j5       rS\4S jrS\4S jrS\S\4S jrSrg)SpecifierRequirement2   ireqr   Nc                     UR                   b   S5       eXl        S U l        S U l        [	        S U R                  R
                   5       5      U l        g )NThis is a link, not a specifierc              3   8   #    U  H  n[        U5      v   M     g 7fr   r   .0es     r   	<genexpr>0SpecifierRequirement.__init__.<locals>.<genexpr>8         Q?P!!21!5!5?P   )link_ireq_equal_cache_hash	frozensetextras_extrasr   rO   s     r   r   SpecifierRequirement.__init__3   sH    yy C"CC 
+/$(
  Qtzz?P?P QQr   c                     U R                   b  U R                   $ [        U R                  5      U l         U R                   $ r   r]   r   r\   r   s    r   _equalSpecifierRequirement._equal:   6    ($$$

O   r   c                 @    [        U R                  R                  5      $ r   )r   r\   reqr   s    r   r    SpecifierRequirement.__str__B   s    4::>>""r   c                 v    U R                   R                   S[        U R                  R                  5      < S3$ r#   )r&   r'   r   r\   rj   r   s    r   r(   SpecifierRequirement.__repr__E   s.    ..))*!C

,?+B!DDr   r.   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r   )r1   rM   NotImplementedrf   r2   s     r   r3   SpecifierRequirement.__eq__H   s)    %!566!!{{ell**r   c                     U R                   b  U R                   $ [        U R                  5      U l         U R                   $ r   r^   r+   rf   r   s    r   r,   SpecifierRequirement.__hash__M   0    ::!::$++&
zzr   c                     U R                   R                  (       d   S5       e[        U R                   R                  R                  5      $ )N'Specifier-backed ireq is always PEP 508)r\   rj   r   r9   r   s    r   r6   !SpecifierRequirement.project_nameT   s1    zz~~HHH~ !4!455r   c                 B    [        U R                  U R                  5      $ r   )r   r6   ra   r   s    r   r9   SpecifierRequirement.nameY   s    4,,dll;;r   c                     [        U 5      R                  S5       Vs/ s H  oR                  5       PM     nn[        U5      S:X  a  g[        U5      S:X  a  US   $ SR	                  US S 5      S-   US   -   $ s  snf )N,r    r
   z, z and )r   splitstriplenjoin)r   spartss      r   r<   %SpecifierRequirement.format_for_error]   su    
 %(IOOC$89$8q$89u:?Z1_8Oyys$w.r:: :s   A9c                     S U R                   4$ r   )r\   r   s    r   r?   )SpecifierRequirement.get_candidate_lookupj   s    TZZr   r   c                 0   UR                   U R                   :X  d!   SUR                    SU R                    35       eU R                  R                  (       d   S5       eU R                  R                  R                  nUR	                  UR
                  SS9$ )Nz6Internal issue: Candidate is not for this requirement z vs rv   Tprereleases)r9   r\   rj   	specifiercontainsversion)r   r   specs      r   rB   $SpecifierRequirement.is_satisfied_bym   s    ~~* 	
D~~d499+/	
* zz~~HHH~zz~~''}}Y..D}AAr   r]   ra   r^   r\   )r'   rD   rE   rF   r	   r   rI   r   rf   r    r(   objectrH   r3   rG   r,   r   r6   r9   r<   r   r?   r   rB   rJ   rK   r   r   rM   rM   2   s    R/ RD R ! ! !# #E# E+F +t +
#  6n 6 6 <c < <;# ; o  
B 
Bt 
Br   rM   c                   b    \ rS rSrSrS\SS4S jr\S\4S j5       r	S\
S\4S	 jrS\4S
 jrSrg)!SpecifierWithoutExtrasRequirementz   z}
Requirement backed by an install requirement on a base package.
Trims extras from its install requirement if there are any.
rO   r   Nc                     UR                   b   S5       e[        U5      U l        S U l        S U l        [        S U R                  R                   5       5      U l        g )NrQ   c              3   8   #    U  H  n[        U5      v   M     g 7fr   rS   rT   s     r   rW   =SpecifierWithoutExtrasRequirement.__init__.<locals>.<genexpr>   rY   rZ   )r[   r   r\   r]   r^   r_   r`   ra   rb   s     r   r   *SpecifierWithoutExtrasRequirement.__init__   sO    yy C"CC ,T2
+/$(
  Qtzz?P?P QQr   c                     U R                   b  U R                   $ [        U R                  5      U l         U R                   $ r   re   r   s    r   rf   (SpecifierWithoutExtrasRequirement._equal   rh   r   r.   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r   )r1   r   ro   rf   r2   s     r   r3   (SpecifierWithoutExtrasRequirement.__eq__   s)    %!BCC!!{{ell**r   c                     U R                   b  U R                   $ [        U R                  5      U l         U R                   $ r   rr   r   s    r   r,   *SpecifierWithoutExtrasRequirement.__hash__   rt   r   r   )r'   rD   rE   rF   __doc__r	   r   rI   r   rf   r   rH   r3   rG   r,   rJ   rK   r   r   r   r   z   sX    
R/ RD R ! ! !+F +t +
# r   r   c                       \ rS rSrSrS\S\SS4S jrS\4S jr	S\4S	 jr
S\4S
 jrS\S\4S jr\S\4S j5       r\S\4S j5       rS\4S jrS\4S jrS\S\4S jrSrg)RequiresPythonRequirement   z4A requirement representing Requires-Python metadata.r   matchr   Nc                 J    Xl         [        U5      U l        S U l        X l        g r   )r   r   _specifier_stringr^   
_candidate)r   r   r   s      r   r   "RequiresPythonRequirement.__init__   s    "!$Y$(
r   c                      SU R                    3$ )NzPython )r   r   s    r   r    !RequiresPythonRequirement.__str__   s    ())r   c                 b    U R                   R                   S[        U R                  5      < S3$ r#   )r&   r'   r   r   r   s    r   r(   "RequiresPythonRequirement.__repr__   s*    ..))*!C,?+B!DDr   c                     U R                   b  U R                   $ [        U R                  U R                  45      U l         U R                   $ r   )r^   r+   r   r   r   s    r   r,   "RequiresPythonRequirement.__hash__   s;    ::!::4114??CD
zzr   r.   c                     [        U[        5      (       d  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ r0   )r1   r   r   r   r2   s     r   r3    RequiresPythonRequirement.__eq__   sC    %!:;;""e&=&== 45#3#33	
r   c                 .    U R                   R                  $ r   )r   r6   r   s    r   r6   &RequiresPythonRequirement.project_name   s    +++r   c                 .    U R                   R                  $ r   )r   r9   r   s    r   r9   RequiresPythonRequirement.name   s    ###r   c                     [        U 5      $ r   r   r   s    r   r<   *RequiresPythonRequirement.format_for_error       4yr   c                     U R                   R                  U R                  R                  SS9(       a  U R                  S 4$ g)NTr   NN)r   r   r   r   r   s    r   r?   .RequiresPythonRequirement.get_candidate_lookup   s5    >>""4??#:#:"M??D((r   r   c                     UR                   U R                  R                   :X  d   S5       eU R                  R                  UR                  SS9$ )NzNot Python candidateTr   )r9   r   r   r   r   r   s     r   rB   )RequiresPythonRequirement.is_satisfied_by   sF    ~~!5!55M7MM5 ~~&&y'8'8d&KKr   )r   r^   r   r   )r'   rD   rE   rF   r   r   r   r   r   r    r(   rG   r,   r   rH   r3   rI   r   r6   r9   r<   r   r?   rB   rJ   rK   r   r   r   r      s    > ,  y  T  * *E# E# 
C 
D 
 ,n , , $c $ $# o 
L Lt Lr   r   c                       \ rS rSrSrS\SS4S jrS\4S jrS\4S jr	S	\
S\4S
 jrS\4S jr\S\4S j5       r\S\4S j5       rS\4S jrS\4S jrS\S\4S jrSrg)UnsatisfiableRequirement   z'A requirement that cannot be satisfied.r9   r   Nc                     Xl         g r   _name)r   r9   s     r   r   !UnsatisfiableRequirement.__init__   s    
r   c                      U R                    S3$ )Nz (unavailable)r   r   s    r   r     UnsatisfiableRequirement.__str__   s    **^,,r   c                 b    U R                   R                   S[        U R                  5      < S3$ r#   )r&   r'   r   r   r   s    r   r(   !UnsatisfiableRequirement.__repr__   s)    ..))*!C

O+>a@@r   r.   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r   )r1   r   ro   r   r2   s     r   r3   UnsatisfiableRequirement.__eq__   s)    %!9::!!zzU[[((r   c                 ,    [        U R                  5      $ r   )r+   r   r   s    r   r,   !UnsatisfiableRequirement.__hash__   s    DJJr   c                     U R                   $ r   r   r   s    r   r6   %UnsatisfiableRequirement.project_name       zzr   c                     U R                   $ r   r   r   s    r   r9   UnsatisfiableRequirement.name   r   r   c                     [        U 5      $ r   r   r   s    r   r<   )UnsatisfiableRequirement.format_for_error   r   r   c                     g)Nr   rK   r   s    r   r?   -UnsatisfiableRequirement.get_candidate_lookup   s    r   r   c                     gr0   rK   r   s     r   rB   (UnsatisfiableRequirement.is_satisfied_by   s    r   r   )r'   rD   rE   rF   r   r   r   r   r    r(   r   rH   r3   rG   r,   rI   r6   r9   r<   r   r?   r   rB   rJ   rK   r   r   r   r      s    1^  - -A# A)F )t )
 #   n   c  # 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   rM   r   r   r   rK   r   r   <module>r      sa      9 I B < F F#++ #+LEB; EBP(< D3L 3Ll#{ #r   