
    1h                       % S SK Jr  S SKJr  S SKJrJr  S SKJrJ	r	J
r
JrJr  S SKrS SKrSSKJrJr  SSKJr  SqS	\S
'   SS jr\      SS j5       rSS jrSS jr\R4                  " SS9SS j5       r\R4                  " SS9SS j5       r\R:                  " \" 5       S9SS j5       r\R:                  SS j5       r\R:                  SS j5       r g)     )annotations)contextmanager)isasyncgenfunctioniscoroutinefunction)AnyDict	GeneratorTuplecastN   )get_all_backendsget_asynclib)
TestRunnerzTestRunner | None_current_runnerc                F   [        U [        5      (       a  U 0 4$ [        U [        5      (       ai  [        U 5      S:X  aZ  [        U S   [        5      (       aB  [        U S   [        5      (       a*  [        [        [        [        [        [        4   4   U 5      $ [        S5      e)N   r   r   z@anyio_backend must be either a string or tuple of (string, dict))

isinstancestrtuplelendictr   r
   r   r   	TypeError)backends    K/var/www/auris/envauris/lib/python3.13/site-packages/anyio/pytest_plugin.pyextract_backend_and_optionsr      s}    '3{	GU	#	#G(9gaj#&&:gaj$+G+Gc4S>12G<<
V
WW    c              #    #    [         (       a	  [         v   g [        U 5      nS n[        R                  R	                  S 5      c  [        R                  R                  U 5      n U=(       d    0 nUR                  " S0 UD6 nUq Uv   S S S 5        S q U(       a   [        R                  R                  U5        g g ! , (       d  f       N8= f! S q U(       a   [        R                  R                  U5        f f = f7f)N )r   r   sniffiocurrent_async_library_cvargetsetr   reset)backend_namebackend_optionsasynclibtokenrunners        r   
get_runnerr)      s     
 L)HE))--d3;2266|D<)/R  3?3v$OL 4 ..44U;  43 ..44U; s6   A!C9$C B:C *C9:
CC +C66C9c                (    U R                  SS5        g )NmarkerszManyio: mark the (coroutine function) test to be run asynchronously via anyio.)addinivalue_line)configs    r   pytest_configurer.   4   s    
	$r   c                   ^^ UU4S jnU R                   m[        T5      (       d  [        T5      (       aD  SUR                  ;   a3  SU R                  ;   mX l         T(       d  U =R                  S-  sl        g g g g )Nc              ?  
  >#    [        U 5      u  p4T(       a  XS'   [        X45       n[        T5      (       a  UR                  TU5       S h  vN   OUR	                  TU5      v   S S S 5        g  N"! , (       d  f       g = f7f)Nanyio_backend)r   r)   r   run_asyncgen_fixturerun_fixture)r1   argskwargsr$   r%   r(   funchas_backend_args         r   wrapper%pytest_fixture_setup.<locals>.wrapper=   so     (CM(R%&3?#6&!$''!66tVDDD((v66	 76D 76s.   $B&A2A0A2'	B0A22
B <Br1   r1   )r6   r   r   fixturenamesargnames)
fixturedefrequestr8   r6   r7   s      @@r   pytest_fixture_setupr?   <   sp    	7 ??D$#6t#<#<g222-1D1DDO%O"##'99# # 3 $=r   T)tryfirstc                j   U R                  X!5      (       a  [        US5      (       a  UR                  R                  OUn[	        U5      (       ac  U R                  S5      n[        USS5      nU(       d  [        S U 5       5      (       a&  [        R                  R                  S5      " U5        g g g g )N
hypothesisanyio
pytestmarkr   c              3  >   #    U  H  oR                   S :H  v   M     g7f)rC   N)name).0markers     r   	<genexpr>,pytest_pycollect_makeitem.<locals>.<genexpr>Z   s     N+[[G3+s   r1   )istestfunctionhasattrrB   
inner_testr   get_closest_markergetattranypytestmarkusefixtures)	collectorrF   obj
inner_funcrH   own_markerss         r   pytest_pycollect_makeitemrX   S   s    **29#|2L2LS^^..RU
z**11':F!#|R8KN+NNN''8= O + +r   c                  ^^^	 SUUU	4S jjnU R                   R                  S5      nU(       Ga  [        U5      u  mm[        U R                  S5      (       ae  U R                  R
                  R                  m	T	R                  UR                  :w  a*  [        T	5      (       a  XR                  R
                  l        g [        U R                  5      (       af  U R                   nU R                  R                   Vs0 s H  oDX4   _M	     nn[        TT5       nUR                  U R                  U5        S S S 5        gg s  snf ! , (       d  f       g= f)Nc                 v   > [        TT5       nUR                  TU 5        S S S 5        g ! , (       d  f       g = fN)r)   run_test)r5   r(   r$   r%   original_funcs     r   run_with_hypothesis/pytest_pyfunc_call.<locals>.run_with_hypothesis`   s)    o6&OOM62 766s   *
8r1   rB   T)r5   r   returnNone)funcargsr!   r   rL   rU   rB   rM   __qualname__r   _fixtureinfor<   r)   r\   )

pyfuncitemr^   r   rb   argtestargsr(   r$   r%   r]   s
          @@@r   pytest_pyfunc_callrh   ^   s   3 3 !!%%o6G(CG(L%o:>><00&NN55@@M))-@-M-MM&}55;NNN--8z~~..!**H6@6M6M6V6VW6VsX]*6VHWL/:f
9 ;  X:: s   =E E
E)paramsc                    U R                   $ r[   )param)r>   s    r   r1   r1   |   s    ==r   c                :    [        U [        5      (       a  U $ U S   $ )Nr   r   r   r:   s    r   anyio_backend_namern      s     -%%Qr   c                :    [        U [        5      (       a  0 $ U S   $ )Nr   rm   r:   s    r   anyio_backend_optionsrp      s    -%%	Qr   )r   objectr`   ztuple[str, dict[str, Any]])r$   r   r%   dict[str, Any]r`   z#Generator[TestRunner, object, None])r-   r   r`   ra   )r=   r   r>   r   r`   ra   )rT   r   rF   r   rU   r   r`   ra   )re   r   r`   zbool | None)r>   r   r`   r   )r1   r   r`   r   )r1   r   r`   rr   )!
__future__r   
contextlibr   inspectr   r   typingr   r   r	   r
   r   rQ   r   _core._eventloopr   r   abcr   r   __annotations__r   r)   r.   r?   hookimplrX   rh   fixturer1   rn   rp   r   r   r   <module>r|      s    " % ; 4 4   < %)" )X <<(6<(< <2:. $>  > $  : ')* +        r   