Ë
    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;   