
    Eg%                     ,   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	 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                            d          dd            ZddZ ddZ!ddZ"ddZ#dS )    N)AnyTypeVar   )_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Treturnc                  X   g dt           dt          dd ffd} t          j        t          j        |           }	 t	          t          j                   t          j        t          j        |           n$# t          j        t          j        |           w xY wt          j        gk    sJ d S )Nsignum_r   c                 2                         |            d S N)append)r   r   records     J/var/www/sysmax/venv/lib/python3.11/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]###fmS))))fmS))))fm_$$$$$$s   A3 3!Bc                    K   t          d          t          d          } 5  | 5  t          d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        t          j        d          5  5  5  	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   dfd}t          j        t          j        d          5  t	          j                    4 d {V }|                    |           |                    |           d d d           d {V  n# 1 d {V swxY w Y   d d d            d S # 1 swxY w Y   d S )Nul1ul2ok)matchr   c                  j   K    5  t                       d {V  d d d            d S # 1 swxY w Y   d S r   r   )r&   s   r   wait_with_ul1z,test_ConflictDetector.<locals>.wait_with_ul19   s       	+ 	+(*********	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   (,,r   N)r	   printpytestraisesr   BusyResourceErroropen_nursery
start_soon)r'   r+   nurseryr&   s      @r   test_ConflictDetectorr4   ,   s     
5
!
!C
5
!
!C	   	 	$KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
u.e	<	<	<   	 	                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	              
+ + + + + + 
u.e	<	<	< . .%'' 	. 	. 	. 	. 	. 	. 	.7}---}---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.. . . . . . . . . . . . . . . . . .s   AAAA	A
A	AA!ACB0BB0BB0 B!B0$C0B4	4C7B4	8CCC8E-+E=E-
E	E-E	E--E14E1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 d S )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   C   s}   KKK>$....'611118?%3333=.9_LLLL<!,>>>> =#,7?JJJJ8?#.*<<<< >"k1111>&+55558'0J>>>>8'48MMMMM>"&66666>"+z9999>"/:======r   c                  |   K   t                      sJ dd} t          j                            |            d {V  d S )Nr   c                  &    t                      rJ d S r   )r    r   r   not_main_threadz,test_is_main_thread.<locals>.not_main_thread^   s    !#######r   r,   )r   r6   rG   r9   )rL   s    r   test_is_main_threadrM   [   s\      $ $ $ $ .
!
!/
2
2222222222r   z(ignore:.*@coroutine.*:DeprecationWarningc                      G d d          t                      5  dd} t          j        t                    5 }t	           |                        d d d            n# 1 swxY w Y   dt          |j                  v sJ dd lt          j	        dk     rzj
        dt          ffd            }t          j        t                    5 }t	           |                       d d d            n# 1 swxY w Y   d	t          |j                  v sJ t          j        t                    5 }t	          t                                 d d d            n# 1 swxY w Y   d	t          |j                  v sJ t          j        t                    5 }t	          t                     d d d            n# 1 swxY w Y   d	t          |j                  v sJ t          j        t                    5 }t	                                  d d d            n# 1 swxY w Y   d
t          |j                  v sJ t          j        t                    5 }t	          fd           d d d            n# 1 swxY w Y   d
t          |j                  v sJ t          j        t                    5 }t	          t          g dg           d d d            n# 1 swxY w Y   dt          |j                  v sJ dt          dt          fd}t          j        t                    5 }t	          |dg           d d d            n# 1 swxY w Y   d}|t          |j                  v sJ ~d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdZdS ))test_coroutine_or_error.<locals>.DeferredzJust kiddingN)rD   r;   rE   __doc__rK   r   r   DeferredrP   g   s        r   rR   r   c                  
   K   d S r   rK   rK   r   r   fz"test_coroutine_or_error.<locals>.fl   s      Dr   zexpecting an async functionr   )      c               3   B   K                         d          E d {V  d S )N   )sleep)asyncios   r   generator_based_coroz5test_coroutine_or_error.<locals>.generator_based_corow   s1      "==+++++++++++r   rZ   twistedc                                    S r   rK   )rR   s   r   <lambda>z)test_coroutine_or_error.<locals>.<lambda>   s    xxzz r   )rX   r   rU   zappears to be synchronousr   c                   K   d W V  d S r   rK   )r   s    r   	async_genz*test_coroutine_or_error.<locals>.async_gen   s      EEEEEEr   z5expected an async function but got an async generatorr,   )r   r.   r/   	TypeErrorr   strvaluerZ   sysversion_info	coroutiner   r   lenr    )rT   excinfor[   r`   msgrR   rZ   s        @@r   test_coroutine_or_errorrj   e   s           
1	2	2 5 5	 	 	 	 ]9%% 	$qqss###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$,GM0B0BBBBBg%%,# , , , , , , y)) ;W"#7#7#9#9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;GM 2 22222]9%% 	D@BBCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	DC...... ]9%% 	B@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	BC......]9%% 	+xxzz***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+C......]9%% 	31111222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3C......]9%% 	1sYYYK000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 +c'-.@.@@@@@	v 	# 	 	 	 	 ]9%% 	/y1#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/Ec'-(((((( k5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s2  M*A M* A$	$M*'A$	(A"M*
C."M*.C2	2M*5C2	64M**EM*E	M*E	4M*F/#M*/F3	3M*6F3	74M*+HM*H	M*H	4M*I*M**I.	.M*1I.	24M*&K?M*K	M*K	AM*L7+M*7L;	;M*>L;	?M**M.1M.c                  f   t           dt          dt          fd            } | | t                   cxu r| t          t          f         u sn J  | d           | t                   d          cxk    rdk    sn J | j        dk    sJ | j        dk    sJ | j        dk    sJ | j        t          k    sJ d S )Nargr   c                     | S )Look, a docstring!rK   )rl   s    r   	test_funcz(test_generic_function.<locals>.test_func   s	     
r   *   rn   z(test_generic_function.<locals>.test_funcro   )r   r   r   rb   rQ   rE   rD   r;   )ro   s    r   test_generic_functionrq      s    q Q     	#====)CH*=======9R==NIcN2..4444"444444 44444!%OOOOO,,,,8++++++r   c                      t            G d d                      } t          j        t                    5   G d d|           }ddd           dS # 1 swxY w Y   dS )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dS )(test_final_decorator.<locals>.FinalClassNrD   r;   rE   rK   r   r   
FinalClassrt      s        r   rv   c                       e Zd ZdS )&test_final_decorator.<locals>.SubClassNru   rK   r   r   SubClassrx      s        Dr   ry   N)r   r.   r/   ra   )rv   ry   s     r   test_final_decoratorrz      s            U 
y	!	!  	 	 	 	 	z 	 	 	                 s   AAAc                       G d dt                     } t          j        t                    5   | dd           ddd           n# 1 swxY w Y   t	          |                     dd          |           sJ dS )zLThe NoPublicConstructor metaclass prevents calling the constructor directly.c                   "    e Zd ZdededdfdZdS ):test_no_public_constructor_metaclass.<locals>.SpecialClassabr   Nc                 &    |dk    sJ |dk    sJ dS )z*Check arguments can be passed to __init__.   Q	@NrK   )selfr~   r   s      r   rC   zCtest_no_public_constructor_metaclass.<locals>.SpecialClass.__init__   s     6666999999r   )rD   r;   rE   r   floatrC   rK   r   r   SpecialClassr}      s=        	c 	e 	 	 	 	 	 	 	r   r   )	metaclassr   r   N)r   )r
   r.   r/   ra   
isinstance_create)r   s    r   $test_no_public_constructor_metaclassr      s        !4     
y	!	!  Q               l**1*55|DDDDDDDs   A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 |                                  |                                 |                                 |                                                                 d S )Nnot_trioc                      d S r   rK   rK   r   r   r^   z,test_fixup_module_metadata.<locals>.<lambda>   s     r   	some_funcztrio._somemodule_implc                      d S r   rK   rK   r   r   r^   z,test_fixup_module_metadata.<locals>.<lambda>   s    D r   _something_elsenot_funclike	only_namec                      d S r   rK   rK   r   r   r^   z,test_fixup_module_metadata.<locals>.<lambda>   s    4 r   _private	SomeClassrK   c                     d S r   rK   r   s    r   r^   z,test_fixup_module_metadata.<locals>.<lambda>   s    T r   c                     d S r   rK   r   s    r   r^   z,test_fixup_module_metadata.<locals>.<lambda>   s    4 r   )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22O ,O)4O&-8O*/2D4I4IJJJ$-<<<<$1[@@@@ 
2
3
3C LCM.CM!2CM ,..C .C -//C#:C !,C  <CL5CL8BBCLCL5 
))''	
 	
 CM "mCM+T#YY777=![0000=#'88888=%4444$6666< J....<"&=====<$
2222%8888'+<<<<<s(.99999=(H4444=*.?????=,0BBBBBMMOOOLLNNNMMOOr   r,   )$r!   rd   r   typingr   r   r.   r6    r   _core._tests.tutilr   r   _utilr	   r
   r   r   r   r   r   r   r@   r   r   r$   r4   rH   rM   markfilterwarningsrj   rq   rz   r   r   rK   r   r   <module>r      s    



                        	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 - , , , , ,GCLL% % % %. . . ..> > > >03 3 3 3 FGG9 9 9 HG9x, , , ,   "E E E E A A A A A Ar   