
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    >Y                     @   s&   d dl Z dZG dd dZdd ZdS )    Nz1.3.0c                   @   sn   e Zd ZdZddddZdd Zdd	 Zejd
d Z	ejdd Z
edd Zdd Zd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loopc                C   sF   |d k	r|dkrd }|| _ |d kr*t }|| _d | _d| _d | _d S )Nr   F)_timeoutasyncioZget_event_loop_loop_task
_cancelled_cancel_handler)selfr   r    r   G/opt/alt/python38/lib/python3.8/site-packages/async_timeout/__init__.py__init__   s    ztimeout.__init__c                 C   s   |   S N	_do_enterr   r   r   r   	__enter__    s    ztimeout.__enter__c                 C   s   |  | d S r   _do_exitr   exc_typeZexc_valZexc_tbr   r   r   __exit__#   s    ztimeout.__exit__c                 C   s   |   S r   r   r   r   r   r   
__aenter__&   s    ztimeout.__aenter__c                 C   s   |  | d S r   r   r   r   r   r   	__aexit__*   s    ztimeout.__aexit__c                 C   s   | j S r   )r	   r   r   r   r   expired.   s    ztimeout.expiredc                 C   s@   | j d k	r<t| j| _| jd kr(td| j| j | j| _| S )Nz4Timeout context manager should be used inside a task)r   current_taskr   r   RuntimeErrorZ
call_later_cancel_taskr
   r   r   r   r   r   2   s    

 ztimeout._do_enterc                 C   sP   |t jkr"| jr"d | _d | _t j| jd k	rF| jd k	rF| j  d | _d | _d S r   )r   ZCancelledErrorr	   r
   r   TimeoutErrorr   cancel)r   r   r   r   r   r   <   s    
ztimeout._do_exitc                 C   s   | j   d| _d S )NT)r   r    r	   r   r   r   r   r   F   s    
ztimeout._cancel_task)__name__
__module____qualname____doc__r   r   r   r   	coroutiner   r   propertyr   r   r   r   r   r   r   r   r      s   




r   c                 C   s,   t jj| d}|d kr(t| dr(|  }|S )Nr   r   )r   ZTaskr   hasattr)r   Ztaskr   r   r   r   K   s
    
r   )r   __version__r   r   r   r   r   r   <module>   s   D