o
    RÉÆhl  ã                	   @   s  d dl Zd dlZd dlZd dlZd dlm	Z
 ddlmZ ddlmZ ddlmZ dZe d¡ZG d	d
„ d
eejƒZdefdd„Zddd„Zejrmeddœdejejejef dejejg ef  deje defdd„Zneddœdd„Zdejddfdd„Z G dd„ de
ƒZ!dS )é    N)ÚBaseDefaultEventLoopPolicyé   )Úincludes©ÚLoop)Ú__version__)Únew_event_loopÚinstallÚEventLoopPolicyÚ_Tc                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú\/var/www/html/HyperOracle/crypto_trader/venv/lib/python3.10/site-packages/uvloop/__init__.pyr      s    r   Úreturnc                   C   ó   t ƒ S )zReturn a new event loop.r   r   r   r   r   r      s   r   c                   C   s2   t jdd… dkrtjdtdd� t tƒ ¡ dS )z+A helper function to install uvloop policy.Né   ©é   é   zRuvloop.install() is deprecated in favor of uvloop.run() starting with Python 3.12.r   )Ú
stacklevel)Ú_sysÚversion_infoÚ	_warningsÚwarnÚDeprecationWarningÚ	__asyncioÚset_event_loop_policyr
   r   r   r   r   r	      s   ür	   ©Úloop_factoryÚdebugÚmainr    r!   c                C   s   dS )ú5The preferred way of running a coroutine with uvloop.Nr   )r"   r    r!   r   r   r   Úrun)   s    r$   c                   sæ  ‡ fdd„}t jdd… }|dkr¯t ¡ durtdƒ‚t ˆ ¡s'td ˆ ¡ƒ‚|ƒ }zLt |¡ |dur9| 	|¡ | 
|ƒ ¡W z-t|ƒ | 
| ¡ ¡ t|dƒrb| 
| ¡ ¡ W t d¡ | ¡  S W t d¡ | ¡  S t d¡ | ¡  w z-t|ƒ | 
| ¡ ¡ t|dƒrš| 
| ¡ ¡ W t d¡ | ¡  w W t d¡ | ¡  w t d¡ | ¡  w |d	kràt ¡ dur½tdƒ‚tjd||d
œ|¤Ž�}| |ƒ ¡W  d  ƒ S 1 sÙw   Y  dS |dksæJ ‚tj|ƒ f||d
œ|¤ŽS )r#   c                  “   s&   �t  ¡ } t| tƒstdƒ‚ˆ I d H S )Nz)uvloop.run() uses a non-uvloop event loop)r   Ú_get_running_loopÚ
isinstancer   Ú	TypeError)Úloop©r"   r   r   Úwrapper6   s
   €

zrun.<locals>.wrapperNr   )r   é
   z8asyncio.run() cannot be called from a running event loopz"a coroutine was expected, got {!r}Úshutdown_default_executor)r   é   r   r   r   )r   r   r   r%   ÚRuntimeErrorÚiscoroutineÚ
ValueErrorÚformatÚset_event_loopÚ	set_debugÚrun_until_completeÚ_cancel_all_tasksÚshutdown_asyncgensÚhasattrr,   ÚcloseÚRunnerr$   )r"   r    r!   Ú
run_kwargsr*   Úvir(   Úrunnerr   r)   r   r$   3   sˆ   	ÿ
ÿ


ÿ

ú


ÿ
÷
ÿ

ú


ÿ
ÿþý
$ûÿýür(   c                 C   st   t  | ¡}|s	d S |D ]}| ¡  q|  t j|ddiŽ¡ |D ]}| ¡ r&q| ¡ d ur7|  d| ¡ |dœ¡ qd S )NÚreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)ÚmessageÚ	exceptionÚtask)r   Ú	all_tasksÚcancelr4   ÚgatherÚ	cancelledr?   Úcall_exception_handler)r(   Ú	to_cancelr@   r   r   r   r5   u   s&   

ÿý€ür5   c                   @   sN   e Zd ZdZdefdd„Zejr%dejfdd„Z	dej
dejfdd	„Zd
S d
S )r
   a  Event loop policy.

    The preferred way to make your application use uvloop:

    >>> import asyncio
    >>> import uvloop
    >>> asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
    >>> asyncio.get_event_loop()
    <uvloop.Loop running=False closed=False debug=False>
    r   c                 C   r   ©N)r   ©Úselfr   r   r   Ú_loop_factoryš   s   zEventLoopPolicy._loop_factoryc                 C   ó   d S rG   r   rH   r   r   r   Úget_child_watcher¢   s   z!EventLoopPolicy.get_child_watcherÚwatcherc                 C   rK   rG   r   )rI   rM   r   r   r   Úset_child_watcher¥   s   z!EventLoopPolicy.set_child_watcherN)r   r   r   Ú__doc__r   rJ   Ú_typingÚTYPE_CHECKINGÚNoReturnrL   ÚAnyrN   r   r   r   r   r
   Ž   s    ÿþør
   )r   N)"Úasyncior   ÚtypingrP   Úsysr   Úwarningsr   Úasyncio.eventsr   Ú__BasePolicyÚ r   Ú
__includesr(   r   Ú
__BaseLoopÚ_versionr   Ú__all__ÚTypeVarr   ÚAbstractEventLoopr   r	   rQ   Ú	CoroutinerS   ÚOptionalÚCallableÚboolr$   r5   r
   r   r   r   r   Ú<module>   s<    

úÿÿýúù
B