
    vKgj                        S SK Jr  S SKJrJr  S SKJrJr  SSKJ	r	  SSK
JrJr  \(       a  S SKJrJr  S SKJr  \" S	5      r\" S
5      rSS jrg)    )annotations)partialwraps)TYPE_CHECKINGTypeVar   )_core)Clock
Instrument)	AwaitableCallable)	ParamSpecArgsTRetTc                4   ^  [        T 5      SU 4S jj5       nU$ )a2  Converts an async test function to be synchronous, running via Trio.

Usage::

    @trio_test
    async def test_whatever():
        await ...

If a pytest fixture is passed in that subclasses the :class:`~trio.abc.Clock` or
:class:`~trio.abc.Instrument` ABCs, then those are passed to :meth:`trio.run()`.
c                   > SnUR                  5        Vs/ sH  n[        U[        5      (       d  M  UPM     nnU(       d  S nO [        U5      S:X  a  US   nO[	        S5      eUR                  5        Vs/ sH  n[        U[
        5      (       d  M  UPM     nn[        R                  " [        T/U Q70 UD6UUS9$ s  snf s  snf )NT   r   z too many clocks spoil the broth!)clockinstruments)	values
isinstancer
   len
ValueErrorr   r	   runr   )	argskwargs__tracebackhide__cclocksr   ir   fns	           W/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/testing/_trio_test.pywrappertrio_test.<locals>.wrapper!   s     #]]_E_
1e0D!_EE[A1IE?@@"(--/O/QZ:5Nq/OyyB(((#
 	
 F Ps   B=B=6CC)r   z
ArgsT.argsr   zArgsT.kwargsreturnr   )r   )r!   r#   s   ` r"   	trio_testr&      s"     2Y
 
  N    N)r!   z Callable[ArgsT, Awaitable[RetT]]r%   zCallable[ArgsT, RetT])
__future__r   	functoolsr   r   typingr   r    r	   abcr
   r   collections.abcr   r   typing_extensionsr   r   r   r&    r'   r"   <module>r0      s7    " $ )  #3+gE vr'   