
    ˊ1i              	          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j,                  d	      Z G d
 dee      ZdefdZej2                  r^edddej4                  ej6                  ej6                  ef   dej8                  ej:                  g ef      dej8                  e   defdZnedddZdeddfdZ dZ!ejD                  dd dk  ree!z  Zdedej6                  fdZ#y)    N   )includesLoop)__version__)new_event_looprun.__all___Tc                       e Zd Zy)r   N)__name__
__module____qualname__     X/var/www/html/treecensus/species_ai/venv/lib/python3.12/site-packages/uvloop/__init__.pyr   r      s    r   r   returnc                      t               S )zReturn a new event loop.r   r   r   r   r   r      s	    6Mr   loop_factorydebugmainr   r   c                     y)5The preferred way of running a coroutine with uvloop.Nr   )r   r   r   s      r   r	   r	      s    r   c                      fd}t         j                  dd }|dk  rt        j                         t	        d      t        j
                         st        dj                                |       }	 t        j                  |       ||j                  |       |j                   |             	 t        |       |j                  |j                                t        |d      r|j                  |j                                t        j                  d       |j                          S |dk(  rWt        j                         t	        d      t        j                   d||d	|5 }|j#                   |             cddd       S |d
k\  sJ t        j"                   |       f||d	|S # t        j                  d       |j                          w xY w# 	 t        |       |j                  |j                                t        |d      r|j                  |j                                t        j                  d       |j                          w # t        j                  d       |j                          w xY wxY w# 1 sw Y   yxY w)r   c                     K   t        j                         } t        | t              st	        d       d {   S 7 w)Nz)uvloop.run() uses a non-uvloop event loop)	__asyncio_get_running_loop
isinstancer   	TypeError)loopr   s    r   wrapperzrun.<locals>.wrapper)   s7      ..0DdD) KLL::s   5?=?N   )   
   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!   runners   `       r   r	   r	   &   s\   	 r"= **,8"NP P ((. 8??E   >D!((.$NN5)..wy9	!%d+++D,C,C,EFt%@A// ::< ,,T2JJL7]**,8"NP P !! )  - zz'),- - = ===	) 	 # ,,T2JJL	!%d+++D,C,C,EFt%@A// ::< ,,T2JJL ,,T2JJL- -s>   6=G 4AF0+J0'GJAI1&J'I>>JJr!   c                 B   t        j                  |       }|sy |D ]  }|j                           | j                  t        j                  |ddi       |D ]G  }|j                         r|j                         %| j                  d|j                         |d       I y )Nreturn_exceptionsTz1unhandled exception during asyncio.run() shutdown)message	exceptiontask)r   	all_taskscancelr2   gather	cancelledr>   call_exception_handler)r!   	to_cancelr?   s      r   r3   r3   h   s     ##D)I  	)<t<  >>>>'''N!^^-) 	r   )installEventLoopPolicyr#   r$      namec                    | t         vrt        d|  d      t        j                  d d dk\  rt        d|  d      dd ldfd} G fdd	t        t        d
            |t               d<   t               d	<   t               |    S )Nz"module 'uvloop' has no attribute ''r#   rH   z;' (it was removed in Python 3.16, use uvloop.run() instead)r   c                      t         j                  dd dk\  rt        j                  dt        d       t        j                                  y)zA 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_policy)rG   s   r   rF   z__getattr__.<locals>.install   sD     Ra G+NN-"	 	''(9:r   c                      e Zd ZdZdefdZej                  r,dej                  fdZ	dej                  dej                  fdZ G d dW  j                        Zdd
Zdef fdZdej"                  e   dd	fdZdefdZy	)$__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                     t               S N)r   selfs    r   _loop_factoryz2__getattr__.<locals>.EventLoopPolicy._loop_factory   s    !##r   c                      y rV   r   rW   s    r   get_child_watcherz6__getattr__.<locals>.EventLoopPolicy.get_child_watcher   s    r   watcherc                      y rV   r   )rX   r\   s     r   set_child_watcherz6__getattr__.<locals>.EventLoopPolicy.set_child_watcher   s     r   c                   6    e Zd ZU dZej
                  e   ed<   y)+__getattr__.<locals>.EventLoopPolicy._LocalN_loop)r   r   r   ra   _typingOptional_AbstractEventLoop__annotations__r   r   r   _Localr`      s    :>E7##$67>r   rf   Nc                 .    | j                         | _        y rV   )rf   _localrW   s    r   __init__z-__getattr__.<locals>.EventLoopPolicy.__init__   s    ++-DKr   c                     | j                   j                  &t        dj                         j                  z        | j                   j                  S )z~Get the event loop for the current context.

            Returns an instance of EventLoop or raises an exception.
            z,There is no current event loop in thread %r.)rh   ra   r,   current_threadrJ   )rX   	threadings    r   get_event_loopz3__getattr__.<locals>.EventLoopPolicy.get_event_loop   sN    
 {{  ("B..0556 
 ;;$$$r   r!   c                     |2t        |t              s"t        dt        |      j                   d      || j
                  _        y)zSet the event loop.Nz<loop must be an instance of AbstractEventLoop or None, not 'rL   )r   rd   r    typer   rh   ra   )rX   r!   s     r   r0   z3__getattr__.<locals>.EventLoopPolicy.set_event_loop   sK     
49K(L J//03  !%DKKr   c                 "    | j                         S )zvCreate a new event loop.

            You must call set_event_loop() to make this the current event loop.
            )rY   rW   s    r   r   z3__getattr__.<locals>.EventLoopPolicy.new_event_loop   s    
 %%''r   r   N)r   r   r   __doc__r   rY   rb   TYPE_CHECKINGNoReturnr[   Anyr^   localrf   ri   rd   rm   rc   r0   r   )rl   s   r   rG   rT      s    
		$4 	$   
7+;+; &{{!!
	?Y__ 	?	(	%$6 	%		%(();<		%		%	(D 	(r   rG   AbstractEventLoopPolicyrF   rq   )_deprecated_namesAttributeErrorr*   r+   rl   getattrr   globals)rJ   rF   rG   rl   s     @@r   __getattr__r|      s    $$A$qIJJ			2A	'	)0 7H I
 	

 ;C(	45C(J #GIi#2GI 9T?r   )$asyncior   typingrb   sysr*   warningsrO    r   
__includesr!   r   
__BaseLoop_versionr   r
   Tuplestrre   AbstractEventLooprd   TypeVarr   r   rs   	Coroutineru   rc   Callableboolr	   r3   rx   r+   r|   r   r   r   <module>r      sV       $ $ ! $=sCx	  <00  W__T	:) 	 
  &*DW[[" <=D &&RX&
D %D 
D #1 ?D. 4 2 3  Ra7"  Gac agkk ar   