§
    ’dîiÉ  ã                   óÞ   — d dl Z d dl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
 dZ G d	„ d
e j        ¦  «        Ze G d„ d¦  «        ¦   «         Zdee         defd„Zdee         defd„ZdS )é    N)ÚTracebackType)ÚfinalÚOptionalÚTypeé   )Úevents)Ú
exceptions)Útasks)ÚTimeoutÚtimeoutÚ
timeout_atc                   ó"   — e Zd ZdZdZdZdZdZdS )Ú_StateÚcreatedÚactiveÚexpiringÚexpiredÚfinishedN)Ú__name__Ú
__module__Ú__qualname__ÚCREATEDÚENTEREDÚEXPIRINGÚEXPIREDÚEXITED© ó    úe/home/div/.local/share/uv/python/cpython-3.11.15-linux-aarch64-gnu/lib/python3.11/asyncio/timeouts.pyr   r      s'   € € € € € Ø€GØ€GØ€HØ€GØ€F€F€Fr   r   c            	       óÞ   — e Zd ZdZdee         ddfd„Zdee         fd„Zdee         ddfd„Zde	fd„Z
defd	„Zdd
„Zdeee                  dee         dee         dee	         fd„Zdd„ZdS )r   zšAsynchronous context manager for cancelling overdue coroutines.

    Use `timeout()` or `timeout_at()` rather than instantiating this class directly.
    ÚwhenÚreturnNc                 óR   — t           j        | _        d| _        d| _        || _        dS )zòSchedule a timeout that will trigger at a given loop time.

        - If `when` is `None`, the timeout will never trigger.
        - If `when < loop.time()`, the timeout will trigger on the next
          iteration of the event loop.
        N)r   r   Ú_stateÚ_timeout_handlerÚ_taskÚ_when)Úselfr!   s     r   Ú__init__zTimeout.__init__!   s'   € õ ”nˆŒà>BˆÔØ+/ˆŒ
ØˆŒ
ˆ
ˆ
r   c                 ó   — | j         S )zReturn the current deadline.)r'   ©r(   s    r   r!   zTimeout.when.   s
   € àŒzÐr   c                 óæ  — | j         t          j        ur?| j         t          j        u rt	          d¦  «        ‚t	          d| j         j        › d�¦  «        ‚|| _        | j        �| j                             ¦   «          |€	d| _        dS t          j
        ¦   «         }||                     ¦   «         k    r!|                     | j        ¦  «        | _        dS |                     || j        ¦  «        | _        dS )zReschedule the timeout.zTimeout has not been enteredzCannot change state of z TimeoutN)r$   r   r   r   ÚRuntimeErrorÚvaluer'   r%   Úcancelr   Úget_running_loopÚtimeÚ	call_soonÚ_on_timeoutÚcall_at)r(   r!   Úloops      r   Ú
reschedulezTimeout.reschedule2   së   € àŒ;�fœnÐ,Ð,ØŒ{�fœnÐ,Ð,Ý"Ð#AÑBÔBÐBÝØE¨$¬+Ô*;ÐEÐEÐEñô ð ð ˆŒ
àÔ Ð,ØÔ!×(Ò(Ñ*Ô*Ð*àˆ<Ø$(ˆDÔ!Ð!Ð!åÔ*Ñ,Ô,ˆDØ�t—y’y‘{”{Ò"Ð"Ø(,¯ª°tÔ7GÑ(HÔ(H�Ô%Ð%Ð%à(,¯ª°T¸4Ô;KÑ(LÔ(L�Ô%Ð%Ð%r   c                 ó@   — | j         t          j        t          j        fv S )z$Is timeout expired during execution?)r$   r   r   r   r+   s    r   r   zTimeout.expiredI   s   € àŒ{�vœµ´Ð?Ð?Ð?r   c                 óê   — dg}| j         t          j        u r6| j        �t	          | j        d¦  «        nd }|                     d|› �¦  «         d                     |¦  «        }d| j         j        › d|› d�S )NÚ é   zwhen=Ú z
<Timeout [ú]Ú>)r$   r   r   r'   ÚroundÚappendÚjoinr.   )r(   Úinfor!   Úinfo_strs       r   Ú__repr__zTimeout.__repr__M   sz   € ØˆtˆØŒ;�&œ.Ð(Ð(Ø+/¬:Ð+A•5˜œ QÑ'Ô'Ð'ÀtˆDØ�KŠK˜ ˜˜Ñ'Ô'Ð'Ø—8’8˜D‘>”>ˆØ;˜DœKÔ-Ð;Ð;°Ð;Ð;Ð;Ð;r   c              ƒ   ó6  K  — | j         t          j        urt          d¦  «        ‚t	          j        ¦   «         }|€t          d¦  «        ‚t          j        | _         || _        | j                             ¦   «         | _	        |  
                    | j        ¦  «         | S )Nz Timeout has already been enteredz$Timeout should be used inside a task)r$   r   r   r-   r
   Úcurrent_taskr   r&   Ú
cancellingÚ_cancellingr6   r'   )r(   Útasks     r   Ú
__aenter__zTimeout.__aenter__U   s…   è è € ØŒ;�fœnÐ,Ð,ÝÐAÑBÔBÐBÝÔ!Ñ#Ô#ˆØˆ<ÝÐEÑFÔFÐFÝ”nˆŒØˆŒ
Øœ:×0Ò0Ñ2Ô2ˆÔØ�Š˜œ
Ñ#Ô#Ð#Øˆr   Úexc_typeÚexc_valÚexc_tbc              ƒ   óœ  K  — | j         t          j        t          j        fv sJ ‚| j        � | j                             ¦   «          d | _        | j         t          j        u rJt          j        | _         | j                             ¦   «         | j	        k    r|t          j        u rt          |‚n$| j         t          j        u rt          j        | _         d S ©N)r$   r   r   r   r%   r/   r   r&   ÚuncancelrG   r	   ÚCancelledErrorÚTimeoutErrorr   )r(   rJ   rK   rL   s       r   Ú	__aexit__zTimeout.__aexit__a   s³   è è € ð Œ{�vœ~­v¬Ð?Ð?Ð?Ð?Ð?àÔ Ð,ØÔ!×(Ò(Ñ*Ô*Ð*Ø$(ˆDÔ!àŒ;�&œ/Ð)Ð)Ý œ.ˆDŒKàŒz×"Ò"Ñ$Ô$¨Ô(8Ò8Ð8¸XÍÔIbÐ=bÐ=bõ #¨Ð/øØŒ[�FœNÐ*Ð*Ý œ-ˆDŒKàˆtr   c                 ó’   — | j         t          j        u sJ ‚| j                             ¦   «          t          j        | _         d | _        d S rN   )r$   r   r   r&   r/   r   r%   r+   s    r   r3   zTimeout._on_timeouty   sB   € ØŒ{�fœnÐ,Ð,Ð,Ð,ØŒ
×ÒÑÔÐÝ”oˆŒà $ˆÔÐÐr   )r"   r   )r"   N)r   r   r   Ú__doc__r   Úfloatr)   r!   r6   Úboolr   ÚstrrC   rI   r   ÚBaseExceptionr   rR   r3   r   r   r   r   r      sD  € € € € € ðð ð
˜X eœ_ð °ð ð ð ð ð�h˜u”oð ð ð ð ðM˜x¨œð M°4ð Mð Mð Mð Mð.@˜ð @ð @ð @ð @ð<˜#ð <ð <ð <ð <ð
ð 
ð 
ð 
ðà˜4 Ô.Ô/ðð ˜-Ô(ðð ˜Ô'ð	ð
 
�$Œðð ð ð ð0%ð %ð %ð %ð %ð %r   r   Údelayr"   c                 óx   — t          j        ¦   «         }t          | �|                     ¦   «         | z   nd¦  «        S )a	  Timeout async context manager.

    Useful in cases when you want to apply timeout logic around block
    of code or in cases when asyncio.wait_for is not suitable. For example:

    >>> async with asyncio.timeout(10):  # 10 seconds timeout
    ...     await long_running_task()


    delay - value in seconds or None to disable timeout logic

    long_running_task() is interrupted by raising asyncio.CancelledError,
    the top-most affected timeout() context manager converts CancelledError
    into TimeoutError.
    N)r   r0   r   r1   )rY   r5   s     r   r   r   �   s7   € õ  Ô"Ñ$Ô$€DÝ¨%Ð*;�4—9’9‘;”; Ñ&Ð&ÀÑFÔFÐFr   r!   c                 ó    — t          | ¦  «        S )ab  Schedule the timeout at absolute time.

    Like timeout() but argument gives absolute time in the same clock system
    as loop.time().

    Please note: it is not POSIX time but a time with
    undefined starting base, e.g. the time of the system power on.

    >>> async with asyncio.timeout_at(loop.time() + 10):
    ...     await long_running_task()


    when - a deadline when timeout occurs or None to disable timeout logic

    long_running_task() is interrupted by raising asyncio.CancelledError,
    the top-most affected timeout() context manager converts CancelledError
    into TimeoutError.
    )r   )r!   s    r   r   r   •   s   € õ& �4‰=Œ=Ðr   )ÚenumÚtypesr   Útypingr   r   r   r9   r   r	   r
   Ú__all__ÚEnumr   r   rU   r   r   r   r   r   ú<module>ra      s@  ðØ €€€à Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð€ðð ð ð ð ˆTŒYñ ô ð ð ðc%ð c%ð c%ð c%ð c%ñ c%ô c%ñ „ðc%ðLG�8˜E”?ð G wð Gð Gð Gð Gð(�X˜e”_ð ¨ð ð ð ð ð ð r   