
     f%                     <   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         !                    d          dd            Z"ddZ#ddZ$ddZ%ddZ&dS )    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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     X/var/www/api.educacionweb.es/myenv/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          t          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_ul1:   s       	+ 	+(*********	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   (,,r   N)
r   printpytestraisesr   BusyResourceErrorr   r   open_nursery
start_soon)r)   r-   nurseryr(   s      @r   test_ConflictDetectorr6   -   s     
5
!
!C
5
!
!C	   	 	$KKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               
u.e	<	<	<   	 	                	 	 	 	 	 	 	 	 	 	 	 	 	 	 	              
+ + + + + + 
WU4e<<	=	= . .%'' 	. 	. 	. 	. 	. 	. 	.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?E4+EE4
E 	 E4#E 	$E44E8;E8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)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}   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   r8   rI   r;   )rN   s    r   test_is_main_threadrO   \   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)rF   r=   rG   __doc__rM   r    r   DeferredrR   h   s        r    rT   r   c                  
   K   d S r   rM   rM   r    r   fz"test_coroutine_or_error.<locals>.fm   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_corox   s1      "==+++++++++++r    r\   twistedc                                    S r   rM   )rT   s   r   <lambda>z)test_coroutine_or_error.<locals>.<lambda>   s    xxzz r    )rZ   r   rW   zappears to be synchronousr   c                   K   d W V  d S r   rM   )r   s    r   	async_genz*test_coroutine_or_error.<locals>.async_gen   s      EEEEEEr    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	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!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*=======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rF   r=   rG   rM   r    r   
FinalClassrv      s        r    rx   c                       e Zd ZdS )&test_final_decorator.<locals>.SubClassNrw   rM   r    r   SubClassrz      s        Dr    r{   N)r   r0   r1   rc   )rx   r{   s     r   test_final_decoratorr|      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	@NrM   )selfr   r   s      r   rE   zCtest_no_public_constructor_metaclass.<locals>.SpecialClass.__init__   s     6666999999r    )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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   rM   rM   r    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   s     r    	some_funcztrio._somemodule_implc                      d S r   rM   rM   r    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   s    D r    _something_elsenot_funclike	only_namec                      d S r   rM   rM   r    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   s    4 r    _private	SomeClassrM   c                     d S r   rM   r   s    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   s    T r    c                     d S r   rM   r   s    r   r`   z,test_fixup_module_metadata.<locals>.<lambda>   s    4 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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#   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	    



            - - - - - - - -             	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 - , , , , ,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    