Your IP : 3.135.208.236


Current Path : /opt/alt/python312/lib64/python3.12/asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/asyncio/__pycache__/timeouts.cpython-312.pyc

�

�Q�f�����ddlZddlmZddlmZmZmZddlmZddlm	Z	ddlm
Z
dZGd	�d
ej�Z
eGd�d��Zd
eedefd�Zdeedefd�Zy)�N)�
TracebackType)�final�Optional�Type�)�events)�
exceptions)�tasks)�Timeout�timeout�
timeout_atc� �eZdZdZdZdZdZdZy)�_State�created�active�expiring�expired�finishedN)�__name__�
__module__�__qualname__�CREATED�ENTERED�EXPIRING�EXPIRED�EXITED���7/opt/alt/python312/lib64/python3.12/asyncio/timeouts.pyrrs���G��G��H��G�
�Frrc	��eZdZdZdeeddfd�Zdeefd�Zdeeddfd�Zde	fd�Z
defd	�Zdd
�Z
deeedeed
eedee	fd�Zdd�Zy)rz�Asynchronous context manager for cancelling overdue coroutines.

    Use `timeout()` or `timeout_at()` rather than instantiating this class directly.
    �when�returnNc�X�tj|_d|_d|_||_y)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)rr�_state�_timeout_handler�_task�_when)�selfr!s  r�__init__zTimeout.__init__!s%���n�n���>B���+/��
���
rc��|jS)zReturn the current deadline.)r'�r(s rr!zTimeout.when.s���z�z�rc��|jtjurJ|jtjurt	d��t	d|jj
�d���||_|j�|jj�|�d|_ytj�}||j�kr!|j|j�|_y|j||j�|_y)zReschedule the timeout.zTimeout has not been enteredzCannot change state of z TimeoutN)r$rrr�RuntimeError�valuer'r%�cancelr�get_running_loop�time�	call_soon�_on_timeout�call_at)r(r!�loops   r�
reschedulezTimeout.reschedule2s����;�;�f�n�n�,��{�{�f�n�n�,�"�#A�B�B��)�$�+�+�*;�*;�)<�H�E��
���
�� � �,��!�!�(�(�*��<�$(�D�!��*�*�,�D��t�y�y�{�"�(,���t�7G�7G�(H��%�(,���T�4�;K�;K�(L��%rc�Z�|jtjtjfvS)z$Is timeout expired during execution?)r$rrrr+s rrzTimeout.expiredIs���{�{�v������?�?�?rc��dg}|jtjur8|j�t	|jd�nd}|jd|���dj
|�}d|jj�d|�d�S)N��zwhen=� z
<Timeout [�]�>)r$rrr'�round�append�joinr.)r(�infor!�info_strs    r�__repr__zTimeout.__repr__Mss���t���;�;�&�.�.�(�+/�:�:�+A�5����Q�'�t�D��K�K�%��v��'��8�8�D�>���D�K�K�-�-�.�a��z��;�;rc��JK�|jtjurtd��t	j
�}|�td��tj|_||_|jj�|_	|j|j�|S�w)Nz Timeout has already been enteredz$Timeout should be used inside a task)r$rrr-r
�current_taskrr&�
cancelling�_cancellingr6r')r(�tasks  r�
__aenter__zTimeout.__aenter__Us}�����;�;�f�n�n�,��A�B�B��!�!�#���<��E�F�F��n�n�����
��:�:�0�0�2�������
�
�#���s�B!B#�exc_type�exc_val�exc_tbc��K�|jtjtjfvsJ�|j�!|jj�d|_|jtjurVtj|_|jj�|jkr|tjurt|�y|jtjurtj|_y�w�N)r$rrrr%r/rr&�uncancelrGr	�CancelledError�TimeoutErrorr)r(rJrKrLs    r�	__aexit__zTimeout.__aexit__as������{�{�v�~�~�v���?�?�?�?�� � �,��!�!�(�(�*�$(�D�!��;�;�&�/�/�)� �.�.�D�K��z�z�"�"�$��(8�(8�8�X��Ib�Ib�=b�#��/���[�[�F�N�N�
*� �-�-�D�K��s�DDc��|jtjusJ�|jj	�tj
|_d|_yrN)r$rrr&r/rr%r+s rr3zTimeout._on_timeoutys;���{�{�f�n�n�,�,�,��
�
�����o�o��� $��r)r"r)r"N)rrr�__doc__r�floatr)r!r6�boolr�strrCrIr�
BaseExceptionrrRr3rrrrrs����
�X�e�_�����h�u�o��M�x���M�4�M�.@��@�<�#�<�
���4�
�.�/���-�(����'�	�

�$���0%rr�delayr"c�r�tj�}t|�|j�|z�Sd�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)rr0rr1)rYr5s  rrr�s5�� �"�"�$�D��%�*;�4�9�9�;��&�F�F��F�Frr!c��t|�S)abSchedule 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 rr
r
�s��&�4�=�r)�enum�typesr�typingrrrr9rr	r
�__all__�EnumrrrUrr
rrr�<module>ras����(�(�������T�Y�Y���c%�c%��c%�LG�8�E�?�G�w�G�(�X�e�_���r

?>