o
    h                     @  s   d dl mZ d dlZd dlmZmZmZmZmZm	Z	 ddl
mZmZmZmZ erIddlmZ ddlmZ dd	lmZ G d
d de	eeeef Znedg dZG dd deeeef ZdS )    )annotationsN)TYPE_CHECKINGAnyGenericIterableMapping
NamedTuple   )CTKTRTDirectedGraph)AbstractProvider)BaseReporter   )	Criterionc                   @  s&   e Zd ZU ded< ded< ded< dS )ResultzMapping[KT, CT]mappingzDirectedGraph[KT | None]graphzMapping[KT, Criterion[RT, CT]]criteriaN)__name__
__module____qualname____annotations__ r   r   \/var/www/html/venv/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers/abstract.pyr      s   
 r   )r   r   r   c                   @  s(   e Zd ZdZeZddd	ZdddZdS )AbstractResolverz3The thing that performs the actual resolution work.providerAbstractProvider[RT, CT, KT]reporterBaseReporter[RT, CT, KT]returnNonec                 C  s   || _ || _d S )N)r   r   )selfr   r   r   r   r   __init__   s   
zAbstractResolver.__init__requirementsIterable[RT]kwargsr   Result[RT, CT, KT]c                 K  s   t )a  Take a collection of constraints, spit out the resolution result.

        This returns a representation of the final resolution state, with one
        guarenteed attribute ``mapping`` that contains resolved candidates as
        values. The keys are their respective identifiers.

        :param requirements: A collection of constraints.
        :param kwargs: Additional keyword arguments that subclasses may accept.

        :raises: ``self.base_exception`` or its subclass.
        )NotImplementedError)r#   r%   r'   r   r   r   resolve#   s   zAbstractResolver.resolveN)r   r   r   r    r!   r"   )r%   r&   r'   r   r!   r(   )r   r   r   __doc__	Exceptionbase_exceptionr$   r*   r   r   r   r   r      s
    
r   )
__future__r   collectionstypingr   r   r   r   r   r   structsr
   r   r   r   	providersr   	reportersr   	criterionr   r   
namedtupler   r   r   r   r   <module>   s     