ó
    ªRj+  ã                   óP   • S SK r S SKrS SKJr  S SKJr  S SKJrJr   " S S5      rg)é    N)ÚTracebackType)ÚAny)ÚOptionalÚTypec            	       ó  • \ rS rSrSrSS.S \\   S\\R                     SS4S jjr	SS jr
S	\\   S
\S\S\\   4S jrSS jrS	\\   S
\S\SS4S jr\S\4S j5       r\S\\   4S j5       rSS jrS	\\   SS4S jrSS jrSrg)Útimeouté   aw  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                ó¼   • Xl         Uc  [        R                  " 5       nO[        R                  " S[
        5        X l        S U l        SU l        S U l	        S U l
        g )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      Ú;D:\diplom_project\venv\Lib\site-packages\asgiref/timeout.pyÚ__init__Útimeout.__init__   sR   € ð  ŒØ‰<Ü×+Ò+Ó-‰Dä�MŠMØCÔEWôð Œ
ØˆŒ
ØˆŒØ#ˆÔØˆ�ó    c                 ó"   • U R                  5       $ ©N©Ú	_do_enter©r   s    r   Ú	__enter__Útimeout.__enter__2   s   € Ø�~‰~ÓÐr   Úexc_typeÚexc_valÚexc_tbc                 ó&   • U R                  U5        g r   ©Ú_do_exit©r   r$   r%   r&   s       r   Ú__exit__Útimeout.__exit__5   s   € ð 	�‰�hÔØr   c              ƒ   ó*   #   • U R                  5       $ 7fr   r   r!   s    r   Ú
__aenter__Útimeout.__aenter__>   s   é € Ø�~‰~ÓÐùs   ‚c              ƒ   ó.   #   • U R                  U5        g 7fr   r(   r*   s       r   Ú	__aexit__Útimeout.__aexit__A   s   é € ð 	�‰�hÕùs   ‚c                 ó   • U R                   $ r   )r   r!   s    r   ÚexpiredÚtimeout.expiredI   s   € à�‰Ðr   c                 ó€   • U R                   b1  [        U R                   U R                  R                  5       -
  S5      $ g )Ng        )r   Úmaxr   Útimer!   s    r   Ú	remainingÚtimeout.remainingM   s0   € à�?‰?Ñ&Ü�t—‘¨¯©¯©Ó):Ñ:¸CÓ@Ð@àr   c                 óÎ  • U R                   c  U $ [        R                  " U R                  5      U l        U R                  c  [        S5      eU R                   S::  a'  U R                  R                  U R                  5        U $ U R                  R                  5       U R                   -   U l	        U R                  R                  U R                  U R                  5      U l        U $ )Nz4Timeout context manager should be used inside a taskr   )r   r   Úcurrent_taskr   r   ÚRuntimeErrorÚ	call_soonÚ_cancel_taskr8   r   Úcall_atr   r!   s    r   r    Ú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                 ó  • U[         R                  L a/  U R                  (       a  S U l        S U l        [         R
                  eU R                  b.  U R                  b!  U R                  R                  5         S U l        S U l        g r   )r   ÚCancelledErrorr   r   r   ÚTimeoutErrorr   Úcancel)r   r$   s     r   r)   Útimeout._do_exith   sj   € Ø”w×-Ñ-Ò-°$·/·/Ø#'ˆDÔ ØˆDŒJÜ×&Ñ&Ð&Ø�=‰=Ñ$¨×)=Ñ)=Ñ)IØ× Ñ ×'Ñ'Ô)Ø#'ˆDÔ ØˆŒ
Ør   c                 ób   • U R                   b"  U R                   R                  5         SU l        g g )NT)r   rE   r   r!   s    r   r?   Útimeout._cancel_tasks   s(   € Ø�:‰:Ñ!Ø�J‰J×ÑÔØ"ˆD�Oð "r   )r   r   r   r   r   r   )r   r   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úfloatr   ÚAbstractEventLoopr   r"   r   ÚBaseExceptionr   Úboolr+   r.   r1   Úpropertyr4   r9   r    r)   r?   Ú__static_attributes__© r   r   r   r      s  † ñð$ 59ò	à˜%‘ðð �w×0Ñ0Ñ1ð	ð
 
õô& ðà�}Ñ%ðð ðð ð	ð
 
�$‰ôô ð à�}Ñ%ð ð ð ð ð	 ð
 
ô ð ð˜ó ó ðð ð˜8 E™?ó ó ðôð(	  mÑ!4ð 	¸ô 	÷#r   r   )	r   r   Útypesr   Útypingr   r   r   r   rT   r   r   Ú<module>rW      s"   ðó Û Ý Ý ß !÷f#ò f#r   