o
    ùT·j¥  ã                   @  s¨   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d dlmZ edƒZedƒZddd„Zd dd„ZG dd„ deƒZd!dd„Zd"dd„ZdS )#é    )ÚannotationsN)ÚAsyncIteratorÚCallableÚ	CoroutineÚIterableÚIterator)Ú	ParamSpecÚTypeVar)ÚStarletteDeprecationWarningÚPÚTÚargsútuple[Callable, dict]ÚreturnÚNonec               	   ‡  s†   �t  dt¡ t ¡ 4 I d H š'‰ d‡ fdd„}| D ]\}}ˆ  |tj|fi |¤Ž¡ qW d   ƒI d H  d S 1 I d H s<w   Y  d S )	NzOrun_until_first_complete is deprecated and will be removed in a future version.ÚfuncúCallable[[], Coroutine]r   r   c                 “  s   �| ƒ I d H  ˆ j  ¡  d S ©N)Úcancel_scopeÚcancel)r   ©Ú
task_group© úX/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/starlette/concurrency.pyÚrun   s   €z%run_until_first_complete.<locals>.run)r   r   r   r   )ÚwarningsÚwarnr
   ÚanyioÚcreate_task_groupÚ
start_soonÚ	functoolsÚpartial)r   r   r   Úkwargsr   r   r   Úrun_until_first_complete   s   €þÿ.úr#   r   úCallable[P, T]úP.argsr"   úP.kwargsc                 Ï  s,   �t j| g|¢R i |¤Ž} tj | ¡I d H S r   )r    r!   r   Ú	to_threadÚrun_sync)r   r   r"   r   r   r   Úrun_in_threadpool    s   €r)   c                   @  s   e Zd ZdS )Ú_StopIterationN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r*   %   s    r*   ÚiteratorúIterator[T]c                 C  s   zt | ƒW S  ty   t‚w r   )ÚnextÚStopIterationr*   )r.   r   r   r   Ú_next)   s
   
ÿr2   úIterable[T]úAsyncIterator[T]c                 C s>   �t | ƒ}	 ztj t|¡I d H V  W n
 ty   Y d S w qr   )Úiterr   r'   r(   r2   r*   )r.   Úas_iteratorr   r   r   Úiterate_in_threadpool3   s   €ÿýr7   )r   r   r   r   )r   r$   r   r%   r"   r&   r   r   )r.   r/   r   r   )r.   r3   r   r4   )Ú
__future__r   r    r   Úcollections.abcr   r   r   r   r   Útypingr   r	   Úanyio.to_threadr   Ústarlette.exceptionsr
   r   r   r#   r)   Ú	Exceptionr*   r2   r7   r   r   r   r   Ú<module>   s    



