
    RPfq'                       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
 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mZmZ ej6                  d	k\  r	d d
lmZmZ nd d
lmZmZ erFd dlmZ ddl 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,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7  ed      Z8 ed      Z9 G d de      Z:y)    )annotationsN)ABCMetaabstractmethod)AsyncIterator	AwaitableMapping)PathLike)Signals)AddressFamily
SocketKindsocket)IOTYPE_CHECKINGAnyCallableContextManagerSequenceTypeVaroverload)      )TypeVarTupleUnpack)Literal   )CapacityLimiterEvent)CancelScope)TaskInfo)BlockingPortal   )ConnectedUDPSocketConnectedUNIXDatagramSocketIPSockAddrTypeSocketListenerSocketStream	UDPSocketUNIXDatagramSocketUNIXSocketStream)Process)	TaskGroup)
TestRunnerT_RetvalPosArgsTc                     e Zd Zee	 	 	 	 	 	 	 	 	 	 d/d              Zeed0d              Zeed1d              Zeed2d              Zeed3d              Z	ed3d       Z
ed3d       Zeed4d              Zeeej                  d	d
	 	 	 	 	 d5d              Zeed1d              Zeed6d              Zeed7d              Zeed8d              Zee	 	 d9	 	 	 	 	 	 	 	 	 d:d              Zeed3d              Zee	 	 	 	 	 	 	 	 d;d              Zee	 	 	 	 	 	 	 	 d<d              Zeed=d              Zeeddd	d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d>d              Zeeddd	d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d?d              Zeeddd	d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d@d              ZeedAd              Zee	 dB	 	 	 	 	 	 	 dCd              ZeedDd              ZeedEd              ZeedEd              Zee	 	 	 	 	 	 	 	 	 	 dFd              Z ee	 	 	 	 	 	 dGd               Z!ee	 	 	 	 	 	 dHd!              Z!ee	 	 	 	 	 	 dId"              Z!eed#d#d#d#d$	 	 	 	 	 	 	 	 	 	 	 	 	 dJd%              Z"ee	 dK	 	 	 	 	 dLd&              Z#eedMd'              Z$eedMd(              Z%eedNd)              Z&ee	 	 	 	 dOd*              Z'eedPd+              Z(eedQd,              Z)eed3d-              Z*eedRd.              Z+y)S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        N/var/www/fastapitest/venv/lib/python3.12/site-packages/anyio/abc/_eventloop.pyrunzAsyncBackend.run4           c                     y)z

        :return:
        Nr2   r3   s    r8   current_tokenzAsyncBackend.current_tokenJ   r:   r;   c                     y)zz
        Return the current value of the event loop's internal clock.

        :return: the clock value (seconds)
        Nr2   r=   s    r8   current_timezAsyncBackend.current_timeR   r:   r;   c                     y)zFReturn the exception class that is raised in a task if it's cancelled.Nr2   r=   s    r8   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`.
        Nr2   r=   s    r8   
checkpointzAsyncBackend.checkpoint`           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infrD   r=   s    r8   checkpoint_if_cancelledz$AsyncBackend.checkpoint_if_cancelledj   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    r8   cancel_shielded_checkpointz'AsyncBackend.cancel_shielded_checkpointv   sG      $$D$1 	))A,	 		 	s$   A:8:	A:AAc                   K   yw)zt
        Pause the current task for the specified duration.

        :param delay: the duration, in seconds
        Nr2   )r3   delays     r8   rO   zAsyncBackend.sleep   rE   rF   F)deadlinerM   c                    y Nr2   )r3   rS   rM   s      r8   rN   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
        Nr2   r=   s    r8   rH   z'AsyncBackend.current_effective_deadline   r:   r;   c                     y rU   r2   r=   s    r8   create_task_groupzAsyncBackend.create_task_group        	r;   c                     y rU   r2   r=   s    r8   create_eventzAsyncBackend.create_event   rZ   r;   c                     y rU   r2   )r3   total_tokenss     r8   create_capacity_limiterz$AsyncBackend.create_capacity_limiter   rZ   r;   Nc                   K   y wrU   r2   )r3   r4   r5   abandon_on_cancellimiters        r8   run_sync_in_worker_threadz&AsyncBackend.run_sync_in_worker_thread         	rF   c                     y rU   r2   r=   s    r8   check_cancelledzAsyncBackend.check_cancelled   rZ   r;   c                     y rU   r2   r3   r4   r5   tokens       r8   run_async_from_threadz"AsyncBackend.run_async_from_thread        	r;   c                     y rU   r2   rh   s       r8   run_sync_from_threadz!AsyncBackend.run_sync_from_thread   rk   r;   c                     y rU   r2   r=   s    r8   create_blocking_portalz#AsyncBackend.create_blocking_portal   rZ   r;   )cwdenvstart_new_sessionc                  K   y wrU   r2   	r3   commandshellstdinstdoutstderrrp   rq   rr   s	            r8   open_processzAsyncBackend.open_process         	rF   c                  K   y wrU   r2   rt   s	            r8   rz   zAsyncBackend.open_process   r{   rF   c                  K   y wrU   r2   rt   s	            r8   rz   zAsyncBackend.open_process   r{   rF   c                     y rU   r2   )r3   workerss     r8   #setup_process_pool_exit_at_shutdownz0AsyncBackend.setup_process_pool_exit_at_shutdown  rZ   r;   c                   K   y wrU   r2   )r3   hostportlocal_addresss       r8   connect_tcpzAsyncBackend.connect_tcp       
 	rF   c                   K   y wrU   r2   )r3   paths     r8   connect_unixzAsyncBackend.connect_unix        	rF   c                     y rU   r2   r3   socks     r8   create_tcp_listenerz AsyncBackend.create_tcp_listener  rZ   r;   c                     y rU   r2   r   s     r8   create_unix_listenerz!AsyncBackend.create_unix_listener  rZ   r;   c                   K   y wrU   r2   )r3   familyr   remote_address
reuse_ports        r8   create_udp_socketzAsyncBackend.create_udp_socket#  rd   rF   c                   K   y wrU   r2   r3   
raw_socketremote_paths      r8   create_unix_datagram_socketz(AsyncBackend.create_unix_datagram_socket.       
 	rF   c                   K   y wrU   r2   r   s      r8   r   z(AsyncBackend.create_unix_datagram_socket5  r   rF   c                   K   y wrU   r2   r   s      r8   r   z(AsyncBackend.create_unix_datagram_socket<  r   rF   r   )r   typeprotoflagsc                  K   y wrU   r2   )r3   r   r   r   r   r   r   s          r8   getaddrinfozAsyncBackend.getaddrinfoC  s     ( 	rF   c                   K   y wrU   r2   )r3   sockaddrr   s      r8   getnameinfozAsyncBackend.getnameinfoY  r   rF   c                   K   y wrU   r2   r   s     r8   wait_socket_readablez!AsyncBackend.wait_socket_readable`  r   rF   c                   K   y wrU   r2   r   s     r8   wait_socket_writablez!AsyncBackend.wait_socket_writablee  r   rF   c                     y rU   r2   r=   s    r8   current_default_thread_limiterz+AsyncBackend.current_default_thread_limiterj  rZ   r;   c                     y rU   r2   )r3   signalss     r8   open_signal_receiverz!AsyncBackend.open_signal_receivero  rV   r;   c                     y rU   r2   r=   s    r8   get_current_taskzAsyncBackend.get_current_taskv  rZ   r;   c                     y rU   r2   r=   s    r8   get_running_taskszAsyncBackend.get_running_tasks{  rZ   r;   c                   K   y wrU   r2   r=   s    r8   wait_all_tasks_blockedz#AsyncBackend.wait_all_tasks_blocked  r   rF   c                     y rU   r2   )r3   r7   s     r8   create_test_runnerzAsyncBackend.create_test_runner  rZ   r;   )
r4   1Callable[[Unpack[PosArgsT]], Awaitable[T_Retval]]r5   tuple[Unpack[PosArgsT]]r6   dict[str, Any]r7   r   returnr-   )r   object)r   float)r   ztype[BaseException])r   None)rR   r   r   r   )rS   r   rM   boolr   r   )r   r+   )r   r   )r^   r   r   r   )FN)
r4   &Callable[[Unpack[PosArgsT]], T_Retval]r5   r   ra   r   rb   zCapacityLimiter | Noner   r-   )r4   r   r5   r   ri   r   r   r-   )r4   r   r5   r   ri   r   r   r-   )r   r    )ru   str | bytesrv   zLiteral[True]rw   int | IO[Any] | Nonerx   r   ry   r   rp   "str | bytes | PathLike[str] | Nonerq   Mapping[str, str] | Nonerr   r   r   r*   )ru   zSequence[str | bytes]rv   zLiteral[False]rw   r   rx   r   ry   r   rp   r   rq   r   rr   r   r   r*   )ru   z#str | bytes | Sequence[str | bytes]rv   r   rw   r   rx   r   ry   r   rp   r   rq   r   rr   r   r   r*   )r   zset[Process]r   r   rU   )r   strr   intr   IPSockAddrType | Noner   r&   )r   r   r   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   z]list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]])r   )r   r$   r   r   r   ztuple[str, str])r   r   r   r   )r   r   )r   r
   r   z&ContextManager[AsyncIterator[Signals]])r   r   )r   zlist[TaskInfo])r7   r   r   r,   ),__name__
__module____qualname__classmethodr   r9   r>   r@   rB   rD   rK   rP   rO   rI   rJ   rN   rH   rY   r\   r_   rc   rf   rj   rm   ro   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r2   r;   r8   r0   r0   3   sh   ? & 	
   
  (       U  U    	# 	# 	 	    "&((548	  
 
  
          
 #(*.4 &  	
 ( 
      ? & 	
 
   4 & 	
 
       37(,"' 	
 $ % % 0 &   
    37(,"'& 	
 $ % % 0 &   
    37(,"'4 	
 $ % % 0 &   
      JN!2G	  
           - .	
  
(   .2	  
 .9	$  
 .@	9  
  '(!"  
 $   
  ( 45%.1	  
          	/  
            r;   r0   )	metaclass);
__future__r   rI   sysabcr   r   collections.abcr   r   r   osr	   signalr
   r   r   r   typingr   r   r   r   r   r   r   r   version_infor   r   typing_extensionsr   _core._synchronizationr   r   _core._tasksr   _core._testingr   from_threadr    _socketsr"   r#   r$   r%   r&   r'   r(   r)   _subprocessesr*   _tasksr+   _testingr,   r-   r.   r0   r2   r;   r8   <module>r      s    "  
 ' = =   4 4	 	 	 w++6?*),	 	 	 '!$:
#UW Ur;   