+
     h  c                  s    ^ RI Ht ^ RIHtHtHt ^RIHtHtH	t	H
t
Ht ]'       d   ^RIHt  ! R R]]	]]3,          4      tR# )i    )annotations)TYPE_CHECKING
CollectionGeneric)CTKTRTRequirementInformationState)	Criterionc                  sz    ] tR t^tRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltRtR# )BaseReporterz?Delegate class to provider progress reporting for the resolver.c               s    V ^8  d   QhRR/# )   returnNone Zformat   "E/usr/lib/python3.14/site-packages/pip/_vendor/resolvelib/reporters.py__annotate__BaseReporter.__annotate__   s     < <$ <    c                    R# )z-Called before the resolution actually starts.Nr   )selfs   &r   startingZBaseReporter.starting       r   c                    V ^8  d   QhRRRR/# )r   indexintr   r   r   r   r   r   r   r      s      C D r   c                r   )zICalled before each round of resolution starts.

The index is zero-based.
Nr   )r   r      &&r   starting_roundZBaseReporter.starting_round   r   r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   stateState[RT, CT, KT]r   r   r   r   r   r   r   r      s"      # .? D r   c                r   )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   ending_roundZBaseReporter.ending_round   r   r   c               r   )r   r   r    r   r   r   r   r   r   r   r      s     > >- >$ >r   c                r   )z/Called before the resolution ends successfully.Nr   )r   r   r   r   endingZBaseReporter.ending   r   r   c               r   )r   requirementr   parentz	CT | Noner   r   r   r   r   r   r   r   !   s!      b )  r   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   adding_requirementZBaseReporter.adding_requirement!   r   r   c               r   )r   causesz*Collection[RequirementInformation[RT, CT]]r   r   r   r   r   r   r   r   +   s      @	r   c                r   )zCalled when starting to attempt requirement conflict resolution.

:param causes: The information on the collision that caused the backtracking.
Nr   )r   r'   r   r   resolving_conflictsZ BaseReporter.resolving_conflicts+   r   r   c               r   )r   	criterionzCriterion[RT, CT]	candidater   r   r   r   r   r   r   r   r   3   s(     E E-> E2 ERV Er   c                r   )z6Called when rejecting a candidate during backtracking.Nr   )r   r)   r*   r!   r   rejecting_candidateZ BaseReporter.rejecting_candidate3   r   r   c               r   )r   r*   r   r   r   r   r   r   r   r   r   6   s     H H H Hr   c                r   )z9Called when adding a candidate to the potential solution.Nr   )r   r*   r   r   pinningZBaseReporter.pinning6   r   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r"   r#   r&   r(   r+   r,   Z__static_attributes__r   r   r   r
   r
      s5    I<>EH Hr   r
   N)Z
__future__r    Ztypingr   r   r   Zstructsr   r   r   r   r   Z	resolversr	   r
   r   r   r   <module>r-      s3    " 5 5 > >$,H72r2:& ,Hr   