
    Qi)                       U 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	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZmZmZ d d	lmZmZmZmZmZmZ ej8                  d
k\  r	d dlmZmZ nd dlmZmZ erDd dl m!Z! ddl"m#Z#m$Z$m%Z%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9  ed      Z: ed      Z;e<e=z  ee<   z  ee=   z  Z>de?d<    G d de      Z@y)    )annotationsN)ABCMetaabstractmethod)AsyncIterator	AwaitableCallableSequence)AbstractContextManager)PathLike)Signals)AddressFamily
SocketKindsocket)IOTYPE_CHECKINGAny	TypeAliasTypeVaroverload)      )TypeVarTupleUnpack)FileDescriptorLike   )CapacityLimiterEventLock	Semaphore)CancelScope)TaskInfo   )ConnectedUDPSocketConnectedUNIXDatagramSocketIPSockAddrTypeSocketListenerSocketStream	UDPSocketUNIXDatagramSocketUNIXSocketStream)Process)	TaskGroup)
TestRunnerT_RetvalPosArgsTr   StrOrBytesPathc                  J   e Zd Zee	 	 	 	 	 	 	 	 	 	 d6d              Zeed7d              Zeed8d              Zeed9d              Zeed:d              Z	ed:d       Z
ed:d       Zeed;d              Zeeej                  d	d
	 	 	 	 	 d<d              Zeed8d              Zeed=d              Zeed>d              Zeed?d              Zeedd	d	 	 	 	 	 	 	 d@d              ZeedAd              Zee	 	 dB	 	 	 	 	 	 	 	 	 dCd              Zeed:d              Zee	 	 	 	 	 	 	 	 dDd              Zee	 	 	 	 	 	 	 	 dEd              Zee	 	 	 	 	 	 	 	 	 	 	 	 dFd              ZeedGd              Zee	 dH	 	 	 	 	 	 	 dId              ZeedJd              ZeedKd              ZeedKd              Zee	 	 	 	 	 	 	 	 	 	 dLd              Z ee!	 	 	 	 	 	 dMd              Z"ee!	 	 	 	 	 	 dNd               Z"ee	 	 	 	 	 	 dOd!              Z"eed"d"d"d"d#	 	 	 	 	 	 	 	 	 	 	 	 	 dPd$              Z#ee	 dQ	 	 	 	 	 dRd%              Z$eedSd&              Z%eedSd'              Z&eedSd(              Z'eedKd)              Z(eedTd*              Z)eedUd+              Z*eedVd,              Z+eedWd-              Z,eedXd.              Z-ee	 	 	 	 dYd/              Z.eedZd0              Z/ee	 	 	 	 d[d1              Z0eed\d2              Z1eed]d3              Z2eed:d4              Z3eed^d5              Z4y)_AsyncBackendc                     y)a  
        Run the given coroutine function in an asynchronous event loop.

        The current thread must not be already running an event loop.

        :param func: a coroutine function
        :param args: positional arguments to ``func``
        :param kwargs: positional arguments to ``func``
        :param options: keyword arguments to call the backend ``run()`` implementation
            with
        :return: the return value of the coroutine function
        N )clsfuncargskwargsoptionss        ?/app/.venv/lib/python3.12/site-packages/anyio/abc/_eventloop.pyrunzAsyncBackend.run3           c                     y)z
        Return an object that allows other threads to run code inside the event loop.

        :return: a token object, specific to the event loop running in the current
            thread
        Nr4   r5   s    r:   current_tokenzAsyncBackend.current_tokenI   r<   r=   c                     y)zz
        Return the current value of the event loop's internal clock.

        :return: the clock value (seconds)
        Nr4   r?   s    r:   current_timezAsyncBackend.current_timeS   r<   r=   c                     y)zFReturn the exception class that is raised in a task if it's cancelled.Nr4   r?   s    r:   cancelled_exception_classz&AsyncBackend.cancelled_exception_class\   r<   r=   c                   K   yw)z
        Check if the task has been cancelled, and allow rescheduling of other tasks.

        This is effectively the same as running :meth:`checkpoint_if_cancelled` and then
        :meth:`cancel_shielded_checkpoint`.
        Nr4   r?   s    r:   
checkpointzAsyncBackend.checkpointa           c                   K   | j                         t        j                   k(  r| j                          d{    yy7 w)z
        Check if the current task group has been cancelled.

        This will check if the task has been cancelled, but will not allow other tasks
        to be scheduled if not.

        N)current_effective_deadlinemathinfrF   r?   s    r:   checkpoint_if_cancelledz$AsyncBackend.checkpoint_if_cancelledk   s7      ))+y8..""" 9"s   6A?Ac                   K   | j                  d      5  | j                  d       d{    ddd       y7 # 1 sw Y   yxY ww)z
        Allow the rescheduling of other tasks.

        This will give other tasks the opportunity to run, but without checking if the
        current task group has been cancelled, unlike with :meth:`checkpoint`.

        T)shieldr   N)create_cancel_scopesleepr?   s    r:   cancel_shielded_checkpointz'AsyncBackend.cancel_shielded_checkpointw   s>      $$D$1))A, 21 21s$   A:8:	A:AAc                   K   yw)zt
        Pause the current task for the specified duration.

        :param delay: the duration, in seconds
        Nr4   )r5   delays     r:   rQ   zAsyncBackend.sleep   rG   rH   F)deadlinerO   c                    y Nr4   )r5   rU   rO   s      r:   rP   z AsyncBackend.create_cancel_scope       
 	r=   c                     y)aQ  
        Return the nearest deadline among all the cancel scopes effective for the
        current task.

        :return:
            - a clock value from the event loop's internal clock
            - ``inf`` if there is no deadline in effect
            - ``-inf`` if the current scope has been cancelled
        :rtype: float
        Nr4   r?   s    r:   rJ   z'AsyncBackend.current_effective_deadline   r<   r=   c                     y rW   r4   r?   s    r:   create_task_groupzAsyncBackend.create_task_group        	r=   c                     y rW   r4   r?   s    r:   create_eventzAsyncBackend.create_event   r\   r=   c                    y rW   r4   )r5   fast_acquires     r:   create_lockzAsyncBackend.create_lock   r\   r=   N)	max_valuer`   c                    y rW   r4   )r5   initial_valuerb   r`   s       r:   create_semaphorezAsyncBackend.create_semaphore   s     	r=   c                     y rW   r4   )r5   total_tokenss     r:   create_capacity_limiterz$AsyncBackend.create_capacity_limiter   r\   r=   c                   K   y wrW   r4   )r5   r6   r7   abandon_on_cancellimiters        r:   run_sync_in_worker_threadz&AsyncBackend.run_sync_in_worker_thread         	rH   c                     y rW   r4   r?   s    r:   check_cancelledzAsyncBackend.check_cancelled   r\   r=   c                     y rW   r4   r5   r6   r7   tokens       r:   run_async_from_threadz"AsyncBackend.run_async_from_thread        	r=   c                     y rW   r4   rq   s       r:   run_sync_from_threadz!AsyncBackend.run_sync_from_thread   rt   r=   c                  K   y wrW   r4   )r5   commandstdinstdoutstderrr8   s         r:   open_processzAsyncBackend.open_process   s      	rH   c                     y rW   r4   )r5   workerss     r:   #setup_process_pool_exit_at_shutdownz0AsyncBackend.setup_process_pool_exit_at_shutdown   r\   r=   c                   K   y wrW   r4   )r5   hostportlocal_addresss       r:   connect_tcpzAsyncBackend.connect_tcp        
 	rH   c                   K   y wrW   r4   )r5   paths     r:   connect_unixzAsyncBackend.connect_unix         	rH   c                     y rW   r4   r5   socks     r:   create_tcp_listenerz AsyncBackend.create_tcp_listener  r\   r=   c                     y rW   r4   r   s     r:   create_unix_listenerz!AsyncBackend.create_unix_listener  r\   r=   c                   K   y wrW   r4   )r5   familyr   remote_address
reuse_ports        r:   create_udp_socketzAsyncBackend.create_udp_socket  rm   rH   c                   K   y wrW   r4   r5   
raw_socketremote_paths      r:   create_unix_datagram_socketz(AsyncBackend.create_unix_datagram_socket  s      !rH   c                   K   y wrW   r4   r   s      r:   r   z(AsyncBackend.create_unix_datagram_socket  s      '*rH   c                   K   y wrW   r4   r   s      r:   r   z(AsyncBackend.create_unix_datagram_socket#  r   rH   r   )r   typeprotoflagsc                  K   y wrW   r4   )r5   r   r   r   r   r   r   s          r:   getaddrinfozAsyncBackend.getaddrinfo*  s     ( 	rH   c                   K   y wrW   r4   )r5   sockaddrr   s      r:   getnameinfozAsyncBackend.getnameinfo@  r   rH   c                   K   y wrW   r4   r5   objs     r:   wait_readablezAsyncBackend.wait_readableG  r   rH   c                   K   y wrW   r4   r   s     r:   wait_writablezAsyncBackend.wait_writableL  r   rH   c                     y rW   r4   r   s     r:   notify_closingzAsyncBackend.notify_closingQ  r\   r=   c                   K   y wrW   r4   r   s     r:   wrap_listener_socketz!AsyncBackend.wrap_listener_socketV  r   rH   c                   K   y wrW   r4   r   s     r:   wrap_stream_socketzAsyncBackend.wrap_stream_socket[  r   rH   c                   K   y wrW   r4   r   s     r:   wrap_unix_stream_socketz$AsyncBackend.wrap_unix_stream_socket`  r   rH   c                   K   y wrW   r4   r   s     r:   wrap_udp_socketzAsyncBackend.wrap_udp_sockete  r   rH   c                   K   y wrW   r4   r   s     r:   wrap_connected_udp_socketz&AsyncBackend.wrap_connected_udp_socketj  r   rH   c                   K   y wrW   r4   r   s     r:   wrap_unix_datagram_socketz&AsyncBackend.wrap_unix_datagram_socketo  r   rH   c                   K   y wrW   r4   r   s     r:   #wrap_connected_unix_datagram_socketz0AsyncBackend.wrap_connected_unix_datagram_sockett  r   rH   c                     y rW   r4   r?   s    r:   current_default_thread_limiterz+AsyncBackend.current_default_thread_limiter{  r\   r=   c                     y rW   r4   )r5   signalss     r:   open_signal_receiverz!AsyncBackend.open_signal_receiver  rX   r=   c                     y rW   r4   r?   s    r:   get_current_taskzAsyncBackend.get_current_task  r\   r=   c                     y rW   r4   r?   s    r:   get_running_taskszAsyncBackend.get_running_tasks  r\   r=   c                   K   y wrW   r4   r?   s    r:   wait_all_tasks_blockedz#AsyncBackend.wait_all_tasks_blocked  r   rH   c                     y rW   r4   )r5   r9   s     r:   create_test_runnerzAsyncBackend.create_test_runner  r\   r=   )
r6   1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r7   tuple[Unpack[PosArgsT]]r8   dict[str, Any]r9   r   returnr.   )r   object)r   float)r   ztype[BaseException])r   None)rT   r   r   r   )rU   r   rO   boolr   r    )r   r,   )r   r   )r`   r   r   r   )rd   intrb   z
int | Noner`   r   r   r   )rg   r   r   r   )FN)
r6   &Callable[[Unpack[PosArgsT]], T_Retval]r7   r   rj   r   rk   zCapacityLimiter | Noner   r.   )r6   r   r7   r   rr   r   r   r.   )r6   r   r7   r   rr   r   r   r.   )rx   z)StrOrBytesPath | Sequence[StrOrBytesPath]ry   int | IO[Any] | Nonerz   r   r{   r   r8   r   r   r+   )r~   zset[Process]r   r   rW   )r   strr   r   r   IPSockAddrType | Noner   r'   )r   str | bytesr   r*   )r   r   r   r&   )
r   r   r   r   r   r   r   r   r   zUDPSocket | ConnectedUDPSocket)r   r   r   r   r   r)   )r   r   r   r   r   r$   )r   r   r   zstr | bytes | Noner   z0UNIXDatagramSocket | ConnectedUNIXDatagramSocket)r   zbytes | str | Noner   zstr | int | Noner   zint | AddressFamilyr   zint | SocketKindr   r   r   r   r   zuSequence[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int] | tuple[int, bytes]]])r   )r   r%   r   r   r   ztuple[str, str])r   r   r   r   )r   r   r   r'   )r   r   r   r*   )r   r   r   r(   )r   r   r   r#   )r   r   r   r)   )r   r   r   r$   )r   r   )r   r   r   z.AbstractContextManager[AsyncIterator[Signals]])r   r!   )r   zSequence[TaskInfo])r9   r   r   r-   )5__name__
__module____qualname__classmethodr   r;   r@   rB   rD   rF   rM   rR   rQ   rK   rL   rP   rJ   r[   r^   ra   re   rh   rl   ro   rs   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   r=   r:   r2   r2   2   s{   ? & 	
   
  (       U  U    	# 	# 	 	    "&((548	  
 
  
          
 !%" 	
  
      
 #(*.4 &  	
 ( 
      ? & 	
 
   4 & 	
 
   	:	 $		
 %	 %	 	 
	  	    JN!2G	  
           - .	
  
(   !!.2!	!  ! **.9*	$*  * .@	9  
  '(!"  
 $   
  ( 45%.1	  
                            	$  
    	7  
            r=   r2   )	metaclass)A
__future__r   rK   sysabcr   r   collections.abcr   r   r   r	   
contextlibr
   osr   signalr   r   r   r   typingr   r   r   r   r   r   version_infor   r   typing_extensions	_typeshedr   _core._synchronizationr   r   r   r   _core._tasksr    _core._testingr!   _socketsr#   r$   r%   r&   r'   r(   r)   r*   _subprocessesr+   _tasksr,   _testingr-   r.   r/   r   bytesr0   __annotations__r2   r4   r=   r:   <module>r      s    "  
 ' H H -   4 4  w++6,PP*)	 	 	 '!$:
#%K(3-7(5/I	 IgW gr=   