
    g8                    J   % S SK Jr  S SKrS SKJrJr  S SKJrJr  S SK	J
r
JrJr  S SKJrJr  S SKrS SKrS SKJr  S SKJr  S	S
KJrJr  S	SKJr  S	SKJr  \R:                  S:  a  S SKJr  Sq S\!S'   Sq"S\!S'   S q#S!S jr$\      S"S j5       r%S#S jr&\RN                  " SS9S$S j5       r(\RN                  " SS9S%S j5       r)\RN                  " SS9S&S j5       r*\RV                  " S\" 5       S9S'S j5       r,\RV                  S(S j5       r-\RV                  S)S  j5       r.g)*    )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                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   	TypeError)backends    L/home/matz/Project1/venv/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              #    #    [         c  [        U 5      n[        5       q[        R
                  R                  S 5      cM  [        R
                  R                  U 5      n[        R                  [        R
                  R                  U5        U=(       d    0 n[        R                  UR                  U5      5      q [        S-  q [         v   [        S-  q[        (       d"  [        c   e[        R                  5         S =qq g g ! [        S-  q[        (       d"  [        c   e[        R                  5         S =qq f f = f7f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   CD?D 7D?8D<<D?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:   B   s    
	$r$   T)hookwrapperc              #    ^^^#              SUUU4S jjnU R                   m[        T5      (       d  [        T5      (       a  SUR                  ;   az  X l         U R                  nSU R                  ;   =m(       d  U =R                  S-  sl        SU R                  ;   =m(       d  U =R                  S-  sl         S v TU l         X0l        $ S v $ ! TU l         X0l        f = f7f)Nanyio_backendrequestc              ?    >#    UR                   (       aa  [        T5      (       aQ  [        TR                  5      [        UR                   5      L a&  TR                  R                  UR                   5      nOTn[        U 5      u  pVT	(       a  XS'   T
(       a  XS'   [        XV5       n[        U5      (       a  UR                  XC5       S h  vN   OUR                  XC5      v   S S S 5        g  N!! , (       d  f       g = f7f)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"   wrapper%pytest_fixture_setup.<locals>.wrapperL   s     
 T]]#tG,<,<'==..w/?/?@JJ(CM(R%&3?# '96&!*--!66zJJJ((<<	 76J 76s0   B#D &%C/C-C/$	D -C//
C=9D 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_setuprW   J   s     ==#&=1;=GJ=	= =8 ??D$#6t#<#<g222%O)22'6*:M:M'MMOM##'99#'0J4G4G'GGOG##|3#7"&
&6#N #'
&6#s   B9C&?C C&C##C&)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
pytestmark c              3  >   #    U  H  oR                   S :H  v   M     g7f)r[   N)name).0markers     r"   	<genexpr>,pytest_pycollect_makeitem.<locals>.<genexpr>   s     N+[[G3+s   r=   )istestfunctionhasattrrZ   
inner_testr	   get_closest_markergetattranypytestmarkusefixtures)	collectorr_   obj
inner_funcra   own_markerss         r"   pytest_pycollect_makeitemrq   }   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      (       ah  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 ! [         a:  n[        U5       H%  n[        U[         ["        [$        45      (       d  M%  Xe   e S nAff = 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)r5   run_test)rH   rJ   r1   r2   original_funcs     r"   run_with_hypothesis/pytest_pyfunc_call.<locals>.run_with_hypothesis   s)    o6&OOM62 766s   *
8r=   rZ   T)rH   r   rR   None)funcargsr)   r#   re   rn   rZ   rf   __qualname__r	   _fixtureinforT   r5   ru   r   r   r   r   KeyboardInterrupt
SystemExit)
pyfuncitemrw   r!   rz   argtestargsrJ   excgrpexcr1   r2   rv   s            @@@r"   pytest_pyfunc_callr      sV   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OOJNNH= ;  X & 1&9%cD2CZ+PQQ"%1  :  ;: s6   =EFE
F,FFFF
Fmodule)scopeparamsc                    U R                   $ rt   )paramrQ   s    r"   r=   r=      s    ==r$   c                :    [        U [        5      (       a  U $ U S   $ )Nr   r   r   rP   s    r"   anyio_backend_namer      s     -%%Qr$   c                :    [        U [        5      (       a  0 $ U S   $ r&   r   rP   s    r"   anyio_backend_optionsr      s    -%%	Qr$   )r!   objectrR   ztuple[str, dict[str, Any]])r1   r   r2   dict[str, Any]rR   zIterator[TestRunner])r9   r   rR   ry   )rU   r   r>   r   rR   zGenerator[Any])rm   r   r_   r   rn   r   rR   ry   )r   r   rR   zbool | None)r>   r   rR   r   )r=   r   rR   r   )r=   r   rR   r   )/
__future__r   syscollections.abcr   r   
contextlibr   r   inspectr   r	   r
   typingr   r   rj   r'   _pytest.fixturesr   _pytest.outcomesr   _core._eventloopr   r   _core._exceptionsr   abcr   version_infoexceptiongroupr   r   __annotations__r   r/   r#   r5   r:   hookimplrW   rq   r   fixturer=   r   r   r]   r$   r"   <module>r      s>   " 
 / 0 E E    ' ! A 1 g-%)" )"& &X 33(633 3: T"/ #/d $>  > $!  !H h'7'9: ;        r$   