
    Gg8                    N   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#d!dZ$e	 	 	 	 	 	 d"d       Z%d#dZ& ejN                  d      d$d       Z( ejN                  d      d%d       Z) ejN                  d      d&d       Z* ejV                  d e             d'd       Z,ejV                  d(d       Z-ejV                  d)d        Z.y)*    )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_stackc                   t        | t              r| i fS t        | t              r^t        |       dk(  rPt        | d   t              r=t        | d   t              r*t        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)backends    H/var/www/openai/venv/lib/python3.12/site-packages/anyio/pytest_plugin.pyextract_backend_and_optionsr#      sq    '3{	GU	#G(9gaj#&:gaj$+Gc4S>12G<<
V
WW    c              #  \  K   t         t        |       }t               at        j
                  j                  d       Mt        j
                  j                  |       }t        j                  t        j
                  j                  |       |xs i }t        j                  |j                  |            a t        dz  a	 t          t        dz  at        s!t        J t        j                          d xaa y y # t        dz  at        s!t        J t        j                          d xaa w w xY wwNr   )r   r   r   r   sniffiocurrent_async_library_cvargetsetcallbackresetenter_contextcreate_test_runner_runner_leasesclose)backend_namebackend_optionsasynclibtokens       r"   
get_runnerr5   $   s    
 $\2!--11$7? 66::<HE""7#E#E#K#KUS)/R'55''8
 aN3! ,,,!.22MO  	! ,,,!.22MO s   B;D,>C7 1D,72D))D,c                (    | j                  dd       y )NmarkerszManyio: mark the (coroutine function) test to be run asynchronously via anyio.)addinivalue_line)configs    r"   pytest_configurer:   B   s    
	$r$   T)hookwrapperc              #    K   	 	 	 	 	 	 	 	 	 	 dfd}| j                   t              st              r~d|j                  v rp|| _         | j                  }d| j                  v xs| xj                  dz  c_        d| j                  v xs| xj                  dz  c_        	 d | _         || _        S d S # | _         || _        w xY ww)Nanyio_backendrequestc              ?    K   |j                   r[t              rPt        j                        t        |j                         u r&j                  j                  |j                         }n}t        |       \  }}	r| |d<   
r||d<   t        ||      5 }t        |      r|j                  ||      E d {    n|j                  ||       d d d        y 7 "# 1 sw Y   y xY ww)Nr=   r>   )instancer
   type__self____func____get__r#   r5   r   run_asyncgen_fixturerun_fixture)r=   r>   argskwargs
local_funcr1   r2   runnerfunchas_backend_arghas_request_args           r"   wrapperz%pytest_fixture_setup.<locals>.wrapperL   s     
 T]]#tG,<,<'==..w/?/?@JJ(CM(R%o&3F?# 'F9o6&!*-!66z6JJJ((V<<	 76J 76s0   BC'!C6C7C	C'CC$ C'r=   r>   )
rG   r   r=   r   r>   r   rH   r   returnr   )rK   r   r	   fixturenamesargnames)
fixturedefr>   rN   original_argnamerK   rL   rM   s       @@@r"   pytest_fixture_setuprV   J   s     ==#&=1;=GJ=	=8 ??D$#6t#<g222%JO)22'6*:M:M'MMOM##'99#'0J4G4G'GGOG##|3#7"&
&6
#N #'
&6
#s   B C&B< )C<CC)tryfirstc                8   | j                  ||      rt        |d      r|j                  j                  n|}t	        |      rX| j                  d      }t        |dd      }|st        d |D              r%t        j                  j                  d      |       y y y y )N
hypothesisanyio
pytestmark c              3  :   K   | ]  }|j                   d k(    yw)rZ   N)name).0markers     r"   	<genexpr>z,pytest_pycollect_makeitem.<locals>.<genexpr>   s     N+V[[G3+s   r=   )istestfunctionhasattrrY   
inner_testr	   get_closest_markergetattranypytestmarkusefixtures)	collectorr^   obj
inner_funcr`   own_markerss         r"   pytest_pycollect_makeitemro   }   s    T*29#|2LS^^..RU
z*11':F!#|R8KN+NN''8= O + +r$   c           	       	
 d	
fd}| j                   j                  d      }|r t        |      \  	
t        | j                  d      r`| j                  j
                  j                  j                  |j                  k7  r&t              r|| j                  j
                  _        y t        | j                        rg| j                   }| j                  j                  D ci c]  }|||   
 }}t        	
      5 }	 |j                  | j                  |       	 d d d        yy c c}w # t        $ r4}t        |      D ]   }t        |t         t"        t$        f      s||  d }~ww xY w# 1 sw Y   yxY w)Nc                 l    t              5 }|j                  |        d d d        y # 1 sw Y   y xY wN)r5   run_test)rH   rJ   r1   r2   original_funcs     r"   run_with_hypothesisz/pytest_pyfunc_call.<locals>.run_with_hypothesis   s)    o6&OOM62 766s   *3r=   rY   T)rH   r   rQ   None)funcargsr)   r#   rc   rl   rY   rd   __qualname__r	   _fixtureinforS   r5   rs   r   r   r   r   KeyboardInterrupt
SystemExit)
pyfuncitemru   r!   rw   argtestargsrJ   excgrpexcr1   r2   rt   s            @@@r"   pytest_pyfunc_callr      sJ   3 !!%%o6G(CG(L%o:>><0&NN55@@M))-@-M-MM&}5;NJNN--8z~~.!**H6@6M6M6V6VW6VsXc]*6VHWL/:fOOJNNH= ;  X & 1&9%cD2CZ+PQ"%61  :  ; s6   'D+E0D00	E-9)E(#E((E--E00E9module)scopeparamsc                    | j                   S rr   )paramrP   s    r"   r=   r=      s    ==r$   c                0    t        | t              r| S | d   S )Nr   r   r   rO   s    r"   anyio_backend_namer      s    -%Qr$   c                0    t        | t              ri S | d   S r&   r   rO   s    r"   anyio_backend_optionsr      s    -%	Qr$   )r!   objectrQ   ztuple[str, dict[str, Any]])r1   r   r2   dict[str, Any]rQ   zIterator[TestRunner])r9   r   rQ   rv   )rT   r   r>   r   rQ   zGenerator[Any])rk   r   r^   r   rl   r   rQ   rv   )r|   r   rQ   zbool | None)r>   r   rQ   r   )r=   r   rQ   r   )r=   r   rQ   r   )/
__future__r   syscollections.abcr   r   
contextlibr   r   inspectr   r	   r
   typingr   r   rh   r'   _pytest.fixturesr   _pytest.outcomesr   _core._eventloopr   r   _core._exceptionsr   abcr   version_infoexceptiongroupr   r   __annotations__r   r/   r#   r5   r:   hookimplrV   ro   r   fixturer=   r   r   r\   r$   r"   <module>r      sF   " 
 / 0 E E    ' ! A 1 g-%)" )"& &X 33(633 3: T"/ #/d $>  > $!  !H h'7'9: ;        r$   