§
    £”j+  ã                   óX   — 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dS )é    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dS )Ú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 | _
        d S )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      ú^/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/asgiref/timeout.pyÚ__init__ztimeout.__init__   sd   € ð  ˆŒØˆ<ÝÔ+Ñ-Ô-ˆDˆDåŒMØCÕEWñô ð ð ˆŒ
ØˆŒ
ØˆŒØ#ˆÔØˆŒˆˆó    c                 ó*   — |                       ¦   «         S ©N©Ú	_do_enter©r   s    r   Ú	__enter__ztimeout.__enter__2   s   € Ø�~Š~ÑÔÐr   Úexc_typeÚexc_valÚexc_tbc                 ó0   — |                       |¦  «         d S r   ©Ú_do_exit©r   r!   r"   r#   s       r   Ú__exit__ztimeout.__exit__5   s   € ð 	�Š�hÑÔÐØˆtr   c              ƒ   ó.   K  — |                       ¦   «         S r   r   r   s    r   Ú
__aenter__ztimeout.__aenter__>   s   è è € Ø�~Š~ÑÔÐr   c              ƒ   ó4   K  — |                       |¦  «         d S r   r%   r'   s       r   Ú	__aexit__ztimeout.__aexit__A   s    è è € ð 	�Š�hÑÔÐÐÐr   c                 ó   — | j         S r   )r   r   s    r   Úexpiredztimeout.expiredI   s
   € àŒÐr   c                 ór   — | j         �/t          | j         | j                             ¦   «         z
  d¦  «        S d S )Ng        )r   Úmaxr   Útimer   s    r   Ú	remainingztimeout.remainingM   s2   € àŒ?Ð&Ý�t”¨¬¯ªÑ):Ô):Ñ:¸CÑ@Ô@Ð@à�4r   c                 óx  — | j         €| S t          j        | j        ¦  «        | _        | j        €t          d¦  «        ‚| j         dk    r!| j                             | j        ¦  «         | S | j                             ¦   «         | j         z   | _	        | 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Ô5ˆŒ
ØŒ:ÐÝØIñô ð ð Œ=˜AÒÐØŒJ× Ò  Ô!2Ñ3Ô3Ð3ØˆKàœ*Ÿ/š/Ñ+Ô+¨d¬mÑ;ˆŒØ#œz×1Ò1°$´/À4ÔCTÑUÔUˆÔØˆr   c                 óÎ   — |t           j        u r!| j        rd | _        d | _        t           j        ‚| j        �'| j        � | j                             ¦   «          d | _        d | _        d S r   )r   ÚCancelledErrorr   r   r   ÚTimeoutErrorr   Úcancel)r   r!   s     r   r&   ztimeout._do_exith   sh   € Ø•wÔ-Ð-Ð-°$´/Ð-Ø#'ˆDÔ ØˆDŒJÝÔ&Ð&ØŒ=Ð$¨Ô)=Ð)IØÔ ×'Ò'Ñ)Ô)Ð)Ø#'ˆDÔ ØˆŒ
Øˆtr   c                 óX   — | j         �"| j                              ¦   «          d| _        d S d S )NT)r   r<   r   r   s    r   r7   ztimeout._cancel_tasks   s1   € ØŒ:Ð!ØŒJ×ÒÑÔÐØ"ˆDŒOˆOˆ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Ô1ð	ð
 
ðð ð ð ð& ð  ð  ð  ðà�}Ô%ðð ðð ð	ð
 
�$Œðð ð ð ð ð  ð  ð  ð à�}Ô%ð ð ð ð ð	 ð
 
ð ð  ð  ð  ð ð˜ð ð ð ñ „Xðð ð˜8 Eœ?ð ð ð ñ „Xððð ð ð ð(	  mÔ!4ð 	¸ð 	ð 	ð 	ð 	ð#ð #ð #ð #ð #ð #r   r   )	r   r   Útypesr   Útypingr   r   r   r   rG   r   r   ú<module>rJ      s‘   ðð €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !ðf#ð f#ð f#ð f#ð f#ñ f#ô f#ð f#ð f#ð f#r   