+
    ÂHàj  ã                   ó~  € ^ RI t ^ RIt^ RIHt ]P                  '       d   ^ RIt^ RIHt  ! R R] P                  4      t]P                  ]]P                  R.]3,          3,          t ! R R]4      t ! R	 R
]4      t ! R R]4      t]! 4       t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )é    N)Ú_utils)ÚRetryCallStatec                   óx   a € ] tR t^t o Rt]P                  V 3R lR l4       tV 3R lR ltV 3R lR lt	Rt
V tR	# )
Ú	stop_basez(Abstract base class for stop strategies.c                ó$   <€ V ^8„  d   QhRRRS[ /# ©é   Úretry_stater   Úreturn©Úbool)ÚformatÚ__classdict__s   "€Ú�/home/ubuntu/.hermes/installs/5f0a1ff4045d044e/environments/88679baa1dc64374a0cd943b62eeefb9/venv/lib/python3.14/site-packages/tenacity/stop.pyÚ__annotate__Ústop_base.__annotate__   s   ø€ ÷ ñ Ð$4ð ¹ñ ó    c                ó   € R # ©N© ©Úselfr
   s   &&r   Ú__call__Ústop_base.__call__   s   € ár   c                ó"   <€ V ^8„  d   QhRRRR/# )r	   Úotherr   r   Ústop_allr   )r   r   s   "€r   r   r   "   s   ø€ ÷ %ñ %˜[ð %¨Zñ %r   c                ó   € \        W4      # r   )r   ©r   r   s   &&r   Ú__and__Ústop_base.__and__"   ó   € Ü˜Ó$Ð$r   c                ó"   <€ V ^8„  d   QhRRRR/# )r	   r   r   r   Ústop_anyr   )r   r   s   "€r   r   r   %   s   ø€ ÷ %ñ %˜Kð %¨Jñ %r   c                ó   € \        W4      # r   )r$   r   s   &&r   Ú__or__Ústop_base.__or__%   r"   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚabcÚabstractmethodr   r    r&   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s4   ø‡ € Ù2à×Ñ÷ó ð÷%ð %÷%ö %r   r   r   c                   óH   a € ] tR t^,t o RtV 3R lR ltV 3R lR ltRtV tR# )r$   z+Stop if any of the stop condition is valid.c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r	   Ústopsr   N©r   )r   r   s   "€r   r   Ústop_any.__annotate__/   ó   ø€ ÷ ñ ™yð ¨Tñ r   c                ó   € Wn         R # r   ©r5   ©r   r5   s   &*r   Ú__init__Ústop_any.__init__/   ó   € ØŽ
r   c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   r7   2   ó   ø€ ÷ 7ñ 7Ð$4ð 7¹ñ 7r   c                ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       g   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3   ó2   <"  € T F  q! S4      x € K  	  R # 5ir   r   ©Ú.0Úxr
   s   & €r   Ú	<genexpr>Ú$stop_any.__call__.<locals>.<genexpr>3   ó   øé € Ð6©: a�1�[—>�>«:ùó   ƒTF)Úanyr5   r   s   &fr   r   Ústop_any.__call__2   ó4   ø€ ß‹sÔ6¨4¯:ª:Ó6�sŒsÐ6ŠsÐ6ˆsÔ6¨4¯:ª:Ó6Ó6Ð6r   r:   N©	r(   r)   r*   r+   r,   r<   r   r/   r0   r1   s   @r   r$   r$   ,   s   ø‡ € Ù5÷ð ÷7ö 7r   r$   c                   óH   a € ] tR t^6t o RtV 3R lR ltV 3R lR ltRtV tR# )r   z*Stop if all the stop conditions are valid.c                ó$   <€ V ^8„  d   QhRS[ RR/# r4   r6   )r   r   s   "€r   r   Ústop_all.__annotate__9   r8   r   c                ó   € Wn         R # r   r:   r;   s   &*r   r<   Ústop_all.__init__9   r>   r   c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   rP   <   r@   r   c                ó    a€ \         ;QJ d)    V3R  lV P                   4       F  '       d   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3   ó2   <"  € T F  q! S4      x € K  	  R # 5ir   r   rC   s   & €r   rF   Ú$stop_all.__call__.<locals>.<genexpr>=   rH   rI   FT)Úallr5   r   s   &fr   r   Ústop_all.__call__<   rL   r   r:   NrM   r1   s   @r   r   r   6   s   ø‡ € Ù4÷ð ÷7ö 7r   r   c                   ó6   a € ] tR t^@t o RtV 3R lR ltRtV tR# )Ú_stop_neverzNever stop.c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   Ú_stop_never.__annotate__C   s   ø€ ÷ ñ Ð$4ð ¹ñ r   c                ó   € R # )Fr   r   s   &&r   r   Ú_stop_never.__call__C   s   € Ùr   r   N)r(   r)   r*   r+   r,   r   r/   r0   r1   s   @r   rZ   rZ   @   s   ø‡ € Ù÷ö r   rZ   c                   óH   a € ] tR t^Jt o RtV 3R lR ltV 3R lR ltRtV tR# )Ústop_when_event_setz!Stop when the given event is set.c                ó"   <€ V ^8„  d   QhRRRR/# )r	   Úeventzthreading.Eventr   Nr   )r   r   s   "€r   r   Ú stop_when_event_set.__annotate__M   s   ø€ ÷ ñ Ð/ð °Dñ r   c                ó   € Wn         R # r   ©rb   )r   rb   s   &&r   r<   Ústop_when_event_set.__init__M   r>   r   c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   rc   P   s   ø€ ÷ #ñ #Ð$4ð #¹ñ #r   c                ó6   € V P                   P                  4       # r   )rb   Úis_setr   s   &&r   r   Ústop_when_event_set.__call__P   s   € Ø�z‰z× Ñ Ó"Ð"r   re   NrM   r1   s   @r   r`   r`   J   s   ø‡ € Ù+÷ð ÷#ö #r   r`   c                   óH   a € ] tR t^Tt o RtV 3R lR ltV 3R lR ltRtV tR# )Ústop_after_attemptz.Stop when the previous attempt >= max_attempt.c                ó$   <€ V ^8„  d   QhRS[ RR/# )r	   Úmax_attempt_numberr   N)Úint)r   r   s   "€r   r   Ústop_after_attempt.__annotate__W   s   ø€ ÷ 5ñ 5©3ð 5°4ñ 5r   c                ó   € Wn         R # r   ©rn   )r   rn   s   &&r   r<   Ústop_after_attempt.__init__W   s   € Ø"4Ör   c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   rp   Z   s    ø€ ÷ Eñ EÐ$4ð E¹ñ Er   c                ó4   € VP                   V P                  8¬  # r   )Úattempt_numberrn   r   s   &&r   r   Ústop_after_attempt.__call__Z   s   € Ø×)Ñ)¨T×-DÑ-DÑDÐDr   rr   NrM   r1   s   @r   rl   rl   T   s   ø‡ € Ù8÷5ð 5÷Eö Er   rl   c                   óH   a € ] tR t^^t o RtV 3R lR ltV 3R lR ltRtV tR# )Ústop_after_delaya?  
Stop when the time from the first attempt >= limit.

Note: `max_delay` will be exceeded, so when used with a `wait`, the actual total delay will be greater
than `max_delay` by some of the final sleep period before `max_delay` is exceeded.

If you need stricter timing with waits, consider `stop_before_delay` instead.
c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# ©r	   Ú	max_delayr   N©r   Útime_unit_type)r   r   s   "€r   r   Ústop_after_delay.__annotate__h   ó!   ø€ ÷ 6ñ 6¡&×"7Ñ"7ð 6¸Dñ 6r   c                ó<   € \         P                  ! V4      V n        R # r   ©r   Ú
to_secondsr|   ©r   r|   s   &&r   r<   Ústop_after_delay.__init__h   ó   € Ü×*Ò*¨9Ó5ˆŽr   c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   r   k   s    ø€ ÷ Añ AÐ$4ð A¹ñ Ar   c                óf   € VP                   f   \        R4      hVP                   V P                  8¬  # ©Nz4__call__() called but seconds_since_start is not set)Úseconds_since_startÚRuntimeErrorr|   r   s   &&r   r   Ústop_after_delay.__call__k   s/   € Ø×*Ñ*Ò2ÜÐUÓVÐVØ×.Ñ.°$·.±.Ñ@Ð@r   ©r|   NrM   r1   s   @r   ry   ry   ^   s    ø‡ € ñ÷6ð 6÷Aö Ar   ry   c                   óH   a € ] tR t^qt o RtV 3R lR ltV 3R lR ltRtV tR# )Ústop_before_delayzô
Stop right before the next attempt would take place after the time from the first attempt >= limit.

Most useful when you are using with a `wait` function like wait_random_exponential, but need to make
sure that the max_delay is not exceeded.
c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# r{   r}   )r   r   s   "€r   r   Ústop_before_delay.__annotate__y   r€   r   c                ó<   € \         P                  ! V4      V n        R # r   r‚   r„   s   &&r   r<   Ústop_before_delay.__init__y   r†   r   c                ó$   <€ V ^8„  d   QhRRRS[ /# r   r   )r   r   s   "€r   r   r‘   |   s   ø€ ÷ 
ñ 
Ð$4ð 
¹ñ 
r   c                óˆ   € VP                   f   \        R4      hVP                   VP                  ,           V P                  8¬  # r‰   )rŠ   r‹   Úupcoming_sleepr|   r   s   &&r   r   Ústop_before_delay.__call__|   s?   € Ø×*Ñ*Ò2ÜÐUÓVÐVà×+Ñ+¨k×.HÑ.HÕHØ�~‰~ñð	
r   r�   NrM   r1   s   @r   r�   r�   q   s   ø‡ € ñ÷6ð 6÷
ö 
r   r�   )r-   ÚtypingÚtenacityr   ÚTYPE_CHECKINGÚ	threadingr   ÚABCr   ÚUnionÚCallabler   Ú	StopBaseTr$   r   rZ   Ú
stop_neverr`   rl   ry   r�   r   r   r   Ú<module>r¡      sº   ðó  Û å à	××ÐÛå'ô%�—‘ô %ð �L‰L˜ F§O¡OÐ5EÐ4FÈÐ4LÕ$MÐMÕN€	ô7ˆyô 7ô7ˆyô 7ô�)ô ñ ‹]€
ô#˜)ô #ôE˜ô EôA�yô Aô&
˜	ö 
r   