o
    !7h                     @  sT   d dl mZ d dlmZmZmZmZ ddlmZm	Z	m
Z
 G dd dee	ef ZdS )    )annotations)
CollectionGenericIterableIterator   )CTRTRequirementInformationc                   @  s8   e Zd ZdZdd
dZdddZdddZdddZdS )	CriterionaQ  Representation of possible resolution results of a package.

    This holds three attributes:

    * `information` is a collection of `RequirementInformation` pairs.
      Each pair is a requirement contributing to this criterion, and the
      candidate that provides the requirement.
    * `incompatibilities` is a collection of all known not-to-work candidates
      to exclude from consideration.
    * `candidates` is a collection containing all possible candidates deducted
      from the union of contributing requirements and known incompatibilities.
      It should never be empty, except when the criterion is an attribute of a
      raised `RequirementsConflicted` (in which case it is always empty).

    .. note::
        This class is intended to be externally immutable. **Do not** mutate
        any of its attribute containers.
    
candidatesIterable[CT]information*Collection[RequirementInformation[RT, CT]]incompatibilitiesCollection[CT]returnNonec                 C  s   || _ || _|| _d S N)r   r   r   )selfr   r   r    r   /var/www/epreuve.sigeris.cm/public_html/epreuve/venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py__init__   s   
zCriterion.__init__strc                 C  s"   d dd | jD }d| dS )Nz, c                 s  s&    | ]\}}d |d|dV  qdS )(z, via=)Nr   ).0reqparentr   r   r   	<genexpr>'   s    
z%Criterion.__repr__.<locals>.<genexpr>z
Criterion(r   )joinr   )r   requirementsr   r   r   __repr__&   s   
zCriterion.__repr__Iterator[RT]c                 C     dd | j D S )Nc                 s      | ]}|j V  qd S r   )requirementr   ir   r   r   r   -       z-Criterion.iter_requirement.<locals>.<genexpr>r   r   r   r   r   iter_requirement,      zCriterion.iter_requirementIterator[CT | None]c                 C  r$   )Nc                 s  r%   r   )r   r'   r   r   r   r   0   r)   z(Criterion.iter_parent.<locals>.<genexpr>r*   r+   r   r   r   iter_parent/   r-   zCriterion.iter_parentN)r   r   r   r   r   r   r   r   )r   r   )r   r#   )r   r.   )__name__
__module____qualname____doc__r   r"   r,   r/   r   r   r   r   r      s    



r   N)
__future__r   typingr   r   r   r   structsr   r	   r
   r   r   r   r   r   <module>   s    