
    vKgz%                     B   S SK r S SKrS SKrS SK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  \" S	5      rSS
 jrSS jrSS jrSS jr\R@                  RC                  S5      SS j5       r"SS jr#SS jr$SS jr%SS jr&g)    N)AnyTypeVar)MatcherRaisesGroup   )_core)!create_asyncio_future_in_new_loop'ignore_coroutine_never_awaited_warnings)ConflictDetectorNoPublicConstructorcoroutine_or_errorfinalfixup_module_metadatageneric_functionis_main_threadsignal_raisewait_all_tasks_blockedTc                    ^ / mS[         S[        SS 4U4S jjn [        R                  " [        R                  U 5      n [	        [        R                  5        [        R                  " [        R                  U5        T[        R                  /:X  d   eg ! [        R                  " [        R                  U5        f = f)Nsignum_returnc                 (   > TR                  U 5        g N)append)r   r   records     U/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_tests/test_util.pyhandler"test_signal_raise.<locals>.handler"   s    f    )intobjectsignalSIGFPEr   )r   oldr   s     @r   test_signal_raiser'      s    F  4  --w
/C*V]]#fmmS)fmm_$$$ 	fmmS)s    B 'B=c                    ^#    [        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r   r   )r)   s   r   wait_with_ul1,test_ConflictDetector.<locals>.wait_with_ul1:   s&     (*** S* Ss    5$"$	5$
25r   N)
r   printpytestraisesr   BusyResourceErrorr   r   open_nursery
start_soon)r*   r.   nurseryr)   s      @r   test_ConflictDetectorr8   -   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)r:   trio.testingr;   
__module__r5   abcStreamlowlevelwait_task_rescheduledtesting	trio_test
ParkingLot__init__r<   __name____qualname__
SendStream	to_threadr=   )r:   s    r    test_module_metadata_is_fixed_uprL   D   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>>""//:===r!   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    r!   r   not_main_thread,test_is_main_thread.<locals>.not_main_thread_   s    !#####r!   r0   )r   r:   rK   r=   )rP   s    r   test_is_main_threadrR   \   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:  ak  TR                  S[        4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[        4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Nx= f! , (       d  f       GN== 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>.Deferredh   zJust kiddingrO   N)rH   r?   rI   __firstlineno____doc____static_attributes__rO   r!   r   DeferredrU   h   s    r!   rZ   r   c                     #    g 7fr   rO   rO   r!   r   f"test_coroutine_or_error.<locals>.fm   s     s   zexpecting an async functionr   )      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_corox   s     "==+++s     rc   twistedc                     > T " 5       $ r   rO   )rZ   s   r   <lambda>)test_coroutine_or_error.<locals>.<lambda>   s    xzr!   )ra   r   r^   zappears to be synchronousr   c                   #    S 7v   g 7fr   rO   )r   s    r   	async_gen*test_coroutine_or_error.<locals>.async_gen   s     s   	z5expected an async function but got an async generatorr0   )r
   r2   r3   	TypeErrorr   strvaluerc   sysversion_info	coroutiner   r	   lenr#   )r\   excinford   rk   msgrZ   rc   s        @@r   test_coroutine_or_errorrv   f   sr     
1	2	 ]]9%qs# &,GMM0BBBBg%,# , , 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'--.@@@@	v 	# 	 ]]9%y1#. &Ec'--(((( k 
3	2
 &% *) &%
 &% &% &% &% &%_ 
3	2s    M.K A2M.:K2=M.L=M.L)=M.&L(7=M.4L:=M.MAM.#M1&M. 
K/	*M.2
L	<M.
L	M.
L%	 M.(
L7	2M.:
M		M.
M	M.
M+	'M..
M<c                  `   [         S[        S[        4S j5       n X [           s=L a  U [        [        4   L d   e   eU " S5      U [           " S5      s=:X  a  S:X  d   e   eU R                  S:X  d   eU R
                  S:X  d   eU R                  S:X  d   eU R                  [        :X  d   eg )Nargr   c                     U $ )Look, a docstring!rO   )rx   s    r   	test_func(test_generic_function.<locals>.test_func   s	     
r!   *   rz   z(test_generic_function.<locals>.test_funcr{   )r   r   r"   rn   rX   rI   rH   r?   )r{   s    r   test_generic_functionr~      s    q Q   #=)CH*======R=IcN2.4"44444 4444!!%OOOO,,,8+++r!   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   rO   NrH   r?   rI   rW   rY   rO   r!   r   
FinalClassr      s    r!   r   c                       \ rS rSrSrg)&test_final_decorator.<locals>.SubClass   rO   Nr   rO   r!   r   SubClassr      s    r!   r   N)r   r2   r3   rm   )r   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\SS4S jrSrg):test_no_public_constructor_metaclass.<locals>.SpecialClass   abr   Nc                 $    US:X  d   eUS:X  d   eg)z*Check arguments can be passed to __init__.   Q	@NrO   )selfr   r   s      r   rG   Ctest_no_public_constructor_metaclass.<locals>.SpecialClass.__init__   s    6M699r!   rO   )rH   r?   rI   rW   r"   floatrG   rY   rO   r!   r   SpecialClassr      s    	c 	e 	 	r!   r   )	metaclassr   r   N)r   )r   r2   r3   rm   
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   rO   rO   r!   r   rh   ,test_fixup_module_metadata.<locals>.<lambda>   s    r!   	some_funcztrio._somemodule_implc                      g r   rO   rO   r!   r   rh   r      s    Dr!   _something_elsenot_funclike	only_namec                      g r   rO   rO   r!   r   rh   r      s    4r!   _private	SomeClassrO   c                     g r   rO   r   s    r   rh   r      s    Tr!   c                     g r   rO   r   s    r   rh   r      s    4r!   )rG   methodztrio.somemoduleonly_has_namerI   r   zSomeClass.method)types
ModuleTyper   rH   rI   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r!   r0   )'r$   rp   r   typingr   r   r2   r:   r>   r   r    r   _core._tests.tutilr	   r
   _utilr   r   r   r   r   r   r   r   rD   r   r   r'   r8   rL   rR   markfilterwarningsrv   r~   r   r   r   rO   r!   r   <module>r      s     
     - 	 	 	 -CL%..>03 FG9 H9x,"E Ar!   