
    E2i^                        d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	 d dl
mZmZ d dlZ ed          Z ed          ZddZddZ G d de          ZddZddZdS )    )annotationsN)AsyncIteratorCallable	CoroutineIterableIterator)	ParamSpecTypeVarPTargstuple[Callable, dict]returnNonec            
     &  K   t          j        dt                     t          j                    4 d {V dfd}| D ]+\  }}                    |t          j        |fi |           ,	 d d d           d {V  d S # 1 d {V swxY w Y   d S )NzOrun_until_first_complete is deprecated and will be removed in a future version.funcCallable[[], Coroutine]r   r   c                ^   K    |              d {V  j                                          d S N)cancel_scopecancel)r   
task_groups    T/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/starlette/concurrency.pyrunz%run_until_first_complete.<locals>.run   s9      $&&LLLLLLL#**,,,,,    )r   r   r   r   )warningswarnDeprecationWarninganyiocreate_task_group
start_soon	functoolspartial)r   r   r   kwargsr   s       @r   run_until_first_completer%      sy     MY  
 &(( J J J J J J JJ	- 	- 	- 	- 	- 	- ! 	J 	JLD&!!#y'8'H'H'H'HIIII	JJ J J J J J J J J J J J J J J J J J J J J J J J J J J J J Js   5B  
B
B
r   Callable[P, T]P.argsr$   P.kwargsc                z   K   t          j        | g|R i |} t          j                            |            d {V S r   )r"   r#   r   	to_threadrun_sync)r   r   r$   s      r   run_in_threadpoolr,      sN      T3D333F33D))$/////////r   c                      e Zd ZdS )_StopIterationN)__name__
__module____qualname__ r   r   r.   r.   #   s        Dr   r.   iteratorIterator[T]c                L    	 t          |           S # t          $ r t          w xY wr   )nextStopIterationr.   )r3   s    r   _nextr8   '   s4    H~~   s    #Iterable[T]AsyncIterator[T]c                  K   t          |           }	 	 t          j                            t          |           d {V W V  n# t
          $ r Y d S w xY wBr   )iterr   r*   r+   r8   r.   )r3   as_iterators     r   iterate_in_threadpoolr>   1   sz       x..K	00DDDDDDDDDDDDD 	 	 	EE	s   .A 
AA)r   r   r   r   )r   r&   r   r'   r$   r(   r   r   )r3   r4   r   r   )r3   r9   r   r:   )
__future__r   r"   r   collections.abcr   r   r   r   r   typingr	   r
   anyio.to_threadr   r   r   r%   r,   	Exceptionr.   r8   r>   r2   r   r   <module>rD      s   " " " " " "      R R R R R R R R R R R R R R % % % % % % % %    IcNNGCLLJ J J J 0 0 0 0
	 	 	 	 	Y 	 	 	        r   