Format: application/x-python-code
1 o
2
3 -h+ � @ sJ d dl Z d dlZd dlmZ d dlmZ d dlmZmZ G dd� d�ZdS )� N)�
4 TracebackType)�Any)�Optional�Typec @ s� e Zd ZdZdd�d ee deej ddfdd�Zddd �Z d
5 e
6 e dededee
7 fd
8 d�Zddd�Zd
9 e
10 e dededdfdd�Zede
11 fdd��Zedee fdd��Zddd�Zd
12 e
13 e ddfdd�Zddd�ZdS )�timeouta� timeout context manager.
14
15 Useful in cases when you want to apply timeout logic around block
16 of code or in cases when asyncio.wait_for is not suitable. For example:
17
18 >>> with timeout(0.001):
19 ... async with aiohttp.get('https://github.com') as r:
20 ... await r.text()
21
22
23 timeout - value in seconds or None to disable timeout logic
24 loop - asyncio compatible event loop
25 N)�loopr �returnc C sF || _ |d u rt�� }nt�dt� || _d | _d| _d | _ d | _
26 d S )Nz-The loop argument to timeout() is deprecated.F)�_timeout�asyncio�get_running_loop�warnings�warn�DeprecationWarning�_loop�_task�
27 _cancelled�_cancel_handler�
28 _cancel_at)�selfr r � r �EC:\Users\shubh\Videos\agent\nova\Lib\site-packages\asgiref/timeout.py�__init__ s
29 �
30 ztimeout.__init__c C s | � � S �N�� _do_enter�r r r r � __enter__2 s ztimeout.__enter__�exc_type�exc_val�exc_tbc C s | � |� d S r ��_do_exit�r r r r r r r �__exit__5 s
31 ztimeout.__exit__c � s
32 �| � � S r r r r r r �
33 __aenter__>