
    i/                       S SK Jr  S SKrS SKrS SKJrJr  \(       a
  S SKJrJ	r	J
r
  S SKrS SKrS SKJrJr  SSKJr  SSKJr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  \R@                  S:  a  S SK!J"r"J#r#  \(       a  S SKJr  \" S5      r$SS jr%SS jr&SS jr'\RP                  RS                  S5      SS j5       r*SS jr+SS jr,SS jr-SS jr.g)    )annotationsN)TYPE_CHECKINGTypeVar)AsyncGenerator	Coroutine	Generator)MatcherRaisesGroup   )_core)!create_asyncio_future_in_new_loop'ignore_coroutine_never_awaited_warnings)ConflictDetectorMultipleExceptionErrorNoPublicConstructorcoroutine_or_errorfinalfixup_module_metadatais_main_thread!raise_single_exception_from_groupwait_all_tasks_blocked      )BaseExceptionGroupExceptionGroup)r   Tc                   ^#    [        S5      m[        S5      n T   U    [        S5        S S S 5        S S S 5        [        R                  " [        R
                  SS9   T   T    S S S 5        S S S 5        S S S 5        SU4S jjn[        [        [        R
                  S5      5         [        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   S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f N Nd! , IS h  vN  (       d  f       Ny= f! , (       d  f       g = f7f)Nul1ul2okmatchc                 n   >#    T    [        5       I S h  vN   S S S 5        g  N! , (       d  f       g = f7fNr   )r    s   BC:\des-py\RoboSAPF\venv\Lib\site-packages\trio/_tests/test_util.pywait_with_ul1,test_ConflictDetector.<locals>.wait_with_ul15   s&     (*** S* Ss    5$"$	5$
25returnNone)
r   printpytestraisesr   BusyResourceErrorr
   r	   open_nursery
start_soon)r!   r(   nurseryr    s      @r'   test_ConflictDetectorr4   (   s     
5
!C
5
!C	$K  
 
u..e	<   
=
+ 
WU44e<	=%%''7}-}- (' 
>	= S 
  S 
=	< (''' 
>	=s   FDDD+FE!D6$D%&D6.E63F)E6EE6#E*E65E6E6:	F
D	D
D"F%
D3/D66
E	 E
EFE6E6E3	"E%#E3	/E66
F Fc                 (   SS K n SS Kn U R                  R                  S:X  d   eU R                  R                  S:X  d   eU R
                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  S:X  d   eU R                  R                  R                  R                  S:X  d   eU R
                  R                  R                  R                  S:X  d   eU R                  R                  S:X  d   eU R                  R                  S:X  d   eU R
                  R                   R                  R                  S:X  d   eU R
                  R                   R                  R                  S:X  d   eU R"                  R                  S	:X  d   eU R"                  R$                  R                  S
:X  d   eU R"                  R$                  R                  S
:X  d   eg )Nr   trioztrio.abcztrio.lowlevelztrio.testing	Cancelledsend_allzSendStream.send_allztrio.to_threadrun_sync)r6   trio.testingr7   
__module__r1   abcStreamlowlevelwait_task_rescheduledtesting	trio_test
ParkingLot__init__r8   __name____qualname__
SendStream	to_threadr9   )r6   s    r'    test_module_metadata_is_fixed_uprH   ?   s   >>$$...''611188??%%333==..99_LLL<<!!,,>>> ==##,,77?JJJ88??##..*<<< >>""k111>>&&+55588''00J>>>88''448MMMM>>""&6666>>""++z999>>""//:===    c                    #    [        5       (       d   eSS jn [        R                  R                  U 5      I S h  vN   g  N7f)Nc                 &    [        5       (       a   eg r&   )r    rI   r'   not_main_thread,test_is_main_thread.<locals>.not_main_threadZ   s    !#####rI   r*   )r   r6   rG   r9   )rM   s    r'   test_is_main_threadrO   W   s3     $ ..
!
!/
222s   9AAAz(ignore:.*@coroutine.*:DeprecationWarningc                   ^^  " S S5      m[        5          SS jn [        R                  " [        5       n[	        U " 5       5        S S S 5        S[        WR                  5      ;   d   eSS Km[        R                  S:  ag  TR                    SU4S jj5       n[        R                  " [        5       n[	        U" 5       5        S S S 5        S[        UR                  5      ;   d   e[        R                  " [        5       n[	        [        5       5        S S S 5        S[        UR                  5      ;   d   e[        R                  " [        5       n[	        [        5        S S S 5        S[        UR                  5      ;   d   e[        R                  " [        5       n[	        T" 5       5        S S S 5        S	[        UR                  5      ;   d   e[        R                  " [        5       n[	        U4S
 j5        S S S 5        S	[        UR                  5      ;   d   e[        R                  " [        5       n[	        [        / SQ/5        S S S 5        S[        UR                  5      ;   d   e    SS jn[        R                  " [        5       n[	        US/5        S S S 5        SnU[        UR                  5      ;   d   eAS S S 5        g ! , (       d  f       GN= f! , (       d  f       GN&= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNp= f! , (       d  f       GN5= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                      \ rS rSrSrSrg))test_coroutine_or_error.<locals>.Deferredc   zJust kiddingrL   N)rD   r;   rE   __firstlineno____doc____static_attributes__rL   rI   r'   DeferredrR   c   s    rI   rW   c                    #    g 7fr&   rL   rL   rI   r'   f"test_coroutine_or_error.<locals>.fh   s     s   zexpecting an async functionr   r   c               3  D   >#    T R                  S5       S h  vN   g  N7f)N   )sleep)asyncios   r'   generator_based_coro5test_coroutine_or_error.<locals>.generator_based_coros   s      #==+++s     r^   twistedc                    > T " 5       $ r&   rL   )rW   s   r'   <lambda>)test_coroutine_or_error.<locals>.<lambda>   s    xzrI   )r\   r   r   zappears to be synchronousc                  #    S 7v   g 7fr&   rL   )_s    r'   	async_gen*test_coroutine_or_error.<locals>.async_gen   s
      s   	z5expected an async function but got an async generatorr*   )r+   z2Generator[Coroutine[None, None, None], None, None])rf   objectr+   zAsyncGenerator[None, None])r   r.   r/   	TypeErrorr   strvaluer^   sysversion_info	coroutiner   len)rY   excinfor_   rg   msgrW   r^   s        @@r'   test_coroutine_or_errorrs   a   su     
1	2	 ]]9%qs# &,GMM0BBBBg%,B, ,
 y)W"#7#9: *GMM 2222]]9%@BC &C.... ]]9%@A &C....]]9%xz* &C....]]9%12 &C....]]9%sYK0 & +c'--.@@@@		'	
 ]]9%y1#. &Ec'--(((( q 
3	2
 &% *) &%
 &% &% &% &% &%e 
3	2s    M"KA.M"6K&=M"K8=M"L
%=M""L3=M"0L. =M"=M AM"M%&M"
K#	M"&
K5	0M"8
L	M"

L	M"
L+	&M".
L=	8M" 
M	
M"
M	M""
M0c                     [          " S S5      5       n [        R                  " [        5          " S SU 5      nSSS5        g! , (       d  f       g= f)zTest that subclassing a @final-annotated class is not allowed.

This checks both runtime results, and verifies that type checkers detect
the error statically through the type-ignore comment.
c                      \ rS rSrSrg)(test_final_decorator.<locals>.FinalClass   rL   NrD   r;   rE   rT   rV   rL   rI   r'   
FinalClassrv      s    rI   ry   c                      \ rS rSrSrg)&test_final_decorator.<locals>.SubClass   rL   Nrx   rL   rI   r'   SubClassr{      s    rI   r}   N)r   r.   r/   rj   )ry   r}   s     r'   test_final_decoratorr~      sA        
y	!	z 	 
"	!	!s   A
Ac                      " S S[         S9n [        R                  " [        5         U " SS5        SSS5        [	        U R                  SSS9U 5      (       d   eg! , (       d  f       N0= f)zLThe NoPublicConstructor metaclass prevents calling the constructor directly.c                      \ rS rSrSS jrSrg):test_no_public_constructor_metaclass.<locals>.SpecialClass   c                $    US:X  d   eUS:X  d   eg)z*Check arguments can be passed to __init__.   333333	@NrL   )selfabs      r'   rC   Ctest_no_public_constructor_metaclass.<locals>.SpecialClass.__init__   s    6M699rI   rL   N)r   intr   floatr+   r,   )rD   r;   rE   rT   rC   rV   rL   rI   r'   SpecialClassr      s    	rI   r   )	metaclassr   r   N)r   )r   r.   r/   rj   
isinstance_create)r   s    r'   $test_no_public_constructor_metaclassr      sZ    !4  
y	!Q 
" l**1*5|DDDD	 
"	!s   
A
A*c                 6   [         R                  " S5      n S U l        SU R                  l        SU R                  l        [        U R                  [        U 5      5        U R                  R                  S:X  d   eU R                  R                  S:X  d   e[         R                  " S5      nS Ul        SUR                  l        SUR                  l        [         R                  " 5       Ul        SUR                  l        [         R                  " 5       Ul	        SUR                  l
        SUR                  l        S	 Ul        SUR                  l
        S
=UR                  l        UR                  l        [        SSS S S.5      Ul        UR                  UR                  l        [        S[        U5      5        UR                  R                  S:X  d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eUR                  R                  S
:X  d   eUR                  R                  S:X  d   eUR                  R                  S
:X  d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   e[        UR                  S5      (       a   eUR                  R                   R                  S:X  d   eUR                  R                   R                  S:X  d   eUR                  R                   R                  S:X  d   eU R                  5         UR                  5         UR                  5         UR                  5       R!                  5         g )Nnot_trioc                     g r&   rL   rL   rI   r'   rc   ,test_fixup_module_metadata.<locals>.<lambda>   s    rI   	some_funcztrio._somemodule_implc                     g r&   rL   rL   rI   r'   rc   r      s    DrI   _something_elsenot_funclike	only_namec                     g r&   rL   rL   rI   r'   rc   r      s    4rI   _private	SomeClassrL   c                    g r&   rL   r   s    r'   rc   r      s    TrI   c                    g r&   rL   r   s    r'   rc   r      s    4rI   )rC   methodztrio.somemoduleonly_has_namerE   r   zSomeClass.method)types
ModuleTyper   rD   rE   r   varsSimpleNamespacer   r   r;   r   typer   	recursionhasattrr   )non_trio_modulemods     r'   test_fixup_module_metadatar      s   &&z2O ,O)4O&-8O*/22D4IJ$$--<<<$$11[@@@ 

2
3C CM.CMM!2CMM ,,.C .C --/C#:C !,C  CL5CLL8BBCLLCLL5 
)'	
CM "mmCMM+T#Y7==!![000==##'8888==%%444$$666<<  J...<<""&====<<$$
222%%888''+<<<<s((.9999==((H444==**.????==,,0BBBBMMOLLNMMOrI   c                 >	  #    [        S5      n [        S5      n[        S5      nXl        X l        [
        R                  R                  SS9n[        R                  " [         SS9 n[        [        SU /5      5        S S S 5        WR                  R                  U:X  d   eUR                  R                  U:X  d   e[        SU /5      n[        S	5      n[        S
5      nXel        Xul        [        [        [         SS9SS9 n[        [        SU/5      5        S S S 5        WR                  R                  U:X  d   eUR                  R                  U:X  d   e[        R                  " [         SS9 n[        [        SX3U /5      5        S S S 5        UR                  R                  U:X  d   eUR                  R                  U:X  d   e[        S[        S5      [        S5      /5      n	[        R                  " [         SS9 n[        U	5        S S S 5        UR                  R                  U	L d   eUR                  R                  b   e[        S[        S5      [        S5      [#        S5      /5      n
[        R                  " ["        SS9 n[        U
5        S S S 5        UR                  R                  U
L d   eUR                  R                  b   e[        S[        S5      [        S5      [%        S5      /5      n[        R                  " [$        5       n[        U5        S S S 5        UR                  R&                  S:X  d   eUR                  R                  UL d   eUR                  R                  b   e[        R                  " [
        R                  SS9 n[        [        SU[
        R                  R                  SS9/5      5        S S S 5        UR                  UL d   eUR                  R                  b   eUR                  R                  b   eg ! , (       d  f       GN= f! , (       d  f       GN = f! , (       d  f       GN= f! , (       d  f       GNN= f! , (       d  f       GN= f! , (       d  f       GN[= f! , (       d  f       N= f7f)Nfoocausecontextdeadline)sourcer#    zinner egzinner eg causezinner eg contextz^foo$z
^inner eg$barzy^Attempted to unwrap exceptiongroup with multiple non-cancelled exceptions. This is often caused by a bug in the caller.$zpreserve error msgz^preserve error msg$r   z^cancelled due to deadline$explicit)
ValueErrorSyntaxErrorrj   	__cause____context__r6   r7   r   r.   r/   r   r   rl   r
   r	   r   r   KeyboardInterrupt
SystemExitcode)excr   r   	cancelledrq   inner_eginner_causeinner_contexteginfoegeg_kisystemexit_kis               r'   &test_raise_single_exception_from_groupr     s     U
C E	"GMO&&j&9I	z	/7).cU*CD 
0==""e+++==$$/// j3%0H./K01M$(	WZw7|	LPV).hZ*HI 
M<<!![000<<##}444	z	/7)rI##>?	
 
0 ==""e+++==$$/// 
Z.
50AB	CB	 K
 
)"-	

 ==""b(((==$$,,, 
uu23	
E 
%
 
)%0	
 ==""e+++==$$,,, '
uuqM	
M 
z	"g)-8 
# =="""==""m333==$$,,, 
t~~-K	LPW)Y 6 6j 6 IJ	
 
M ==I%%%==""***==$$,,,[ 
0	/ 
M	L
 
0	/
 
"
 
& 
#	" 
M	Ls   A$R&P =BRP2AR2Q
A9RQA?RQ(B RQ:&A;R!3RAR 
P/*R2
Q<R
QR
Q% R(
Q72R:
R	R
RRr*   )/
__future__r   rm   r   typingr   r   collections.abcr   r   r   r.   r6   r:   r	   r
   r   r   _core._tests.tutilr   r   _utilr   r   r   r   r   r   r   r   r@   r   rn   exceptiongroupr   r   r   r4   rH   rO   markfilterwarningsrs   r~   r   r   r   rL   rI   r'   <module>r      s    " 
  )DD   - 	 	 	 -gA.CL..>03 FG< H<~"E AHW-rI   