@@ -104,7 +104,8 @@ async def request(self, method, url, query_params=None, headers=None,
104
104
:param _request_timeout: timeout setting for this request. If one
105
105
number provided, it will be total request
106
106
timeout. It can also be a pair (tuple) of
107
- (connection, read) timeouts.
107
+ (connection, read) timeouts or object
108
+ of aiohttp.ClientTimeout.
108
109
"""
109
110
method = method .upper ()
110
111
assert method in ['GET' , 'HEAD' , 'DELETE' , 'POST' , 'PUT' ,
@@ -117,7 +118,18 @@ async def request(self, method, url, query_params=None, headers=None,
117
118
118
119
post_params = post_params or {}
119
120
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
121
133
122
134
if 'Content-Type' not in headers :
123
135
headers ['Content-Type' ] = 'application/json'
0 commit comments