� !A?h�����ddlZddlmZddlmZmZmZddlmZddlm Z ddlm Z dZ Gd �d ej ��Z eGd �d ����Zd eedefd�Zdeedefd�ZdS)�N)� TracebackType)�final�Optional�Type�)�events)� exceptions)�tasks)�Timeout�timeout� timeout_atc�"�eZdZdZdZdZdZdZdS)�_State�created�active�expiring�expired�finishedN)�__name__� __module__� __qualname__�CREATED�ENTERED�EXPIRING�EXPIRED�EXITED���=/opt/alt/python-internal/lib64/python3.11/asyncio/timeouts.pyrrs'�������G��G��H��G� �F�F�Frrc ���eZdZdZdeeddfd�Zdeefd�Zdeeddfd�Zde fd�Z de fd �Z dd �Z d eeed eed eedee fd�Zdd�ZdS)r z�Asynchronous context manager for cancelling overdue coroutines. Use `timeout()` or `timeout_at()` rather than instantiating this class directly. �when�returnNc�R�tj|_d|_d|_||_dS)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�� �>B���+/�� ��� � � rc��|jS)zReturn the current deadline.)r'�r(s rr!z Timeout.when.s ���z�rc���|jtjur?|jtjurt d���t d|jj�d����||_|j�|j���|� d|_dStj ��}||� ��kr!|� |j ��|_dS|�||j ��|_dS)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� ,� ,��{�f�n�,�,�"�#A�B�B�B��E�$�+�*;�E�E�E��� ��� � � � ,� � !� (� (� *� *� *� �<�$(�D� !� !� !��*�,�,�D��t�y�y�{�{�"�"�(,���t�7G�(H�(H��%�%�%�(,� � �T�4�;K�(L�(L��%�%�%rc�@�|jtjtjfvS)z$Is timeout expired during execution?)r$rrrr+s rrzTimeout.expiredIs���{�v����?�?�?rc���dg}|jtjur6|j�t |jd��nd}|�d|����d�|��}d|jj�d|�d�S)N��zwhen=� z )r$rrr'�round�append�joinr.)r(�infor!�info_strs r�__repr__zTimeout.__repr__Msz���t�� �;�&�.� (� (�+/�:�+A�5���Q�'�'�'�t�D� �K�K����� '� '� '��8�8�D�>�>��;�D�K�-�;�;��;�;�;�;rc��6K�|jtjurtd���t j��}|�td���tj|_||_|j���|_ |� |j ��|S)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� ,� ,��A�B�B� B��!�#�#�� �<��E�F�F� F��n�� ��� ��:�0�0�2�2��� ���� �#�#�#�� r�exc_type�exc_val�exc_tbc��ZK�|j� |j���d|_|jtjurJtj|_|j���|jkr|tj urt|�n$|jtj urtj |_dS�N)r%r/r$rrrr&�uncancelrGr �CancelledError� TimeoutErrorrr)r(rJrKrLs r� __aexit__zTimeout.__aexit__as����� � � ,� � !� (� (� *� *� *�$(�D� !� �;�&�/� )� )� �.�D�K��z�"�"�$�$��(8�8�8�X��Ib�=b�=b�#��/�� �[�F�N� *� *� �-�D�K��trc�h�|j���tj|_d|_dSrN)r&r/rrr$r%r+s rr3zTimeout._on_timeoutys-�� � �������o�� � $����r)r"r )r"N)rrr�__doc__r�floatr)r!r6�boolr�strrCrIr� BaseExceptionrrRr3rrrr r sD�������� �X�e�_� �� � � � ��h�u�o�����M�x���M�4�M�M�M�M�.@��@�@�@�@�<�#�<�<�<�<� � � � ���4� �.�/���-�(����'� � �$�� ����0%�%�%�%�%�%rr �delayr"c�x�tj��}t|�|���|znd��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)rr0r r1)rYr5s rr r �s7�� � "� $� $�D� �%�*;�4�9�9�;�;��&�&�� 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__�Enumrr rUr r rrr�ras@�� � � � �������(�(�(�(�(�(�(�(�(�(������������������� �������T�Y�����c%�c%�c%�c%�c%�c%�c%���c%�LG�8�E�?�G�w�G�G�G�G�(�X�e�_��������r