o
    Ð­j†  ã                	   @   s4  U 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Zejedf ed< ejZe d	¡ZG d
d„ deeƒZdefdd„Zejrne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ddfdd„Z dZ!ej"dd… dk rŽee!7 Zdedejfdd„Z#dS )é    Né   )Úincludes©ÚLoop)Ú__version__)Únew_event_loopÚrun.Ú__all__Ú_Tc                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   úL/var/www/html/CropPilot/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   ©Ú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   r      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)Ú	__asyncioÚ_get_running_loopÚ
isinstancer   Ú	TypeError)Úloop©r   r   r   Úwrapper)   s
   €

zrun.<locals>.wrapperNé   )é   é
   z8asyncio.run() cannot be called from a running event loopz"a coroutine was expected, got {!r}Úshutdown_default_executor)r   é   r   ©r   é   r   )Ú_sysÚversion_infor   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   &   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Úcancelr-   ÚgatherÚ	cancelledr8   Úcall_exception_handler)r   Ú	to_cancelr9   r   r   r   r.   h   s&   

ÿý€ür.   )ÚinstallÚEventLoopPolicyr   ©r   é   Únamec                    sˆ   | t vrtd| › d�ƒ‚tjd d… dkrtd| › d�ƒ‚dd l‰d‡ fdd	„}G ‡fd
d„dttdƒƒ‰ |tƒ d< ˆ tƒ d< tƒ |  S )Nz"module 'uvloop' has no attribute 'ú'r   rB   z;' (it was removed in Python 3.16, use uvloop.run() instead)r   r   c                      s2   t jdd… dkrtjdtdd� t ˆ ƒ ¡ dS )z¡A helper function to install uvloop policy.

        This function is deprecated and will be removed in Python 3.16.
        Use `uvloop.run()` instead.
        Nr   r#   zRuvloop.install() is deprecated in favor of uvloop.run() starting with Python 3.12.r   )Ú
stacklevel)r%   r&   Ú	_warningsÚwarnÚDeprecationWarningr   Úset_event_loop_policyr   )rA   r   r   r@   “   s   üz__getattr__.<locals>.installc                       sž   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G d
d„ d” jƒZddd„Zdef‡ fdd„Zdeje ddfdd„Zdefdd„ZdS )z$__getattr__.<locals>.EventLoopPolicyal  Event loop policy for uvloop.

        This class is deprecated and will be removed in Python 3.16.
        Use `uvloop.run()` instead.

        >>> 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                 S   r   ©N)r   ©Úselfr   r   r   Ú_loop_factory²   s   z2__getattr__.<locals>.EventLoopPolicy._loop_factoryc                 S   ó   d S rK   r   rL   r   r   r   Úget_child_watcherº   s   z6__getattr__.<locals>.EventLoopPolicy.get_child_watcherÚwatcherc                 S   rO   rK   r   )rM   rQ   r   r   r   Úset_child_watcher½   s   z6__getattr__.<locals>.EventLoopPolicy.set_child_watcherc                   @   s    e Zd ZU dZeje ed< dS )z+__getattr__.<locals>.EventLoopPolicy._LocalNÚ_loop)r   r   r   rS   Ú_typingÚOptionalÚ_AbstractEventLoopÚ__annotations__r   r   r   r   Ú_LocalÂ   s   
 rX   Nc                 S   s   |   ¡ | _d S rK   )rX   Ú_localrL   r   r   r   Ú__init__Å   s   z-__getattr__.<locals>.EventLoopPolicy.__init__c                    s&   | j jdu rtdˆ  ¡ j ƒ‚| j jS )z~Get the event loop for the current context.

            Returns an instance of EventLoop or raises an exception.
            Nz,There is no current event loop in thread %r.)rY   rS   r'   Úcurrent_threadrD   rL   ©Ú	threadingr   r   Úget_event_loopÈ   s   ÿÿz3__getattr__.<locals>.EventLoopPolicy.get_event_loopr   c                 S   s4   |durt |tƒstdt|ƒj› d�ƒ‚|| j_dS )zSet the event loop.Nz<loop must be an instance of AbstractEventLoop or None, not 'rE   )r   rV   r   Útyper   rY   rS   )rM   r   r   r   r   r+   Õ   s   ÿÿz3__getattr__.<locals>.EventLoopPolicy.set_event_loopc                 S   s   |   ¡ S )zvCreate a new event loop.

            You must call set_event_loop() to make this the current event loop.
            )rN   rL   r   r   r   r   à   s   z3__getattr__.<locals>.EventLoopPolicy.new_event_loop©r   N)r   r   r   Ú__doc__r   rN   rT   ÚTYPE_CHECKINGÚNoReturnrP   ÚAnyrR   ÚlocalrX   rZ   rV   r^   rU   r+   r   r   r\   r   r   rA   ¢   s&    ÿ
þ
ÿ
þrA   ÚAbstractEventLoopPolicyr@   r`   )Ú_deprecated_namesÚAttributeErrorr%   r&   r]   Úgetattrr   Úglobals)rD   r@   r   )rA   r]   r   Ú__getattr__ˆ   s   
ÿþ
E

rk   )$Úasyncior   ÚtypingrT   Úsysr%   ÚwarningsrG   Ú r   Ú
__includesr   r   Ú
__BaseLoopÚ_versionr   r	   ÚTupleÚstrrW   ÚAbstractEventLooprV   ÚTypeVarr
   r   rb   Ú	Coroutinerd   rU   ÚCallableÚboolr   r.   rg   r&   rk   r   r   r   r   Ú<module>   s@   
 
úÿÿýúù
B