a
    ‚½3jd  ã                   @  sÚ   d dl mZ d dlZd dlZd dlmZmZ d dlmZm	Z	 ddgZ
ejdkr\d dlmZ nd dlmZ e	d	ƒZejd
kr‚ejZnTejdkrªdddœdddd	dœdd„Zn,dddœdddd	dœdd„Zdddœdd„ZdS )é    )ÚannotationsN)ÚCallableÚ	Coroutine)ÚAnyÚTypeVarÚasyncio_runÚiscoroutinefunction)é   é   )r   Ú_T)r	   é   )r	   é   F©ÚdebugÚloop_factoryzCoroutine[Any, Any, _T]Úboolz.Callable[[], asyncio.AbstractEventLoop] | None)Úmainr   r   Úreturnc                C  s<   t j||d}| | ¡W  d   ƒ S 1 s.0    Y  d S )Nr   )ÚasyncioZRunnerÚrun)r   r   r   Úrunner© r   úl/www/wwwroot/dpstar/app/297b3aabda72fedb274352021c2dd8b5_venv/lib/python3.9/site-packages/uvicorn/_compat.pyr      s    c                C  sº  zt  ¡  W n ty   Y n
0 tdƒ‚t  | ¡s@td| ›ƒ‚|d u rRt  ¡ }n|ƒ }zö|d u rlt  |¡ |d ur~| |¡ | | ¡W zBt	|ƒ | | 
¡ ¡ | | ¡ ¡ W |d u rÂt  d ¡ | ¡  S |d u rÞt  d ¡ | ¡  0 S zDt	|ƒ | | 
¡ ¡ | | ¡ ¡ W |d u r&t  d ¡ | ¡  n|d u rDt  d ¡ | ¡  0 nfzDt	|ƒ | | 
¡ ¡ | | ¡ ¡ W |d u rŒt  d ¡ | ¡  n|d u rªt  d ¡ | ¡  0 0 d S )Nz8asyncio.run() cannot be called from a running event loopza coroutine was expected, got )r   Zget_running_loopÚRuntimeErrorÚiscoroutineÚ
ValueErrorZnew_event_loopZset_event_loopZ	set_debugÚrun_until_completeÚ_cancel_all_tasksZshutdown_asyncgensZshutdown_default_executorÚclose)r   r   r   Úloopr   r   r   r   #   s^    






þ

÷


þ

ù


þ

zasyncio.AbstractEventLoopÚNone)r   r   c                 C  st   t  | ¡}|sd S |D ]}| ¡  q|  t j|ddiŽ¡ |D ]0}| ¡ rLq>| ¡ d ur>|  d| ¡ |dœ¡ q>d S )NZreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)ÚmessageÚ	exceptionÚtask)r   Z	all_tasksÚcancelr   ZgatherZ	cancelledr"   Zcall_exception_handler)r   Z	to_cancelr#   r   r   r   r   G   s     

ýÿr   )Ú
__future__r   r   ÚsysÚcollections.abcr   r   Útypingr   r   Ú__all__Úversion_infoÚinspectr   r   r   r   r   r   r   r   r   Ú<module>   s&   


üü$