
    )h*                     x    d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	  e j                  e      Z G d d      Zy)    N)OrderedDict)DictList)canonicalize_name)InstallRequirementc                       e Zd ZddeddfdZdefdZdefdZdeddfdZ	deddfd	Z
d
edefdZd
edefdZedee   fd       Zedee   fd       Zy)RequirementSetcheck_supported_wheelsreturnNc                 >    t               | _        || _        g | _        y)zCreate a RequirementSet.N)r   requirementsr
   unnamed_requirements)selfr
   s     L/var/www/html/venv/lib/python3.12/site-packages/pip/_internal/req/req_set.py__init__zRequirementSet.__init__   s     <G=&<#>@!    c                     t        d | j                  j                         D        d       }dj                  d |D              S )Nc              3   :   K   | ]  }|j                   r|  y wN)
comes_from.0reqs     r   	<genexpr>z)RequirementSet.__str__.<locals>.<genexpr>   s     MScnnSMs   c                 4    t        | j                  xs d      S N r   namer   s    r   <lambda>z(RequirementSet.__str__.<locals>.<lambda>       -chhn"= r   key c              3   F   K   | ]  }t        |j                          y wr   strr   r   s     r   r   z)RequirementSet.__str__.<locals>.<genexpr>   s     =CGG=   !)sortedr   valuesjoin)r   r   s     r   __str__zRequirementSet.__str__   s=    MD--446M=
 xx====r   c                     t        | j                  j                         d       }d}|j                  | j                  j
                  t        |      dj                  d |D                    S )Nc                 4    t        | j                  xs d      S r   r   r    s    r   r!   z)RequirementSet.__repr__.<locals>.<lambda>   r"   r   r#   z4<{classname} object; {count} requirement(s): {reqs}>z, c              3   F   K   | ]  }t        |j                          y wr   r'   r   s     r   r   z*RequirementSet.__repr__.<locals>.<genexpr>&   s     @C3sww<@r)   )	classnamecountreqs)r*   r   r+   format	__class____name__lenr,   )r   r   format_strings      r   __repr__zRequirementSet.__repr__   sh    $$&=

 O##nn--l#@<@@ $ 
 	
r   install_reqc                 V    |j                   rJ | j                  j                  |       y r   )r   r   appendr   r:   s     r   add_unnamed_requirementz&RequirementSet.add_unnamed_requirement)   s%    ####!!((5r   c                 h    |j                   sJ t        |j                         }|| j                  |<   y r   )r   r   r   )r   r:   project_names      r   add_named_requirementz$RequirementSet.add_named_requirement-   s1    ()9)9:*5,'r   r   c                 l    t        |      }|| j                  v xr | j                  |   j                   S r   )r   r   
constraintr   r   r@   s      r   has_requirementzRequirementSet.has_requirement3   s=    (. D--- ?%%l3>>>	
r   c                 n    t        |      }|| j                  v r| j                  |   S t        d|      )NzNo project with the name )r   r   KeyErrorrD   s      r   get_requirementzRequirementSet.get_requirement;   s>    (.4,,,$$\2224(;<<r   c                 b    | j                   t        | j                  j                               z   S r   )r   listr   r+   )r   s    r   all_requirementszRequirementSet.all_requirementsC   s'    ((40A0A0H0H0J+KKKr   c                 p    | j                   D cg c]  }|j                  s|j                  s| c}S c c}w )zReturn the list of requirements that need to be installed.

        TODO remove this property together with the legacy resolver, since the new
             resolver only returns requirements that need to be installed.
        )rK   rC   satisfied_byr=   s     r   requirements_to_installz&RequirementSet.requirements_to_installG   s;      $44
))+2J2J 
 	
 
s   !3)T)r6   
__module____qualname__boolr   r(   r-   r9   r   r>   rA   rE   rH   propertyr   rK   rN    r   r   r	   r	      s    At At A> >
# 
63E 6$ 661C 6 6
C 
D 
=C =,> = L$'9": L L 

.@)A 

 

r   r	   )loggingcollectionsr   typingr   r   pip._vendor.packaging.utilsr   pip._internal.req.req_installr   	getLoggerr6   loggerr	   rS   r   r   <module>r[      s2     #  9 <			8	$F
 F
r   