Ë
    ð%9j+  ã                   óP   — d dl Z d dlZd dlmZ d dlmZ d dlmZmZ  G d„ d«      Zy)é    N)ÚTracebackType)ÚAny)ÚOptionalÚTypec            	       óô   — e Zd ZdZddœd ee   deej                     ddfd„Zdd„Z	de
e   d	ed
edee   fd„Zdd„Zde
e   d	ed
eddfd„Zedefd„«       Zedee   fd„«       Zdd„Zde
e   ddfd„Zdd„Zy)Útimeouta—  timeout 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:

    >>> with timeout(0.001):
    ...     async with aiohttp.get('https://github.com') as r:
    ...         await r.text()


    timeout - value in seconds or None to disable timeout logic
    loop - asyncio compatible event loop
    N)Úloopr	   Úreturnc                óº   — || _         |€t        j                  «       }nt        j                  dt
        «       || _        d | _        d| _        d | _	        d | _
        y )Nz-The loop argument to timeout() is deprecated.F)Ú_timeoutÚasyncioÚget_running_loopÚwarningsÚwarnÚDeprecationWarningÚ_loopÚ_taskÚ
_cancelledÚ_cancel_handlerÚ
_cancel_at)Úselfr   r	   s      úK/var/www/html/truck-me/venv/lib/python3.12/site-packages/asgiref/timeout.pyÚ__init__ztimeout.__init__   sV   € ð  ˆŒØˆ<Ü×+Ñ+Ó-‰Dä�M‰MØCÔEWôð ˆŒ
ØˆŒ
ØˆŒØ#ˆÔØˆ�ó    c                 ó"   — | j                  «       S ©N©Ú	_do_enter©r   s    r   Ú	__enter__ztimeout.__enter__2   s   € Ø�~‰~ÓÐr   Úexc_typeÚexc_valÚexc_tbc                 ó&   — | j                  |«       y r   ©Ú_do_exit©r   r!   r"   r#   s       r   Ú__exit__ztimeout.__exit__5   s   € ð 	�‰�hÔØr   c              ƒ   ó*   K  — | j                  «       S ­wr   r   r   s    r   Ú
__aenter__ztimeout.__aenter__>   s   è ø€ Ø�~‰~ÓÐùs   ‚c              ƒ   ó.   K  — | j                  |«       y ­wr   r%   r'   s       r   Ú	__aexit__ztimeout.__aexit__A   s   è ø€ ð 	�‰�hÕùs   ‚c                 ó   — | j                   S r   )r   r   s    r   Úexpiredztimeout.expiredI   s   € à�‰Ðr   c                 ó~   — | j                   �1t        | j                   | j                  j                  «       z
  d«      S y )Ng        )r   Úmaxr   Útimer   s    r   Ú	remainingztimeout.remainingM   s0   € à�?‰?Ð&Ü�t—‘¨¯©¯©Ó):Ñ:¸CÓ@Ð@àr   c                 óÆ  — | j                   €| S t        j                  | j                  «      | _        | j                  €t        d«      ‚| j                   dk  r'| j                  j                  | j                  «       | S | j                  j                  «       | j                   z   | _	        | j                  j                  | j                  | j                  «      | _        | S )Nz4Timeout context manager should be used inside a taskr   )r   r   Úcurrent_taskr   r   ÚRuntimeErrorÚ	call_soonÚ_cancel_taskr1   r   Úcall_atr   r   s    r   r   ztimeout._do_enterT   s±   € ð �=‰=Ð ØˆKä×)Ñ)¨$¯*©*Ó5ˆŒ
Ø�:‰:ÐÜØIóð ð �=‰=˜AÒØ�J‰J× Ñ  ×!2Ñ!2Ô3ØˆKàŸ*™*Ÿ/™/Ó+¨d¯m©mÑ;ˆŒØ#Ÿz™z×1Ñ1°$·/±/À4×CTÑCTÓUˆÔØˆr   c                 óü   — |t         j                  u r*| j                  rd | _        d | _        t         j
                  ‚| j                  �-| j                  �!| j                  j                  «        d | _        d | _        y r   )r   ÚCancelledErrorr   r   r   ÚTimeoutErrorr   Úcancel)r   r!   s     r   r&   ztimeout._do_exith   sj   € Ø”w×-Ñ-Ñ-°$·/²/Ø#'ˆDÔ ØˆDŒJÜ×&Ñ&Ð&Ø�=‰=Ð$¨×)=Ñ)=Ð)IØ× Ñ ×'Ñ'Ô)Ø#'ˆDÔ ØˆŒ
Ør   c                 ó`   — | j                   �"| j                   j                  «        d| _        y y )NT)r   r<   r   r   s    r   r7   ztimeout._cancel_tasks   s(   € Ø�:‰:Ð!Ø�J‰J×ÑÔØ"ˆD�Oð "r   )r
   r   )r
   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úfloatr   ÚAbstractEventLoopr   r    r   ÚBaseExceptionr   Úboolr(   r*   r,   Úpropertyr.   r2   r   r&   r7   © r   r   r   r      s  „ ñð$ 59ò	à˜%‘ðð �w×0Ñ0Ñ1ð	ð
 
óó& ðà�}Ñ%ðð ðð ð	ð
 
�$‰óó ð à�}Ñ%ð ð ð ð ð	 ð
 
ó ð ð˜ò ó ðð ð˜8 E™?ò ó ðóð(	  mÑ!4ð 	¸ó 	ô#r   r   )	r   r   Útypesr   Útypingr   r   r   r   rG   r   r   ú<module>rJ      s"   ðó Û Ý Ý ß !÷f#ò f#r   