
    vKg!                     2   S SK r S SKJrJrJrJr  S SKrS SKrS SKrSSK	J
r
  SSKJr  SSKJrJrJrJrJrJrJrJr  SSKJr  \" S5      rS	\/ \\   4   S
\S\4S jrSr\SS j5       r\SS j5       rSS jr " S S\5      r\R@                  RC                  S\\/5      S\SS4S j5       r"\SS j5       r#\SS j5       r$\SS j5       r%SS jr&S\
RN                  SS4S jr(S\
RN                  SS4S jr)\R@                  RU                  SS9SS j5       r+g)     N)	AwaitableCallableProtocolTypeVar   )_core)slow)TooSlowError
fail_afterfail_atmove_on_after
move_on_atsleepsleep_foreversleep_until)assert_checkpointsTfexpected_durreturnc                   #    [         R                  " 5       n[        R                  " U 5      I S h  vN n[         R                  " 5       U-
  n[	        XA-  5        SXA-  s=::  a  S:  d   e   eUR                  5       $  NM7f)NgG?g      ?)timeperf_counteroutcomeacaptureprintunwrap)r   r   startresultdurs        Y/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_tests/test_timeouts.pycheck_takes_aboutr"      ss     E##A&&F




%C	#
( #,333333==?1 's   /BA?ABg      ?c                    #    SS jn [        U [        5      I S h  vN   SS jn[        U[        5      I S h  vN   [        5          [        S5      I S h  vN   S S S 5        [	        [
        R                  " 5       5         [        R                  " [
        R                  5         [        S5      I S h  vN   S S S 5        S S S 5        g  N N Nx! , (       d  f       N|= f N,! , (       d  f       N0= f! , (       d  f       g = f7f)Nc                  j   #    [        [        R                  " 5       [        -   5      I S h  vN   g  N7fN)r   r   current_timeTARGET     r!   sleep_1test_sleep.<locals>.sleep_1>   s!     %,,.7888s   )313c                  >   #    [        [        5      I S h  vN   g  N7fr%   )r   r'   r(   r)   r!   sleep_2test_sleep.<locals>.sleep_2C   s     Fms   r   r   N)
r"   r'   r   r   r   r   r&   pytestraises	Cancelled)r*   r-   s     r!   
test_sleepr3   <   s     9 GV
,,, GV
,,,		Ah 
 
E&&(	)]]5??+(NN , 
*	) -
 - 	 
	
  ,+ 
*	)s   DCDCDCCC&D%C5&C$5C"6C$:C5
DDC
CD"C$$
C2	.C55
D?Dc                  J   #    SS jn [        U [        5      I S h  vN   g  N7f)Nc                     #    [        [        5         [        S5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7fNd   )r   r'   r   r(   r)   r!   sleep_3#test_move_on_after.<locals>.sleep_3R   s-     6"* #" #"#   A1/1	A1
?Ar/   r"   r'   )r8   s    r!   test_move_on_afterr<   P   s      GV
,,,   #!#c                    ^#    [         R                  R                  5       mSU4S jjn [         R                  " 5        IS h  vN nUR	                  U 5        [
        R                  " [        5         [         R                  " 5       I S h  vN   S S S 5        S S S 5      IS h  vN   g  Nf N! , (       d  f       N#= f N! , IS h  vN  (       d  f       g = f7f)Nc                     >#    [         R                  R                  5       I S h  vN   [         R                  R                  T [        R
                  " S 5      5        g  N97fr%   )triolowlevel
checkpoint
rescheduler   Valuetasks   r!   	wake_task1test_cannot_wake_sleep_forever.<locals>.wake_task]   s>     mm&&(((  w}}T':; 	)s   "A!A:A!r/   )	r@   rA   current_taskopen_nursery
start_soonr0   r1   RuntimeErrorr   )rG   nurseryrF   s     @r!   test_cannot_wake_sleep_foreverrN   Y   s     ==%%'D<   ""g9%]]<($$&&& ) #"" ' )( #"""sr   A CB*C,C3B.B,B.CC$B?%C,B..
B<	8C?CCC
CCc                   >    \ rS rSrS\S\S\R                  4S jrSr	g)TimeoutScopeg   secondsshieldr   c                    g r%   r(   )selfrR   rS   s      r!   __call__TimeoutScope.__call__h   s    Sr)   r(   N)
__name__
__module____qualname____firstlineno__floatboolr@   CancelScoperV   __static_attributes__r(   r)   r!   rP   rP   g   s    PP$P4;K;KPr)   rP   scopec                 ^  #    [         R                  " 5        o" [        SS9 nUR                  5          [        R
                  R                  5       I S h  vN   SUl
        [        R                  " [        R                  5         [        R
                  R                  5       I S h  vN   S S S 5        S S S 5        S S S 5        g  No! [        R                   a    [        R                  " S5         Nf = f NO! , (       d  f       NS= f! , (       d  f       N\= f! , (       d  f       g = f7f)NTrS   zshield didn't workF)r   r^   r'   cancelr@   rA   rB   r2   r0   failrS   r1   )r`   outerinners      r!   test_context_shields_from_outerrg   k   s     				uVD'AU	.--**,,, ]]4>>*--**,,, + (B		 -~~ 	.KK,-	. - +* (B'A		s   D-DD!CCC+D"C:(C8
)C:-D5D=	D-C*C52D4C55D8C::
DD
D	D
D*&D-c                  J   #    SS jn [        U [        5      I S h  vN   g  N7f)Nc                    #    [         R                  " 5        n [        [        SS9   U R	                  5         [        5       I S h  vN   S S S 5        S S S 5        g  N! , (       d  f       N= f! , (       d  f       g = f7fNTrb   )r   r^   r   r'   rc   r   re   s    r!   rF   :test_move_on_after_moves_on_even_if_shielded.<locals>.taskz   sS      E=+MLLN  /!!	 ,N   "	 ,N+M  sE   A?A.AAA
A.	A?A
A+	'A..
A<8A?r/   r;   rE   s    r!   ,test_move_on_after_moves_on_even_if_shieldedrm   x   s     " D&
)))r=   c                  J   #    SS jn [        U [        5      I S h  vN   g  N7f)Nc                  j  #    [         R                  " [        5         [        R                  " 5        n [        [        SS9   U R                  5         [        5       I S h  vN   S S S 5        S S S 5        S S S 5        g  N! , (       d  f       N!= f! , (       d  f       N*= f! , (       d  f       g = f7frj   )	r0   r1   r
   r   r^   r   r'   rc   r   rk   s    r!   rF   4test_fail_after_fails_even_if_shielded.<locals>.task   sr     ]]<(%*;*;*=
I
 LLN  /!!I
*=(( "I
 I
*=*=((s]   B3B"BB  A>
!B %B-B"5	B3>B  
B
B
B	B""
B0,B3r/   r;   rE   s    r!   &test_fail_after_fails_even_if_shieldedrq      s     " D&
)))r=   c                  l  #    SS jn [         R                  " [        5         [        U [        5      I S h  vN   S S S 5        [        [        R                  " 5       S-   5         [        S5      I S h  vN   S S S 5        SS jn[         R                  " [        5         [        U[        5      I S h  vN   S S S 5        [        S5         [        S5      I S h  vN   S S S 5        g  N! , (       d  f       N= f N! , (       d  f       N= f NZ! , (       d  f       N^= f NF! , (       d  f       g = f7f)Nc                     #    [        [        R                  " 5       [        -   5         [	        S5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7fr6   )r   r   r&   r'   r   r(   r)   r!   sleep_4test_fail.<locals>.sleep_4   s;     U'')F23* 43 43s+   &AAAA	AA
AAr7   r   c                     #    [        [        5         [        S5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7fr6   )r   r'   r   r(   r)   r!   sleep_5test_fail.<locals>.sleep_5   s-     *    r:   r/   )
r0   r1   r
   r"   r'   r   r   r&   r   r   )rt   rw   s     r!   	test_failry      s      
|	$000 
% 
##%+	,Ah 
- 
|	$000 
% 
CAh 
 	1 
%	$ 	 
-	, 	1 
%	$ 	 
s    D4C*C(C*)D4$C=3C;4C=8'D4D3D4D8D4D#D!D#	D4(C**
C84D4;C==
DD4D
DD4!D##
D1-D4c                    #    [        S5      n [        S4[        U 4[        U 44 H7  u  p[        R                  " [
        SS9   U" U5      I S h  vN   S S S 5        M9     [        S4[        U 4[        U 4[        S4[        U 4[        U 44 H9  u  p2[        R                  " [
        SS9   U" U5          S S S 5        S S S 5        M;     g  Nz! , (       d  f       M  = f! , (       d  f       N/= f! , (       d  f       Mr  = f7f)Nnanz8^(deadline|`seconds`) must (not )*be (non-negative|NaN)$match)
r\   r   r   r0   r1   
ValueErrorr   r   r   r   )r{   funvalcms       r!   test_timeouts_raise_value_errorr      s      ,C 
		c
 ]]L
 c(NN	
 
 
R	S	#			S ]]L
 C 	
 
 	
 
$ 	
 
sa   ADCC
CAD*	C/3C5C/=D
C
C	D
C,(C//
C>	9D
mock_clockc                   #    [        S5      nUR                  S:X  d   eU R                  S5        [        R                  " 5       nU nUR
                  b   eUR                  US-   :X  d   eUR                  S:X  d   eUS-   Ul        UR                  US-   :X  d   eUR                  S:X  d   eSUl        UR                  US-   :X  d   eUR                  S:X  d   e S S S 5        [        S5      nUR                  SL d   eSUl        UR                  SL d   eU R                  S5        [        R                  " 5       nU nUR                  US-   :X  d   eXL d   e S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f7f)N         FT)r   relative_deadlinejumpr   r&   is_relativedeadlinerS   )r   rcsr   css       r!   test_timeout_deadline_on_entryr      sv    

C  A%%%OOA E	~~%%% {{eai'''##q(((ai{{eai'''##q((( {{eai'''##q((( 
 
C::CJ::OOA E	{{eai'''yy 
- 
, 
s8   AFBE)A$FE: 	F)
E73F:
FFc                   #    [        S5      nU R                  S5        [        R                  " 5       nSn[        R
                  " [        US9   UR                  US-   :X  d   e S S S 5        U R                  S5        [        R
                  " [        US9   UR                  US-   :X  d   e S S S 5        [        R
                  " [        US9   SUl        S S S 5        UR                  S:X  d   eUR                  (       a   e[        S5      nSn[        R                  " [        US9   UR                  (       d   e S S S 5        [        R                  " [        US9   SUl        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       g = f7f)	Nr   r   zC^unentered relative cancel scope does not have an absolute deadliner}            zG^unentered non-relative cancel scope does not have a relative deadline$)r   r   r   r&   r0   warnsDeprecationWarningr   r   r   r1   rL   r   )r   r   r   	match_strs       r!   test_invalid_access_unenteredr      sL    	q	BOOA EUI	(		:{{eai''' 
;OOA	(		:{{eai''' 
; 
(		: 
; ;;!~~	AB 	R  
|9	5#### 
6	|9	5  
6	5) 
;	: 
;	: 
;	: 
6	5	5	5s   AGE2&2GF/!GFAG+F& !G!F7)	G2
F<G
FG
F#G&
F40G7
GGznot implemented)reasonc                     #    [        S5      n U R                  (       d   e[        S5      nUR                  (       d   eg 7f)Nr   )r   r   r   r   )
my_fail_atmy_fail_afters     r!    test_fail_access_before_enteringr     s5     JqMM****s   >A r/   ),r   typingr   r   r   r   r   r0   r@    r   _core._tests.tutilr	   	_timeoutsr
   r   r   r   r   r   r   r   testingr   r   r\   r"   r'   r3   r<   rN   rP   markparametrizerg   rm   rq   ry   r   	MockClockr   r   xfailr   r(   r)   r!   <module>r      su    9 9     %	 	 	 )CLxIaL(89  ST > 
  & - -'Q8 Q =*"=>	- 	-$ 	- ?	- * * * *  ,BU__  D!EOO ! !< +,+ -+r)   