a
    $lJh                     @  sj   d dl mZ d dlmZmZmZ ddlmZmZm	Z	m
Z
mZ erLddlmZ G dd dee	eef ZdS )	    )annotations)TYPE_CHECKING
CollectionGeneric   )CTKTRTRequirementInformationState)	Criterionc                   @  s   e Zd ZdZddddZddddd	Zdd
ddddZd
ddddZddddddZdddddZ	ddddddZ
dddd d!Zd"S )#BaseReporterz?Delegate class to provider progress reporting for the resolver.None)returnc                 C  s   dS )z-Called before the resolution actually starts.N )selfr   r   R/var/www/shaz/venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.pystarting   s    zBaseReporter.startingint)indexr   c                 C  s   dS )zYCalled before each round of resolution starts.

        The index is zero-based.
        Nr   )r   r   r   r   r   starting_round   s    zBaseReporter.starting_roundzState[RT, CT, KT])r   stater   c                 C  s   dS )zCalled before each round of resolution ends.

        This is NOT called if the resolution ends at this round. Use `ending`
        if you want to report finalization. The index is zero-based.
        Nr   )r   r   r   r   r   r   ending_round   s    zBaseReporter.ending_round)r   r   c                 C  s   dS )z/Called before the resolution ends successfully.Nr   )r   r   r   r   r   ending   s    zBaseReporter.endingr	   z	CT | None)requirementparentr   c                 C  s   dS )a  Called when adding a new requirement into the resolve criteria.

        :param requirement: The additional requirement to be applied to filter
            the available candidaites.
        :param parent: The candidate that requires ``requirement`` as a
            dependency, or None if ``requirement`` is one of the root
            requirements passed in from ``Resolver.resolve()``.
        Nr   )r   r   r   r   r   r   adding_requirement!   s    zBaseReporter.adding_requirementz*Collection[RequirementInformation[RT, CT]])causesr   c                 C  s   dS )zCalled when starting to attempt requirement conflict resolution.

        :param causes: The information on the collision that caused the backtracking.
        Nr   )r   r   r   r   r   resolving_conflicts+   s    z BaseReporter.resolving_conflictszCriterion[RT, CT]r   )	criterion	candidater   c                 C  s   dS )z6Called when rejecting a candidate during backtracking.Nr   )r   r   r    r   r   r   rejecting_candidate3   s    z BaseReporter.rejecting_candidate)r    r   c                 C  s   dS )z9Called when adding a candidate to the potential solution.Nr   )r   r    r   r   r   pinning6   s    zBaseReporter.pinningN)__name__
__module____qualname____doc__r   r   r   r   r   r   r!   r"   r   r   r   r   r      s   
r   N)
__future__r   typingr   r   r   structsr   r   r	   r
   r   	resolversr   r   r   r   r   r   <module>   s
   