
    vKgAQ                    ~   S SK Jr  S SKrS SKJr  S SKrS SKJr  SSKJ	r	J
r
Jr  SSKJr  SSKJrJr  SS	KJr  SS
K7  SSKJr  SSKJr  \(       a  S SKJr  S SKJrJr  S"S jrS#S jrS"S jr S$S jr!S$S jr"S"S jr#S"S jr$S"S jr%S"S jr&S"S jr'S"S jr(S"S jr)S"S jr*S"S jr+S"S jr,S"S jr-S"S jr.S"S  jr/S"S! jr0g)%    )annotationsN)TYPE_CHECKING)RaisesGroup   )_coresleepsocket)can_bind_ipv6)StapledStreamaclose_forcefully)SocketListener)*)_assert_raises)_UnboundedByteQueue)Nursery)ReceiveStream
SendStreamc                 D  ^#    / mSU4S jjn SU4S jjn[         R                  " 5        IS h  vN nUR                  U 5        UR                  U5        UR                  U5        S S S 5      IS h  vN   / mSU4S jjn[         R                  " 5        IS h  vN nUR                  U5        UR                  R	                  5         S S S 5      IS h  vN   TS/:X  d   eg  N Ns! , IS h  vN  (       d  f       N= f Ng N.! , IS h  vN  (       d  f       NC= f7f)Nc                    >#    [        S5       H   n [        R                  " 5       I S h  vN   M"     TR                  S5        g  N7f)N
   zbusy bee exhausted)ranger   
checkpointappend)_records    X/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_tests/test_testing.pybusy_bee-test_wait_all_tasks_blocked.<locals>.busy_bee   s8     rA""$$$ *+ %s   'AAAc                 X   >#    [        5       I S h  vN   T R                  S5        g  N7f)Nzquiet at last!wait_all_tasks_blockedr   r   s   r   waiting_for_bee_to_leave=test_wait_all_tasks_blocked.<locals>.waiting_for_bee_to_leave    s$     $&&&&' 	'   *(*c                    >#     [        5       I S h  vN   g  N! [        R                   a    T R                  S5         g f = f7f)Nok)r!   r   	Cancelledr   r"   s   r   cancelled_while_waiting<test_wait_all_tasks_blocked.<locals>.cancelled_while_waiting,   s5     	 (*** 	 MM$	 s0   A  A %AAAAr'   returnNone)r   open_nursery
start_sooncancel_scopecancel)r   r#   nurseryr)   r   s       @r   test_wait_all_tasks_blockedr3      s     F,
( !!##w8$3434 $# F  !!##w23##% $# dV# $### $###s   ,D C$D 4C('D 2C&3'D DD ,D
D DD &D (C?.C1/C?;D D DDDD c                t  ^#    / mSU4S jjn[         R                  " 5        IS h  vN nUR                  U5        [        5       I S h  vN   TS/:X  d   eU R	                  S5        [        5       I S h  vN   TSS/:X  d   eS S S 5      IS h  vN   g  Nn NM N# N! , IS h  vN  (       d  f       g = f7f)Nc                 |   >#    T R                  S5        [        S5      I S h  vN   T R                  S5        g  N7f)Ntt start   tt finishedr   r   r"   s   r   timeout_task?test_wait_all_tasks_blocked_with_timeouts.<locals>.timeout_task;   s.     j!Ahm$ 	s    <:<r6   r   r8   r+   )r   r.   r/   r!   jump)
mock_clockr:   r2   r   s      @r   )test_wait_all_tasks_blocked_with_timeoutsr>   8   s     F%
 !!##w<($&&&*%%%$&&&*m4444 $##& 	' $###sh   $B8BB8B
B+B6B7BB8BB8BBB8B5$B'%B51B8c                   ^#    / mSU4S jjn SU4S jjnSU4S jjnSU4S jjn[         R                  " 5        IS h  vN nUR                  U 5        UR                  U5        UR                  U5        UR                  U5        UR                  U5        S S S 5      IS h  vN   T/ SQ:X  d   eg  Nt N! , IS h  vN  (       d  f       N&= f7f)Nc                    >#    T R                  S5        [        S5      I S h  vN   [        S5      I S h  vN   [        S5      I S h  vN   T R                  S5        g  N< N+ N7f)Nblink startg{Gz?	blink endr9   r"   s   r   blink7test_wait_all_tasks_blocked_with_cushion.<locals>.blinkL   sP     m$DkDkDkk" 	s1    A&A A&A"A&	A$
A&"A&$A&c                 X   >#    [        5       I S h  vN   T R                  S5        g  N7f)Nwait_no_cushion endr    r"   s   r   wait_no_cushionAtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_no_cushionS   s$     $&&&+, 	'r%   c                 Z   >#    [        S5      I S h  vN   T R                  S5        g  N7f)Ng{Gz?wait_small_cushion endr    r"   s   r   wait_small_cushionDtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_small_cushionW   s&     $T***./ 	+   +)+c                 Z   >#    [        S5      I S h  vN   T R                  S5        g  N7f)NgQ?wait_big_cushion endr    r"   s   r   wait_big_cushionBtest_wait_all_tasks_blocked_with_cushion.<locals>.wait_big_cushion[   s&     $T***,- 	+rM   )rA   rF   rB   rJ   rJ   rO   r+   )r   r.   r/   )rC   rG   rK   rP   r2   r   s        @r   (test_wait_all_tasks_blocked_with_cushionrR   I   s     F#-0. !!##w5!?+-.-.+, $#      $###sG   <CB4 CAB8C$B6%C6C8C>C?CCc                D  #    [        5          [        R                  " 5       I S h  vN   S S S 5        [        R                  " [
        5         [        5           S S S 5        S S S 5        [        R                  [        R                  4 HS  n[        U5        [        R                  " [
        5         [        5          U" 5       I S h  vN   S S S 5        S S S 5        MU     [        5          [        R                  " 5       I S h  vN   [        R                  " 5       I S h  vN   S S S 5        g  GN	! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f N! , (       d  f       N= f! , (       d  f       M  = f N Nk! , (       d  f       g = f7fN)	assert_checkpointsr   r   pytestraisesAssertionErrorcheckpoint_if_cancelledcancel_shielded_checkpointprintrecwarnpartial_yields     r   test_assert_checkpointsr_   s   s    		    
 
~	&! " 
' 	%%(( 	m]]>*#%#o%% & +* 
	++---..000 
	' 	! 
	 "! 
'	& & &% +* 	.0 
	s   F D2D/D2"F EEE"AF 2E9=E(E&
	E(E9F +FFF!F"F&	F /D22
E<F 
E	E
E#F &E((
E62E99
F	F FF
FF c                  #    [        5           S S S 5        [        R                  " [        5         [        5          [        R
                  " 5       I S h  vN   S S S 5        S S S 5        [        R                  [        R                  4 HS  n[        U5        [        R                  " [        5         [        5          U" 5       I S h  vN   S S S 5        S S S 5        MU     [        R                  " [        5         [        5          [        R                  " 5       I S h  vN   [        R                  " 5       I S h  vN   S S S 5        S S S 5        g ! , (       d  f       GNJ= f GN! , (       d  f       GN= f! , (       d  f       GN= f N! , (       d  f       N= f! , (       d  f       GM$  = f N Nv! , (       d  f       Nz= f! , (       d  f       g = f7frT   )	assert_no_checkpointsrV   rW   rX   r   r   rY   rZ   r[   r\   s     r   test_assert_no_checkpointsrb      s,    		  
! 
~	&"$""$$$ % 
' 	%%(( 	m]]>*&(#o%% ) +* 
~	&"$//11122444 % 
'	&) 
!	 
 % %$ 
'	& & )( +* 24 %$ 
'	&s   GE"GE9E'E$E'E9"AG2F=FF
	FF&G;GF5F1 F5<F3=F5G		G
E!G$E''
E6	1E99
FGF
FF
F.	(	G1F53F55
G	?G
GGc                 j  ^^#    / mSU4S jjmSU4S jjn SU4S jjn[        5       n[        R                  " 5        IS h  vN nUR                  X5        UR                  X5        U" S5       IS h  vN   [	        5       I S h  vN   S S S 5      IS h  vN   T/ SQ:X  d   eS S S 5      IS h  vN   [        5       nU" S5       IS h  vN    S S S 5      IS h  vN   [
        R                  " [        5         U" S5       IS h  vN    S S S 5      IS h  vN   S S S 5        g  N N N N! , IS h  vN  (       d  f       N= f N! , IS h  vN  (       d  f       N= f N N! , IS h  vN  (       d  f       N= f Nz Nk! , IS h  vN  (       d  f       N= f! , (       d  f       g = f7f)	Nc                >   > [        U 5        TR                  U 5        g rT   )r[   r   )valr   s    r   ttest_Sequencer.<locals>.t   s    c
c    c                  >#    U " S5       IS h  vN   T" S5        S S S 5      IS h  vN   U " S5       IS h  vN   T" S5        S S S 5      IS h  vN   U " S5       IS h  vN   T" S5        S S S 5      IS h  vN   g  No NY! , IS h  vN  (       d  f       Nn= f Nd NN! , IS h  vN  (       d  f       Nc= f NY NC! , IS h  vN  (       d  f       g = f7f)N   f1rj      rl   rm      rl   ro    seqrf   s    r   rl   test_Sequencer.<locals>.f1   sl     q66iL 6q66iL 6q66iL 66	 666666666s   CB C	BCBCBC	B"CB C"B<#C&	C /C:B>;CCB
BBC C"B9(B+)B95C>C CC	CCc                *  >#    U " S5       IS h  vN   T" S5        S S S 5      IS h  vN   U " S5       IS h  vN   T" S5        S S S 5      IS h  vN   g  NF N0! , IS h  vN  (       d  f       NE= f N; N%! , IS h  vN  (       d  f       g = f7f)Nr   f2r   r   rw   r   rq   rr   s    r   rw   test_Sequencer.<locals>.f2   sK     q66iL 6q66iL 66 666666s   BAB	ABABA5B	A9BA7BBA2!A$"A2.B7B9B?B BBr7   )rv   rk   rx   rn   rp   r   )re   objectr,   r-   )rs   	Sequencerr,   r-   )r{   r   r.   r/   r!   rV   rW   RuntimeError)rl   rw   rs   r2   r   rf   s       @@r   test_Sequencerr}      s    F +C!!##w2#2#q66(*** 6PPPP $# +C1vv v	|	$q66 6 
%	$ $ * 666 $### vvv 666 
%	$sC  >F3D(F3/E5D*6E9D0D,D0ED.E&F31E
2F3E&F3E*F3E(F3<F"	F
F"FF"FF"
F3*E,D0.E0E	6D97E	E
F3E#EE#F3(F3*F0E31F=F3F"F"F	FF	F""
F0,F3c                   ^^#    / m[        5       mSUU4S jjn [        R                  " 5        IS h  vN nUR                  U S5        UR                  U S5        T" S5       IS h  vN    S S S 5      IS h  vN   S S S 5      IS h  vN   TSS/:X  d   e[        R
                  " [        5         T" S5       IS h  vN    S S S 5      IS h  vN   S S S 5        g  N Nw Nh! , IS h  vN  (       d  f       N}= f Nt! , IS h  vN  (       d  f       N= f NZ NK! , IS h  vN  (       d  f       N`= f! , (       d  f       g = f7f)	Nc                d  >#    [         R                  " 5        nU S:X  a  UR                  5          T" U 5       IS h  vN    S S S 5      IS h  vN   S S S 5        g  N N! , IS h  vN  (       d  f       N$= f! [         a    TR	                  SU  S35         NHf = f! , (       d  f       g = f7f)Nrj   zseq(z) RuntimeError)r   CancelScoper1   r|   r   )iscoper   rs   s     r   child$test_Sequencer_cancel.<locals>.child   s{      EAv8q66 "6	 !  "666 8QC~678 ! s   B0BA:AA:A A:AA:	B0A:A: A7	&A)'A7	3A:6B7A::BBBB
B-)B0rj   r   r   zseq(1) RuntimeErrorzseq(2) RuntimeErrorrm   )r   intr,   r-   )r{   r   r.   r/   rV   rW   r|   )r   r2   r   rs   s     @@r   test_Sequencer_cancelr      s     F
+C8 8 !!##w5!$5!$q66 6 $# +-BCCCC 
|	$q66 6 
%	$ $ 666 $### 666 
%	$s   /E	CE	1D (C )D ,C$.D 9C":D >E		C>
(E	2D8?D D8DD8DD8
E	 D "D $C;	*C-+C;	7D >E	 DD	DE	D8D8D5	$D'%D5	1D88
EE	c                   #    [         R                  " [        5         [        [        5          S S S 5        S S S 5        [         R                  " [
        5         [        [        5         SS-     S S S 5        S S S 5        [        [        5         [        e! , (       d  f       Nl= f! , (       d  f       Nu= f! , (       d  f       NN= f! , (       d  f       NW= f! , (       d  f       g = f7f)Nfoorj   )rV   rW   rX   r   r|   	TypeErrorrq   rh   r   test__assert_raisesr      s     	~	&L) * 
' 
y	!L)AI * 
" 
	% *) 
'	&
 *) 
"	! 
&	%ss   C*B&BB&"C*C)B7/C7C*C
B#	B&&
B40C*7
C	C
CC*
C'#C*c                 
  ^^#    [        5       mTR                  S5        TR                  S5        TR                  S5      S:X  d   eTR                  S5      S:X  d   eTR                  S5        TR                  5       S:X  d   e[        R                  " [
        R                  5         TR                  S5        S S S 5        [        R                  " [
        R                  5         TR                  5         S S S 5        [        R                  " [        5         TR                  S5        S S S 5        TR                  S	5        [        5          TR                  S5      I S h  vN S	:X  d   e S S S 5        TR                  S
5        TR                  S5        [        5          TR                  S5      I S h  vN S:X  d   e S S S 5        [        5          TR                  5       I S h  vN S:X  d   e S S S 5        SU4S jjn SU4S jjn[
        R                  " 5        IS h  vN nUR                  US5        UR                  U S5        S S S 5      IS h  vN   [        [
        R                  5         [
        R                  " 5        IS h  vN nUR                  US5        UR                  US5        S S S 5      IS h  vN   S S S 5        TR                  5         [        R                  " [
        R                  5         TR                  S5        S S S 5        TR                  S5      S:X  d   eTR                  5       S:X  d   eTR                  S5      I S h  vN S:X  d   eTR                  5       I S h  vN S:X  d   eTR                  5         [        5       mSU4S jjn[
        R                  " 5        IS h  vN nUR                  US5        UR                  U5        S S S 5      IS h  vN   g ! , (       d  f       GNM= f! , (       d  f       GN"= f! , (       d  f       GN = f GN! , (       d  f       GN= f GN! , (       d  f       GN= f GNv! , (       d  f       GNt= f GNN GN! , IS h  vN  (       d  f       GN3= f GN GN! , IS h  vN  (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f GNx GN] GN N! , IS h  vN  (       d  f       g = f7f)N   123   456rj      1r   s   23456   789string   abc   defs   ghi   ds   efghic                X   >#    [        5       I S h  vN   TR                  U 5        g  N7frT   )r!   put)dataubqs    r   putter'test__UnboundeByteQueue.<locals>.putter  s"     $&&& 	'r%   c                   >#    [        5          TR                  5       I S h  vN U :X  d   e S S S 5        g  N! , (       d  f       g = f7frT   )rU   get)expectr   s    r   getter'test__UnboundeByteQueue.<locals>.getter  s5     !?f,,, "!" "!s%   A
97
9	A
9
AA
   xyzs   asdf   ---rh   c                 V   >#    [        5       I S h  vN   T R                  5         g  N7frT   )r!   close)ubq2s   r   closer'test__UnboundeByteQueue.<locals>.closer=  s      $&&&

 	's   )')r   bytesr,   r-   )r   r   r,   r-   r+   )r   r   
get_nowaitrV   rW   r   
WouldBlockr   rU   r   r.   r/   r   BusyResourceErrorr   ClosedResourceError)r   r   r2   r   r   r   s       @@r   test__UnboundeByteQueuer      s^    

CGGFOGGFO>>!$$$>>")))GGFO>>v%%%	u''	(r 
)	u''	( 
) 
y	! 
" GGFO		WWR[ F*** 
GGFOGGFO		WWQZ4''' 
		WWY(*** 
- !!##w66*66* $#
 
U,,	-%%''7vw/vw/ (' 
. IIK	u00	1 
2 >>"$$$>>s"""###?c!!! IIK  D !!##w63'6" $##s 
)	(	(	( 
"	!
 ! 
	
   
	  
	 $### (''' 
.	- 
2	1
  $###s  B&T*P<,T(P9"TP&-#TP;%P8&
P;14T%Q:Q;
QTQ%,Q"-
Q%81T)Q7*T-%Q=TQ:T;R9RR9%R>R9	R
R9<T
SA	T%S&TS AT	S#
T$S(1T<S&=T
PT
P#T&
P50T8P;;
Q
TQ
QT"Q%%
Q4/	T:T=RRRTR9R9R6	$R'%R6	1R99
ST
S	T T#T&T(S?.S1/S?;Tc                   ^^^^^	#    [        5       mSU4S jjmT" S5      I S h  vN   TR                  S5      S:X  d   eTR                  5       S:X  d   e[        5          TR                  5       I S h  vN   S S S 5        [        R
                  " [        R                  5         TR                  5         S S S 5        [        R
                  " [        R                  5         TR                  S5        S S S 5        T" S5      I S h  vN   [        5          TR                  5       I S h  vN S:X  d   e S S S 5        Sm	SUU	4S	 jjn [        R                  " 5        IS h  vN nUR                  U 5        UR                  U 5        S S S 5      IS h  vN   T	S:X  d   e[        5          TR                  5       I S h  vN   S S S 5        TR                  5       I S h  vN S
:X  d   eTR                  5       I S h  vN S:X  d   e[        R
                  " [        R                  5         T" S5      I S h  vN   S S S 5        TR                  b   eTR                  b   eTR                  b   e/ mSUU4S jjnSU4S jjnSU4S jjn[        UUU5      mTR                  UL d   eTR                  UL d   eTR                  UL d   eTR!                  S5      I S h  vN   TR                  5       I S h  vN   [#        T5      I S h  vN   TR%                  5         T/ SQ:X  d   eg  GN GN! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNi= f GNa GNA! , (       d  f       GN?= f GN GN! , IS h  vN  (       d  f       GN= f GN! , (       d  f       GN= f GN GN GN! , (       d  f       GN= f N N N7f)Nc                   >#    [        5          TR                  U 5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7frT   )rU   send_all)r   msss    r   do_send_all*test_MemorySendStream.<locals>.do_send_allI  s1     !,,t$$$ "!$ "!s$   A313	A3
AAr   rj   r   s   23r   r   r   c                 r   >#     T " S5      I S h  vN   g  N! [         R                   a    TS-  m g f = f7f)N   xxxrj   )r   r   )r   resource_busy_counts   r   do_send_all_count_resourcebusy=test_MemorySendStream.<locals>.do_send_all_count_resourcebusyc  s8     	%f%%%&& 	%1$	%s(   7  7 4747r   rh   r   c                 \   >#    T R                  5       S:X  d   eTR                  S5        g 7f)Nr   send_all_hook)get_data_nowaitr   )mss2r   s   r   r   ,test_MemorySendStream.<locals>.send_all_hook  s)     ##%///o&s   ),c                 0   >#    T R                  S5        g 7f)N"wait_send_all_might_not_block_hookr   r"   s   r   r   Atest_MemorySendStream.<locals>.wait_send_all_might_not_block_hook  s     :;   c                 (   > T R                  S5        g )N
close_hookr   r"   s   r   r   )test_MemorySendStream.<locals>.close_hook  s    l#rh   r   )r   r   r   r   r   r+   )MemorySendStreamr   rU   wait_send_all_might_not_blockrV   rW   r   r   get_datar.   r/   acloser   r   r   r   r   r   r   )
r   r2   r   r   r   r   r   r   r   r   s
        @@@@@r   test_MemorySendStreamr   F  s    

C% f
q!T))) E)))		//111 
 
u''	( 
)	u''	(B 
) f
		\\^#v--- 
 % % !!##w9:9: $# !###		jjl 
 6)))3&&&	u00	1&!!! 
2
 $$$11999>>!!!F' '
<$ *D ...226XXXX??j(((
--


,
,
...
D
!!!JJL    [ 
 	2 
	 
)	(	(	( # 
	  $### 	 
	  ! 
2	1@  .!s  OL-;O!L35L06L3:,O&M7,O#M5OM)	OM/+M,,
M/7,O#N$O'#N
ONO,N% N"N%O N7!O>N:?.O-O 9N=:O >B$O"O#O:O;OO O0L33
M=O
MO
M&!	O,M//
M>9	OONNNO"N%%
N4/	O:O=O  
O
	OOOc                 T  ^^^#    [        5       mSU4S jjn TR                  S5        U " S5      I S h  vN S:X  d   eU " S5      I S h  vN S:X  d   eTR                  S5        U " S 5      I S h  vN S:X  d   e[        [        R                  5         [        R
                  " 5        IS h  vN nUR                  U S5        UR                  U S5        S S S 5      IS h  vN   S S S 5        TR                  b   eTR                  S5        TR                  5         TR                  5         U " S5      I S h  vN S:X  d   eU " S5      I S h  vN S:X  d   eU " S5      I S h  vN S:X  d   e[        R                  " [        R                  5         TR                  S	5        S S S 5        SU4S
 jjn/ mSU4S jjn[        X#5      mTR                  UL d   eTR                  UL d   eTR                  S5        TR                  S5      I S h  vN S:X  d   eTR                  S5      I S h  vN S:X  d   eTR                  S5      I S h  vN S:X  d   eTR                  S5        S Tl        TR                  S5      I S h  vN S:X  d   eTR                  S5        [        5          TR                  5       I S h  vN   S S S 5        TS/:X  d   e[        R                  " [        R                  5         TR                  S5      I S h  vN   S S S 5        g  GN GN GN GNz GNI! , IS h  vN  (       d  f       GN_= f! , (       d  f       GNi= f GN! GN GN! , (       d  f       GN= f GNc GNG GN+ N N! , (       d  f       N= f N! , (       d  f       g = f7f)Nc                   >#    [        5          TR                  U 5      I S h  vN sS S S 5        $  N! , (       d  f       g = f7frT   )rU   receive_some)	max_bytesmrss    r   do_receive_some1test_MemoryReceiveStream.<locals>.do_receive_some  s0     !)))44 "!4 "!s$   A313
A3
AAr   rj      ar   s   bcr   rh   r   c                 0   >#    T R                  S5        g 7f)Nr   )put_data)mrs2s   r   receive_some_hook3test_MemoryReceiveStream.<locals>.receive_some_hook  s     fr   c                 (   > T R                  S5        g )Nclosedr   r"   s   r   r   ,test_MemoryReceiveStream.<locals>.close_hook  s    hrh   s   yyys   yyyxxxr   s   zzzs   lost on closer   )r   z
int | Noner,   r   r+   )MemoryReceiveStreamr   r   r   r   r.   r/   r   put_eofrV   rW   r   r   r   rU   r   )r   r2   r   r   r   r   r   s       @@@r   test_MemoryReceiveStreamr     s    

C5 LL ##t+++ $$---LL &&&000	U,,	-%%''733 (' 
.
   (((LLKKMKKM $$... $$+++ $$+++	u00	1V 
2 F  0=D!!%6666??j(((MM&""2&&)333""2&&&000""2&&&000MM&!D""2&&&000MM"#		kkm 
hZ	u00	1### 
2	1c $$& (''' 
.	- %$$	1	1  '&& ' 	 
	
 	$ 
2	1ss  /N(L N(
L#&N(1L&2#N(M
/L)0M
3%L/M
#L,$M
(AN(;M<N(MN('M"(.N(M%(A,N(M7N(3M:4N(M=6N(	N 
%N(/NNN5N(=NNN
N(#N(&N()M
,M
/M	5L86M	M


M	N(N("N(%
M4/	N(:N(=N( N(N
NN(N
N%!N(c                   #    [        5       n U R                  5         [        R                  " [        R
                  5         U R                  S5      I S h  vN S:X  d   e S S S 5        U R                  5         [        R                  " [        R
                  5         U R                  S5        S S S 5        [        5       nUR                  S5        UR                  5         [        R                  " [        R
                  5         UR                  S5      I S h  vN   S S S 5        g  N! , (       d  f       N= f! , (       d  f       N= f N1! , (       d  f       g = f7f)Nr   rh   r   r   )r   r   rV   rW   r   r   r   r   )r   r   s     r   test_MemoryRecvStream_closingr     s     

CIIK	u00	1%%b))S000 
2 IIK	u00	1V 
2  DMM&JJL	u00	1### 
2	1 * 
2	1
 
2	1 	$ 
2	1sr   ?E!D,D*
D,"<E!D=0AE!EEE!	E!*D,,
D:6E!=
EE!E
EE!c                   #    [        5       n [        5       n[        X5        U R                  S5      I S h  vN   [        X5        UR	                  S5      I S h  vN S:X  d   eU R                  S5      I S h  vN   [        XSS9(       d   eUR	                  S5      I S h  vN S:X  d   e[        XSS9(       d   e[        XSS9(       d   e[        XSS9(       a   eUR	                  S5      I S h  vN S:X  d   eU R                  5         [        X5        UR	                  S5      I S h  vN S:X  d   eg  GN N N N NN N7f)	Nr   r   r   rj   )r      4s   56rh   )r   r   memory_stream_pumpr   r   r   )r   r   s     r   test_memory_stream_pumpr     s$    

C

C s 
,,v
s !!"%%///
,,v
c!444!!"%%---c!444c!444!#a888!!"%%...IIKs !!"%%,,, %% & &sj   4ED;#ED>E9E :)E#E$AE5E69E/E0E>E EEEEc                   ^#    [        5       u  n mU R                  c   eU R                  b   eU R                  c   eTR                  b   eU R                  S5      I S h  vN   TR                  S5      I S h  vN S:X  d   eSU4S jjn[        R                  " 5        IS h  vN nUR                  US5        [        5       I S h  vN   U R                  S5      I S h  vN   S S S 5      IS h  vN   [        R                  " 5        IS h  vN nUR                  US5        [        5       I S h  vN   U R                  5       I S h  vN   S S S 5      IS h  vN   [        5       u  n m[        R                  " 5        IS h  vN nUR                  US5        [        5       I S h  vN   U R                  5         S S S 5      IS h  vN   [        5       u  n mU R                  nS U l        U R                  S5      I S h  vN   SS jnSU4S jjn[        R                  " 5        IS h  vN nUR                  XB5        UR                  U5        S S S 5      IS h  vN   X0l        U R                  S	5      I S h  vN   TR                  S5      I S h  vN S
:X  d   eg  GNE GN/ GN GN GN GN! , IS h  vN  (       d  f       GN= f GN GN GN GN! , IS h  vN  (       d  f       GN= f GNr GNQ GN4! , IS h  vN  (       d  f       GNJ= f GN N N! , IS h  vN  (       d  f       N= f N N7f)Nr   r   c                P   >#    TR                  S5      I S h  vN U :X  d   eg  N7fNr   r   )expectedrs    r   receiver1test_memory_stream_one_way_pair.<locals>.receiver  s#     ^^B''8333'   &$&r   rh   r   c                h   #    [        5       I S h  vN   U R                  R                  5         g  N7frT   )r!   r0   r1   )r2   s    r   cancel_after_idle:test_memory_stream_one_way_pair.<locals>.cancel_after_idle0  s(     $&&&##% 	's   20 2c                    >#    [         R                  " [        R                  5         T R	                  S5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7fr   )rV   rW   r   r(   r   )r   s   r   check_for_cancel9test_memory_stream_one_way_pair.<locals>.check_for_cancel4  s?     ]]5??+ ..$$$ ,+ % ,+s,   %AAAA	AA
AAr   s   456789)r   r   r,   r-   )r2   r   r,   r-   r+   )memory_stream_one_way_pairr   r   r   r   r   r   r   r.   r/   r!   r   r   )sr   r2   oldr   r   r   s         @r   test_memory_stream_one_way_pairr     sx    %'DAq??&&&//777<<###&&&
**V
##v---4 !!##w8V,$&&&jj    $# !!##w8S)$&&&hhj $#
 &'DAq!!##w8S)$&&&		 $#
 &'DAq
//CAO
**V
&% !!##w,6+, $# O
**V
##y000_ # $&  $### $& $### $& $###  $###
 #s  AM!J&"M:J);+M&J,'M* J8
J/J8#J2$J8(M3J54MKM K5K6KKKMK*MK:	M L,K=-LML 8ML*M0L!1M4#L%M"L##ML?MMM)M,M/J82J85M8K>K?K	MKKMK7%K(&K72	M=L ML	L
L	M!M#M%L<+L.,L<8MMc                   ^^#    [        5       u  mmTR                  S5      I S h  vN   TR                  S5      I S h  vN   TR                  S5      I S h  vN S:X  d   eTR                  S5      I S h  vN S:X  d   eTR                  5       I S h  vN   TR                  S5      I S h  vN S:X  d   eSU4S jjn SU4S jjn[        R
                  " 5        IS h  vN nUR                  U5        UR                  U 5        S S S 5      IS h  vN   g  N N N N N Nu NC N! , IS h  vN  (       d  f       g = f7f)Nr   r   r   rh   c                 l   >#    [        5       I S h  vN   T R                  S5      I S h  vN   g  N N7f)Nr   )r!   r   )bs   r   sender'test_memory_stream_pair.<locals>.senderM  s,     $&&&jj    	' s   404244c                 P   >#    T R                  S5      I S h  vN S:X  d   eg  N7f)Nr   r   r   )as   r   r   )test_memory_stream_pair.<locals>.receiverQ  s#     ^^B''6111'r   r+   )memory_stream_pairr   r   send_eofr   r.   r/   )r   r   r2   r   r   s      @@r   test_memory_stream_pairr   C  s     DAq
**V

**V
##v---##v---
**,##s***!2 !!##w8$6" $## ### $###s   "EDED EDE7D 8ED"E.D$/3E"D&#E&#D*	ED(EEE E"E$E&E(E*E0D31E=Ec                 x   #    SS jn [        U S 5      I S h  vN   SS jn[        US 5      I S h  vN   g  N N7f)Nc                    #    [        5       $ 7frT   )r   rq   rh   r   one_way_stream_makerDtest_memory_streams_with_generic_tests.<locals>.one_way_stream_makerZ  s     )++   c                    #    [        5       $ 7frT   )r   rq   rh   r   half_closeable_stream_makerKtest_memory_streams_with_generic_tests.<locals>.half_closeable_stream_maker_  s      "##r  )r,   z,tuple[MemorySendStream, MemoryReceiveStream])r,   zqtuple[StapledStream[MemorySendStream, MemoryReceiveStream], StapledStream[MemorySendStream, MemoryReceiveStream]])check_one_way_streamcheck_half_closeable_stream)r  r  s     r   &test_memory_streams_with_generic_testsr  Y  s@     , 3T
:::$ &&A4
HHH ; Is   :6:8::c                 t   #    SS jn [        X 5      I S h  vN   SS jn[        X5      I S h  vN   g  N N7f)Nc                    #    [        5       $ 7frT   )lockstep_stream_one_way_pairrq   rh   r   r  Ftest_lockstep_streams_with_generic_tests.<locals>.one_way_stream_makeri  s     +--r  c                    #    [        5       $ 7frT   )lockstep_stream_pairrq   rh   r   two_way_stream_makerFtest_lockstep_streams_with_generic_tests.<locals>.two_way_stream_makern  s      $%%r  )r,   z tuple[SendStream, ReceiveStream])r,   zYtuple[StapledStream[SendStream, ReceiveStream], StapledStream[SendStream, ReceiveStream]])r	  check_two_way_stream)r  r  s     r   (test_lockstep_streams_with_generic_testsr  h  s=     . 3
JJJ& 3
JJJ K Ks   848688c                   #    S	S jn [         R                  " 5       nUR                  S5      I S h  vN   UR                  S5        U " [	        U5      5      I S h  vN   [         R                  " 5       nUR                  S5      I S h  vN   UR                  S5        U " [	        U5      5      I S h  vN   [
        (       ae  [         R                  " [         R                  S9nUR                  S5      I S h  vN   UR                  S5        U " [	        U5      5      I S h  vN   [        [         S5      (       a  [         R                  " [         R                  S9n[        R                  " 5        nU S3nUR                  U5      I S h  vN   UR                  S5        U " [	        U5      5      I S h  vN   S S S 5        g g  GN GNo GND GN N N NH N ! , (       d  f       g = f7f)
Nc           	     8  #    U  IS h  vN   [        U 5      I S h  vN nU IS h  vN   U R                  5       I S h  vN nU IS h  vN   UR                  S5      I S h  vN   UR                  S5      I S h  vN S:X  d   eS S S 5      IS h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   g  N N N N~ Nu N^ NG N3! , IS h  vN  (       d  f       NH= f N?! , IS h  vN  (       d  f       NT= f NK! , IS h  vN  (       d  f       g = f7f)N   xrj   )open_stream_to_socket_listeneracceptr   r   )listenerclient_streamserver_streams      r   check2test_open_stream_to_socket_listener.<locals>.checkx  s     8"@"JJM$}&.oo&7 7(='00666!.!;!;A!>>$FFF )= %} 88J$ 7(6> )=== %}}} 888s  DB8DD B:
D B<D C$B> 
C$
C 
C$C#C
$C<C
=
CC$CC$D "C"#D 'D2C>3D:D <D >C$ C$CCC$CCCC$"D $C;	*C-+C;	7D >D DD	DD)z	127.0.0.1r   r   )z0.0.0.0r   )family)z::r   AF_UNIXz/sock)r  r   r,   r-   )tsocketr	   bindlistenr   r
   AF_INET6hasattrr!  tempfileTemporaryDirectory)r  socktmpdirpaths       r   #test_open_stream_to_socket_listenerr,  w  sr    G >>D
))$
%%%KKO
t$
%%% >>D
))N
###KKO
t$
%%% }~~W%5%56ii	"""BN4()))w	""~~W__5 ((*fXU#D))D/!!KKOt,---	 +* #% &% $% 	#) "-	 +*s   /G,G)G,G
-G,	G
)G,3G4AG,9G:)G,#G$AG,4GG)G8G9G=G,
G,G,G,G,G,GG
G)%G,c                           SS jn [         R                  " [        SS9   [        U 5      " [	        5       [	        SS9S9  S S S 5        g ! , (       d  f       g = f)Nc                   #    g 7frT   rq   r=   autojump_clocks     r   busy_kitchen$test_trio_test.<locals>.busy_kitchen  s
      s   z"^too many clocks spoil the broth!$)matchr   )autojump_thresholdr/  )r=   rz   r0  rz   r,   r-   )rV   rW   
ValueError	trio_test	MockClock)r1  s    r   test_trio_testr8    s[      
	 
z)M	N, {$:	
 
O	N	Ns    A
Ar+   )r=   r7  r,   r-   )r]   zpytest.WarningsRecorderr,   r-   )1
__future__r   r'  typingr   rV   trio.testingr    r   r   r	   r"  _core._tests.tutilr
   _highlevel_genericr   r   _highlevel_socketr   testingtesting._check_streamsr   testing._memory_streamsr   trior   trio.abcr   r   r3   r>   rR   r_   rb   r}   r   r   r   r   r   r   r   r   r   r  r  r,  r8  rq   rh   r   <module>rE     s    "     $ . . . A .  3 92@5"$T145<#L<
E#PYx:$z$(-051p#,IK'.T
rh   