a
    $lJh  ã                   @  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r’d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/shaz/venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers/abstract.pyr      s   
r   )r   r   r   c                   @  s8   e Zd ZdZeZddddœdd„Zdd	d
dœdd„ZdS )ÚAbstractResolverz3The thing that performs the actual resolution work.zAbstractProvider[RT, CT, KT]zBaseReporter[RT, CT, KT]ÚNone)ÚproviderÚreporterÚreturnc                 C  s   || _ || _d S )N)r   r   )Úselfr   r   r   r   r   Ú__init__   s    zAbstractResolver.__init__zIterable[RT]r   zResult[RT, CT, KT])ÚrequirementsÚkwargsr    c                 K  s   t ‚dS )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.
        N)ÚNotImplementedError)r!   r#   r$   r   r   r   Úresolve#   s    zAbstractResolver.resolveN)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    