o
    6‘ðiõ  ã                   @  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r&d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„Zd$dd	„Zd%dd„Zd&dd„Zd'dd„Zd(dd„Z	d)dd„Z
d*d d!„Zd"S )+ÚBaseReporterz>Delegate class to provide progress reporting for the resolver.ÚreturnÚNonec                 C  ó   dS )z-Called before the resolution actually starts.N© )Úselfr   r   ú_/root/parts/websockify/install/lib/python3.10/site-packages/pip/_vendor/resolvelib/reporters.pyÚstarting   ó    zBaseReporter.startingÚindexÚintc                 C  r   )zYCalled before each round of resolution starts.

        The index is zero-based.
        Nr   )r   r   r   r   r   Ústarting_round   r   zBaseReporter.starting_roundÚstateúState[RT, CT, KT]c                 C  r   )zÉCalled 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   r   zBaseReporter.ending_roundc                 C  r   )z/Called before the resolution ends successfully.Nr   )r   r   r   r   r   Úending   r   zBaseReporter.endingÚrequirementr	   Úparentú	CT | Nonec                 C  r   )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!   r   zBaseReporter.adding_requirementÚcausesú*Collection[RequirementInformation[RT, CT]]c                 C  r   )z Called 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+   r   z BaseReporter.resolving_conflictsÚ	criterionúCriterion[RT, CT]Ú	candidater   c                 C  r   )z6Called when rejecting a candidate during backtracking.Nr   )r   r$   r&   r   r   r   Úrejecting_candidate3   r   z BaseReporter.rejecting_candidatec                 C  r   )z9Called when adding a candidate to the potential solution.Nr   )r   r&   r   r   r   Úpinning6   r   zBaseReporter.pinningN)r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r	   r   r   r   r   )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   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    