
    g$                    \   d dl mZ d dlZd dlZd dlmZmZ er
d dlmZ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 dd
lmZ erd dlmZ  e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 )    )annotationsN)TYPE_CHECKINGTypeVar)AsyncGenerator	Coroutine	Generator)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wait_all_tasks_blocked)r   TreturnNonec                   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   r   c                 j   K    5  t                       d {V  d d d            d S # 1 swxY w Y   d S Nr   )r   s   a/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/trio/_tests/test_util.pywait_with_ul1z,test_ConflictDetector.<locals>.wait_with_ul11   s       	+ 	+(*********	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   (,,r   r   )
r   printpytestraisesr   BusyResourceErrorr
   r	   open_nursery
start_soon)r   r#   nurseryr   s      @r"   test_ConflictDetectorr,   $   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)r.   trio.testingr/   
__module__r)   abcStreamlowlevelwait_task_rescheduledtesting	trio_test
ParkingLot__init__r0   __name____qualname__
SendStream	to_threadr1   )r.   s    r"    test_module_metadata_is_fixed_upr@   ;   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>"/:======    c                 |   K   t                      sJ dd} t          j                            |            d {V  d S )Nr   r   c                 &    t                      rJ d S r!   )r    rA   r"   not_main_threadz,test_is_main_thread.<locals>.not_main_threadV   s    !#######rA   r$   )r   r.   r?   r1   )rE   s    r"   test_is_main_threadrF   S   s\      $ $ $ $ .
!
!/
2
2222222222rA   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     rsj
        d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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)r<   r3   r=   __doc__rD   rA   r"   DeferredrI   _   s        rA   rK   r   r   c                 
   K   d S r!   rD   rD   rA   r"   fz"test_coroutine_or_error.<locals>.fd   s      DrA   zexpecting an async functionr   )      2Generator[Coroutine[None, None, None], None, None]c               3  B   K                         d          E d {V  d S )N   )sleep)asyncios   r"   generator_based_coroz5test_coroutine_or_error.<locals>.generator_based_coroo   s3       #==+++++++++++rA   rT   twistedc                                   S r!   rD   )rK   s   r"   <lambda>z)test_coroutine_or_error.<locals>.<lambda>   s    xxzz rA   )rR   r   rN   zappears to be synchronous_objectAsyncGenerator[None, None]c                  K   d W V  d S r!   rD   )rY   s    r"   	async_genz*test_coroutine_or_error.<locals>.async_gen   s       EEEEEErA   z5expected an async function but got an async generatorr$   )r   rP   )rY   rZ   r   r[   )r   r&   r'   	TypeErrorr   strvaluerT   sysversion_info	coroutiner   len)rM   excinforU   r]   msgrK   rT   s        @@r"   test_coroutine_or_errorrg   ]   s           
1	2	2 8 8	 	 	 	 ]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'-.@.@@@@@	 	 	 	
 ]9%% 	/y1#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/Ec'-(((((( q8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s1  MA M A$	$M'A$	(AMC'M'C+	+M.C+	/4M#E?ME	ME	4MF(M(F,	,M/F,	04M$H<MH	MH	4MI#M#I'	'M*I'	+4MK8MK	MK	8ML"M"L&	&M)L&	*MMMc                 J   t           d	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   r   c                    | S )Look, a docstring!rD   )ri   s    r"   	test_funcz(test_generic_function.<locals>.test_func   s	     
rA   *   rk   z(test_generic_function.<locals>.test_funcrl   )ri   r   r   r   )r   intr_   rJ   r=   r<   r3   )rl   s    r"   test_generic_functionro      s        	#====)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++++++rA   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r<   r3   r=   rD   rA   r"   
FinalClassrr      s        rA   rt   c                      e Zd ZdS )&test_final_decorator.<locals>.SubClassNrs   rD   rA   r"   SubClassrv      s        DrA   rw   N)r   r&   r'   r^   )rt   rw   s     r"   test_final_decoratorrx      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	dZdS )
:test_no_public_constructor_metaclass.<locals>.SpecialClassarn   bfloatr   r   c                &    |dk    sJ |dk    sJ dS )z*Check arguments can be passed to __init__.   333333	@NrD   )selfr|   r}   s      r"   r;   zCtest_no_public_constructor_metaclass.<locals>.SpecialClass.__init__   s     6666999999rA   N)r|   rn   r}   r~   r   r   )r<   r3   r=   r;   rD   rA   r"   SpecialClassr{      s(        	 	 	 	 	 	rA   r   )	metaclassr   r   N)r}   )r   r&   r'   r^   
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!   rD   rD   rA   r"   rX   z,test_fixup_module_metadata.<locals>.<lambda>   s     rA   	some_funcztrio._somemodule_implc                     d S r!   rD   rD   rA   r"   rX   z,test_fixup_module_metadata.<locals>.<lambda>   s    D rA   _something_elsenot_funclike	only_namec                     d S r!   rD   rD   rA   r"   rX   z,test_fixup_module_metadata.<locals>.<lambda>   s    4 rA   _private	SomeClassrD   c                    d S r!   rD   r   s    r"   rX   z,test_fixup_module_metadata.<locals>.<lambda>   s    T rA   c                    d S r!   rD   r   s    r"   rX   z,test_fixup_module_metadata.<locals>.<lambda>   s    4 rA   )r;   methodztrio.somemoduleonly_has_namer=   r   zSomeClass.method)types
ModuleTyper   r<   r=   r   varsSimpleNamespacer   r   r3   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rA   r$   )*
__future__r   ra   r   typingr   r   collections.abcr   r   r   r&   r.   r2   r	   r
    r   _core._tests.tutilr   r   _utilr   r   r   r   r   r   r   r8   r   r   r,   r@   rF   markfilterwarningsrg   ro   rx   r   r   rD   rA   r"   <module>r      s5   " " " " " " 



  ) ) ) ) ) ) ) ) EDDDDDDDDDD   - - - - - - - -                               - , , , , , /......GCLL. . . ..> > > >03 3 3 3 FGG< < < HG<~, , , ,   "E E E E A A A A A ArA   