@@ -104,7 +104,8 @@ async def request(self, method, url, query_params=None, headers=None,
104104 :param _request_timeout: timeout setting for this request. If one
105105 number provided, it will be total request
106106 timeout. It can also be a pair (tuple) of
107- (connection, read) timeouts.
107+ (connection, read) timeouts or object
108+ of aiohttp.ClientTimeout.
108109 """
109110 method = method .upper ()
110111 assert method in ['GET' , 'HEAD' , 'DELETE' , 'POST' , 'PUT' ,
@@ -117,7 +118,18 @@ async def request(self, method, url, query_params=None, headers=None,
117118
118119 post_params = post_params or {}
119120 headers = headers or {}
120- timeout = _request_timeout or 5 * 60
121+ timeout = aiohttp .ClientTimeout ()
122+ if _request_timeout :
123+ if isinstance (_request_timeout , (int , float )):
124+ timeout = aiohttp .ClientTimeout (total = _request_timeout )
125+ elif isinstance (_request_timeout , tuple ) and len (_request_timeout ) == 2 :
126+ timeout = aiohttp .ClientTimeout (
127+ connect = _request_timeout [0 ],
128+ sock_connect = _request_timeout [0 ],
129+ sock_read = _request_timeout [1 ],
130+ )
131+ elif isinstance (_request_timeout , aiohttp .ClientTimeout ):
132+ timeout = _request_timeout
121133
122134 if 'Content-Type' not in headers :
123135 headers ['Content-Type' ] = 'application/json'
0 commit comments