
    #)f%                     0   d dl Z d dlZd dlZd dlmZmZ d dlZd dlZd dlm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ  ed	      Zdd
ZddZddZddZej@                  jC                  d      dd       Z"ddZ#ddZ$ddZ%ddZ&y)    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                  t   g dt         dt        dd ffd} t        j                  t        j                  |       }	 t	        t        j                         t        j                  t        j                  |       t        j                  gk(  sJ y # t        j                  t        j                  |       w xY w)Nsignum_returnc                 (    j                  |        y N)append)r   r   records     R/var/www/html/flask-app/venv/lib/python3.12/site-packages/trio/_tests/test_util.pyhandlerz"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 &B7c                    K   t        d      t        d      } 5  | 5  t        d       d d d        d d d        t        j                  t        j
                  d      5  5  5  	 d d d        d d d        d d d        dfd}t        t        t        j
                  d            5  t	        j                         4 d {   }|j                  |       |j                  |       d d d       d {    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w7 {7 K# 1 d {  7  sw Y   [xY w# 1 sw Y   y xY ww)Nul1ul2ok)matchc                  d   K    5  t                d {    d d d        y 7 # 1 sw Y   y xY wwr   r   )r(   s   r   wait_with_ul1z,test_ConflictDetector.<locals>.wait_with_ul1:   s3      	+(***	+ 	+*	+ 	+s    0$"$	0$-0r   N)
r   printpytestraisesr   BusyResourceErrorr   r   open_nursery
start_soon)r)   r-   nurseryr(   s      @r   test_ConflictDetectorr6   -   s?    
5
!C
5
!C	  	$K	 
u..e	<  	 	
+ 
WU44e<	= .%%' 	. 	.7}-}-	. 	.. .	 	  	 	 	. 	. 	. 	. 	.. .s   E#DDD-E# D2#D&&D(D&0D281E#)ED>E#E)E4E 5E9	E#D	DDE#D#D&&D/	+D22D;7E#>E EE	E	E	EE E#c                     dd l } dd l} | j                  j                  dk(  sJ | j                  j                  dk(  sJ | j
                  j                  j                  dk(  sJ | j                  j                  j                  dk(  sJ | j                  j                  j                  dk(  sJ | j                  j                  j                  j                  dk(  sJ | j
                  j                  j                  j                  dk(  sJ | j                  j                  dk(  sJ | j                  j                  dk(  sJ | j
                  j                   j                  j                  dk(  sJ | j
                  j                   j                  j                  dk(  sJ | j"                  j                  d	k(  sJ | j"                  j$                  j                  d
k(  sJ | j"                  j$                  j                  d
k(  sJ y )Nr   trioztrio.abcztrio.lowlevelztrio.testing	Cancelledsend_allzSendStream.send_allztrio.to_threadrun_sync)r8   trio.testingr9   
__module__r3   abcStreamlowlevelwait_task_rescheduledtesting	trio_test
ParkingLot__init__r:   __name____qualname__
SendStream	to_threadr;   )r8   s    r    test_module_metadata_is_fixed_uprJ   D   s   >>$$..''61188??%%33==..99_LL<<!!,,>> ==##,,77?JJ88??##..*<< >>""k11>>&&+5588''00J>>88''448MMM>>""&666>>""++z99>>""//:===r    c                  ~   K   t               sJ dd} t        j                  j                  |        d {    y 7 w)Nc                      t               rJ y r   )r    r    r   not_main_threadz,test_is_main_thread.<locals>.not_main_thread_   s    !###r    r.   )r   r8   rI   r;   )rN   s    r   test_is_main_threadrO   \   s.     $ ..
!
!/
222s   3=;=z(ignore:.*@coroutine.*:DeprecationWarningc                  h    G d d      t               5  dd} t        j                  t              5 }t	         |               d d d        dt        j                        v sJ dd lt        j                  dk  rfj                  dt        ffd       }t        j                  t              5 }t	         |              d d d        d	t        |j                        v sJ t        j                  t              5 }t	        t                      d d d        d	t        |j                        v sJ t        j                  t              5 }t	        t               d d d        d	t        |j                        v sJ t        j                  t              5 }t	                       d d d        d
t        |j                        v sJ t        j                  t              5 }t	        fd       d d d        d
t        |j                        v sJ t        j                  t              5 }t	        t        g dg       d d d        dt        |j                        v sJ dt        dt        fd}t        j                  t              5 }t	        |dg       d d d        d}|t        |j                        v sJ ~d d d        y # 1 sw Y   ~xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   RxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                       e Zd ZdZy))test_coroutine_or_error.<locals>.DeferredzJust kiddingN)rF   r=   rG   __doc__rM   r    r   DeferredrR   h   s    r    rT   r   c                     K   y wr   rM   rM   r    r   fz"test_coroutine_or_error.<locals>.fm   s	     s   zexpecting an async functionr   )      c               3   D   K    j                  d      E d {    y 7 w)N   )sleep)asyncios   r   generator_based_coroz5test_coroutine_or_error.<locals>.generator_based_corox   s     "==+++s     r\   twistedc                               S r   rM   )rT   s   r   <lambda>z)test_coroutine_or_error.<locals>.<lambda>   s	    xz r    )rZ   r   rW   zappears to be synchronousr   c                   K   d  y wr   rM   )r   s    r   	async_genz*test_coroutine_or_error.<locals>.async_gen   s	     s   	z5expected an async function but got an async generatorr.   )r
   r0   r1   	TypeErrorr   strvaluer\   sysversion_info	coroutiner   r	   lenr"   )rV   excinfor]   rb   msgrT   r\   s        @@r   test_coroutine_or_errorrl   f   s     
1	2 5	 ]]9% 	$qs#	$,GMM0BBBg%,# , , y) ;W"#7#9:;GMM 222]]9% 	D@BC	DC... ]]9% 	B@A	BC...]]9% 	+xz*	+C...]]9% 	312	3C...]]9% 	1sYK0	1 +c'--.@@@	v 	# 	 ]]9% 	/y1#.	/Ec'--((( k5 5
	$ 	$; ;	D 	D
	B 	B	+ 	+	3 	3	1 	1	/ 	/_5 5s   L(KA,L(2K:L(=K:L(K):L(K6&:L( L/:L()L=A
L(L$L(K	L(K	L(K&	!L()K3	.L(6L 	;L(L	L(L	L(L%	!L((L1c                  P   t         dt        dt        fd       } | | t           cxu r| t        t        f   u sJ  J  | d       | t           d      cxk(  rdk(  sJ  J | j                  dk(  sJ | j
                  dk(  sJ | j                  dk(  sJ | j                  t        k(  sJ y )Nargr   c                     | S )Look, a docstring!rM   )rn   s    r   	test_funcz(test_generic_function.<locals>.test_func   s	     
r    *   rp   z(test_generic_function.<locals>.test_funcrq   )r   r   r!   rd   rS   rG   rF   r=   )rq   s    r   test_generic_functionrs      s    q Q   	#=)CH*=====R=NIcN2.4"4444 444!!%OOO,,8+++r    c                      t          G d d             } t        j                  t              5   G d d|       }ddd       y# 1 sw Y   yxY w)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                       e Zd Zy)(test_final_decorator.<locals>.FinalClassNrF   r=   rG   rM   r    r   
FinalClassrv      s    r    rx   c                       e Zd Zy)&test_final_decorator.<locals>.SubClassNrw   rM   r    r   SubClassrz      s    r    r{   N)r   r0   r1   rc   )rx   r{   s     r   test_final_decoratorr|      sJ        
y	! 	z 	  s   AAc                       G d dt               } t        j                  t              5   | dd       ddd       t	        | j                  dd      |       sJ y# 1 sw Y   )xY w)zLThe NoPublicConstructor metaclass prevents calling the constructor directly.c                        e Zd ZdededdfdZy):test_no_public_constructor_metaclass.<locals>.SpecialClassabr   Nc                      |dk(  sJ |dk(  sJ y)z*Check arguments can be passed to __init__.   Q	@NrM   )selfr   r   s      r   rE   zCtest_no_public_constructor_metaclass.<locals>.SpecialClass.__init__   s    6M99r    )rF   r=   rG   r!   floatrE   rM   r    r   SpecialClassr      s    	c 	e 	 	r    r   )	metaclassr   r   N)r   )r   r0   r1   rc   
isinstance_create)r   s    r   $test_no_public_constructor_metaclassr      s^    !4  
y	! Q l**1*5|DDD	 s   
AA%c                     t        j                  d      } d | _        d| j                  _        d| j                  _        t        | j                  t        |              | j                  j                  dk(  sJ | j                  j                  dk(  sJ t        j                  d      }d |_        d|j                  _        d|j                  _        t        j                         |_        d|j                  _        t        j                         |_	        d|j                  _
        d|j                  _        d	 |_        d|j                  _
        d
x|j                  _        |j                  _        t        ddd d d      |_        |j                  |j                  _        t        dt        |             |j                  j                  dk(  sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ |j                  j                  d
k(  sJ |j                  j                  dk(  sJ |j                  j                  d
k(  sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ t        |j                  d      rJ |j                  j                   j                  dk(  sJ |j                  j                   j                  dk(  sJ |j                  j                   j                  dk(  sJ | j                          |j                          |j                          |j                         j!                          y )Nnot_trioc                       y r   rM   rM   r    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>       r    	some_funcztrio._somemodule_implc                       y r   rM   rM   r    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   r   r    _something_elsenot_funclike	only_namec                       y r   rM   rM   r    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   r   r    _private	SomeClassrM   c                      y r   rM   r   s    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   r   r    c                      y r   rM   r   s    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   r   r    )rE   methodztrio.somemoduleonly_has_namerG   r   zSomeClass.method)types
ModuleTyper   rF   rG   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==##'888==%%44$$66<<  J..<<""&===<<$$
22%%88''+<<<s((.99==((H44==**.???==,,0BBBMMOLLNMMOr    r.   )'r#   rf   r   typingr   r   r0   r8   r<   r   r    r   _core._tests.tutilr	   r
   _utilr   r   r   r   r   r   r   r   rB   r   r   r&   r6   rJ   rO   markfilterwarningsrl   rs   r|   r   r   rM   r    r   <module>r      s     
     - 	 	 	 -CL%..>03 FG9 H9x,"E Ar    