o aiæ ã@s¦ddlZddlZejrddlZddlmZGdd„dejƒZGdd„deƒZGdd„deƒZ Gd d „d eƒZ e ƒZ Gd d „d eƒZ Gd d„deƒZ Gdd„deƒZdS)éN)ÚRetryCallStatec@s<eZdZdZejdddefdd„ƒZdd d „Zdd d „Z dS)Ú stop_basez(Abstract base class for stop strategies.Ú retry_staterÚreturncCsdS©N©©Úselfrrrú‹/builddir/build/BUILDROOT/alt-python310-pip-21.3.1-5.el8.x86_64/opt/alt/python310/lib/python3.10/site-packages/pip/_vendor/tenacity/stop.pyÚ__call__szstop_base.__call__ÚotherÚstop_allcCó t||ƒSr)r ©r r rrr Ú__and__ ó zstop_base.__and__Ústop_anycCrr)rrrrr Ú__or__#rzstop_base.__or__N)r rrr )r rrr) Ú__name__Ú __module__Ú __qualname__Ú__doc__ÚabcÚabstractmethodÚboolr rrrrrr rs  rc@ó4eZdZdZdeddfdd„Zdddefd d „ZdS) rz+Stop if any of the stop condition is valid.ÚstopsrNcGó ||_dSr©r©r rrrr Ú__init__*rzstop_any.__init__rrcót‡fdd„|jDƒƒS)Nc3ó|]}|ˆƒVqdSrr©Ú.0Úx©rrr Ú .ó€z$stop_any.__call__..)Úanyrrrr&r r -ózstop_any.__call__©rrrrrr rr rrrr r'órc@r) r z*Stop if all the stop conditions are valid.rrNcGrrrrrrr r 4rzstop_all.__init__rrcr!)Nc3r"rrr#r&rr r'8r(z$stop_all.__call__..)Úallrrrr&r r 7r*zstop_all.__call__r+rrrr r 1r,r c@s"eZdZdZdddefdd„ZdS)Ú _stop_neverz Never stop.rrrcCsdS)NFrrrrr r >sz_stop_never.__call__N)rrrrrr rrrr r.;sr.c@s,eZdZdZd dd„Zdd defd d „ZdS) Ústop_when_event_setz!Stop when the given event is set.Úeventúthreading.EventrNcCrr)r0)r r0rrr r Hrzstop_when_event_set.__init__rrcCs |j ¡Sr)r0Úis_setrrrr r Krzstop_when_event_set.__call__)r0r1rN)rrrrr rr rrrr r/Es r/c@r) Ústop_after_attemptz.Stop when the previous attempt >= max_attempt.Úmax_attempt_numberrNcCrr)r4)r r4rrr r Rrzstop_after_attempt.__init__rrcCó |j|jkSr)Úattempt_numberr4rrrr r Uó zstop_after_attempt.__call__)rrrrÚintr rr rrrr r3Or,r3c@r) Ústop_after_delayz3Stop when the time from the first attempt >= limit.Ú max_delayrNcCrr)r:)r r:rrr r \rzstop_after_delay.__init__rrcCr5r)Úseconds_since_startr:rrrr r _r7zstop_after_delay.__call__)rrrrÚfloatr rr rrrr r9Yr,r9)rÚtypingÚ TYPE_CHECKINGÚ threadingÚpip._vendor.tenacityrÚABCrrr r.Ú stop_neverr/r3r9rrrr Ús