
    dh                     h    d dl Z d dlmZ d dlmZ d dlmZ  e j                  e      Z	 G d d      Z
y)    N)OrderedDict)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     [/var/www/html/vivango/api/ia/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   r8   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   r8   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_requirement2   s=    (. D--- ?%%l3>>>	
r   c                 n    t        |      }|| j                  v r| j                  |   S t        d|      )NzNo project with the name )r   r   KeyErrorrB   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_requirementsB   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.
        )rI   rA   satisfied_byr;   s     r   requirements_to_installz&RequirementSet.requirements_to_installF   s;      $44
))+2J2J 
 	
 
s   !3)T)r4   
__module____qualname__boolr   r&   r+   r7   r   r<   r?   rC   rF   propertyrH   rI   rL    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   pip._vendor.packaging.utilsr   pip._internal.req.req_installr   	getLoggerr4   loggerr   rQ   r   r   <module>rX      s/     # 9 <			8	$F
 F
r   