
    Ng8                    H   U d dl mZ d dlZd dlmZmZ d dlmZmZ d dl	m
Z
mZm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 d	d
lmZmZ d	dlmZ d	dlmZ ej        dk     rd dlmZ da de!d<   da"de!d<   d a#d6dZ$ed7d            Z%d8d!Z& ej'        d"#          d9d'            Z( ej'        d"(          d:d,            Z) ej'        d"(          d;d/            Z* ej+        d0 e            1          d<d2            Z,ej+        d=d4            Z-ej+        d>d5            Z.dS )?    )annotationsN)	GeneratorIterator)	ExitStackcontextmanager)isasyncgenfunctioniscoroutinefunctionismethod)Anycast)
SubRequest)Exit   )get_all_backendsget_async_backend)iterate_exceptions)
TestRunner)      )ExceptionGroupzTestRunner | None_current_runnerzExitStack | None_runner_stackbackendobjectreturntuple[str, dict[str, Any]]c                   t          | t                    r| i fS t          | t                    rt          |           dk    rot          | d         t                    rTt          | d         t                    r9t          t          t          t          t          t          f         f         |           S t          d          )N   r   r   z@anyio_backend must be either a string or tuple of (string, dict))
isinstancestrtuplelendictr   r   	TypeError)r   s    O/var/www/html/ai-engine/env/lib/python3.11/site-packages/anyio/pytest_plugin.pyextract_backend_and_optionsr&      s    '3 ={	GU	#	# =G(9(9gaj#&& 	=:gaj$+G+G 	=c4S>12G<<<
V
W
WW    backend_namer    backend_optionsdict[str, Any]Iterator[TestRunner]c              #    K   t           t          |           }t                      at          j                            d           It          j                            |           }t                              t          j        j	        |           |pi }t          
                    |                    |                    a t          dz  a	 t           V  t          dz  at          s(t          J t                                           d xaa d S d S # t          dz  at          s&t          J t                                           d xaa w xY wNr   )r   r   r   r   sniffiocurrent_async_library_cvargetsetcallbackresetenter_contextcreate_test_runner_runner_leasesclose)r(   r)   asynclibtokens       r%   
get_runnerr:   $   sM     
 $\22!-11$77? 6::<HHE""7#E#KUSSS)/R'55''88
 
 aN3! 	3 ,,,!!!.22MOOO	3 	3 	! 	3 ,,,!!!.22MO2222s   	D 9Econfigr   Nonec                2    |                      dd           d S )NmarkerszManyio: mark the (coroutine function) test to be run asynchronously via anyio.)addinivalue_line)r;   s    r%   pytest_configurer@   B   s,    
	$    r'   T)hookwrapper
fixturedefrequestGenerator[Any]c              #  T  K   dfd}| j         t                    st                    rsd|j        v rj|| _         | j        }d| j        v xs| xj        d	z  c_        d| j        v xs| xj        d
z  c_        	 d V | _         || _        S # | _         || _        w xY wd V S )Nargsr   anyio_backendrC   r   kwargsr   c              ?    K   |j         rWt                    rHt          j                  t          |j                   u r j                            |j                   }n}t          |           \  }}	r| |d<   
r||d<   t          ||          5 }t          |          r|	                    ||          E d {V  n|
                    ||          V  d d d            d S # 1 swxY w Y   d S )NrG   rC   )instancer
   type__self____func____get__r&   r:   r   run_asyncgen_fixturerun_fixture)rG   rC   rF   rH   
local_funcr(   r)   runnerfunchas_backend_arghas_request_args           r%   wrapperz%pytest_fixture_setup.<locals>.wrapperL   sa     
 		 T]##tG,<'='===..w/?@@JJJ(CM(R(R%o 	4&3F?# 	( 'F9o66 	=&!*-- =!66z6JJJJJJJJJJ((V<<<<<		= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AC&&C*-C*rG   rC   )
rF   r   rG   r   rC   r   rH   r   r   r   )rS   r   r	   fixturenamesargnames)rB   rC   rV   original_argnamerS   rT   rU   s       @@@r%   pytest_fixture_setupr\   J   s     = = = = = = = =8 ?D$ 7#6t#<#< 7g222%JO)2'6*:M'MMO :##'99##'0J4G'GGO 4##|3##7"&
&6
## #'
&6
#6666EENs   B B#)tryfirst	collectornameobjc                h   |                      ||          rt          |d          r|j        j        n|}t	          |          rl|                     d          }t          |dd          }|st          d |D                       r-t          j	        
                    d          |           d S d S d S d S )N
hypothesisanyio
pytestmark c              3  ,   K   | ]}|j         d k    V  dS )rc   N)r_   ).0markers     r%   	<genexpr>z,pytest_pycollect_makeitem.<locals>.<genexpr>   s)      NNV[G3NNNNNNr'   rG   )istestfunctionhasattrrb   
inner_testr	   get_closest_markergetattranypytestmarkusefixtures)r^   r_   r`   
inner_funcrh   own_markerss         r%   pytest_pycollect_makeitemru   }   s    T** >29#|2L2LUS^..RU
z** 	>11'::F!#|R88K >NN+NNNNN >''88=====> >	> 	>> >r'   
pyfuncitembool | Nonec           	       	
 d

fd}| j                             d          }|r/t          |          \  t          | j        d          rC| j        j        j        

j        |j        k    r t          
          r|| j        j        _        d S t          | j                  r| j         		fd| j	        j
        D             }t                    5 }	 |                    | j        |           nJ# t          $ r=}t          |          D ]'}t          |t           t"          t$          f          r||( d }~ww xY w	 d d d            n# 1 swxY w Y   d	S d S )NrH   r   r   r<   c                     t                    5 }|                    |            d d d            d S # 1 swxY w Y   d S N)r:   run_test)rH   rR   r(   r)   original_funcs     r%   run_with_hypothesisz/pytest_pyfunc_call.<locals>.run_with_hypothesis   s    o66 	3&OOM6222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   6::rG   rb   c                "    i | ]}||         S re   re   )rg   argfuncargss     r%   
<dictcomp>z&pytest_pyfunc_call.<locals>.<dictcomp>   s    WWWsXc]WWWr'   T)rH   r   r   r<   )r   r0   r&   rk   r`   rb   rl   __qualname__r	   _fixtureinforZ   r:   r{   r   r   r   r   KeyboardInterrupt
SystemExit)rv   r}   r   testargsrR   excgrpexcr(   r)   r   r|   s          @@@@r%   pytest_pyfunc_callr      s   3 3 3 3 3 3 3 3 !%%o66G (CG(L(L%o:><00 	&N5@M)-@-MMM&}55 O;NJN-84z~.. 	!*HWWWWj6M6VWWWHL/:: fOOJNH====%   1&99 2 2%cD2CZ+PQQ 2"%612  >               44s6   EC54E5
D<?8D77D<<EEEmodule)scopeparamsc                    | j         S rz   )paramrX   s    r%   rG   rG      s
    =r'   rG   c                @    t          | t                    r| S | d         S )Nr   r   r    rW   s    r%   anyio_backend_namer      s%    -%%  Qr'   c                @    t          | t                    ri S | d         S r-   r   rW   s    r%   anyio_backend_optionsr      s$    -%%  	Qr'   )r   r   r   r   )r(   r    r)   r*   r   r+   )r;   r   r   r<   )rB   r   rC   r   r   rD   )r^   r   r_   r   r`   r   r   r<   )rv   r   r   rw   )rC   r   r   r   )rG   r   r   r    )rG   r   r   r*   )/
__future__r   syscollections.abcr   r   
contextlibr   r   inspectr   r	   r
   typingr   r   rp   r.   _pytest.fixturesr   _pytest.outcomesr   _core._eventloopr   r   _core._exceptionsr   abcr   version_infoexceptiongroupr   r   __annotations__r   r6   r&   r:   r@   hookimplr\   ru   r   fixturerG   r   r   re   r'   r%   <module>r      s   " " " " " " " 



 / / / / / / / / 0 0 0 0 0 0 0 0 E E E E E E E E E E           ' ' ' ' ' ' ! ! ! ! ! ! A A A A A A A A 1 1 1 1 1 1      g------%) ) ) ) )"& & & & &X X X X 3 3 3 3:    T"""/ / / #"/d $> > >  > $! ! !  !H h'7'7'9'9:::   ;:                    r'   