U
    &%eÍ  ã                   @   sâ   d dl Z d dlZd dlZd dlZd dlZejdkr@d dlmZ nd dlmZ e d¡Z	edƒZ
ejejef ddœdd„Zeje
e	f e
je
je	d	œd
d„ZG dd„ deƒZeje	 e	dœdd„Zeje	 eje	 dœdd„ZdS )é    N)é   é
   )Ú	ParamSpecÚTÚP)ÚargsÚreturnc               
   ‡   sv   t  dt¡ t ¡ 4 I d H šJ‰ tjg tjf d dœ‡ fdd„}| D ]\}}ˆ  |t	j
|f|Ž¡ qBW 5 Q I d H R X d S )NzOrun_until_first_complete is deprecated and will be removed in a future version.)Úfuncr   c                 “   s   | ƒ I d H  ˆ j  ¡  d S ©N)Zcancel_scopeÚcancel)r	   ©Z
task_group© úT/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/starlette/concurrency.pyÚrun   s    z%run_until_first_complete.<locals>.run)ÚwarningsÚwarnÚDeprecationWarningÚanyioZcreate_task_groupÚtypingÚCallableÚ	CoroutineZ
start_soonÚ	functoolsÚpartial)r   r   r	   Úkwargsr   r   r   Úrun_until_first_complete   s    ý r   )r	   r   r   r   c                 Ï   s*   |rt j| f|Ž} tjj| f|žŽ 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   )Úiteratorr   c                 C   s(   z
t | ƒW S  tk
r"   t‚Y nX d S r
   )ÚnextÚStopIterationr   ©r"   r   r   r   Ú_next0   s    
r&   c                 C  s:   zt j t| ¡I d H V  W q  tk
r2   Y q6Y q X q d S r
   )r   r   r   r&   r   r%   r   r   r   Úiterate_in_threadpool:   s    r'   )r   Úsysr   r   r   Úversion_infor   Ztyping_extensionsÚTypeVarr   r   ÚTupler   Údictr   r   r   r   Ú	Exceptionr   ÚIteratorr&   ÚAsyncIteratorr'   r   r   r   r   Ú<module>   s(   

  þ	þ