Drop support for Python 3.4 and make minimum version 3.5.2.
This commit is contained in:
@ -135,8 +135,7 @@ class AsyncWebhookAdapter(WebhookAdapter):
|
||||
self.session = session
|
||||
self.loop = session.loop
|
||||
|
||||
@asyncio.coroutine
|
||||
def request(self, verb, url, payload=None, multipart=None):
|
||||
async def request(self, verb, url, payload=None, multipart=None):
|
||||
headers = {}
|
||||
data = None
|
||||
if payload:
|
||||
@ -152,9 +151,8 @@ class AsyncWebhookAdapter(WebhookAdapter):
|
||||
data.add_field(key, value)
|
||||
|
||||
for tries in range(5):
|
||||
r = yield from self.session.request(verb, url, headers=headers, data=data)
|
||||
try:
|
||||
data = yield from r.text(encoding='utf-8')
|
||||
async with self.session.request(verb, url, headers=headers, data=data) as r:
|
||||
data = await r.text(encoding='utf-8')
|
||||
if r.headers['Content-Type'] == 'application/json':
|
||||
data = json.loads(data)
|
||||
|
||||
@ -162,7 +160,7 @@ class AsyncWebhookAdapter(WebhookAdapter):
|
||||
remaining = r.headers.get('X-Ratelimit-Remaining')
|
||||
if remaining == '0' and r.status != 429:
|
||||
delta = utils._parse_ratelimit_header(r)
|
||||
yield from asyncio.sleep(delta, loop=self.loop)
|
||||
await asyncio.sleep(delta, loop=self.loop)
|
||||
|
||||
if 300 > r.status >= 200:
|
||||
return data
|
||||
@ -170,11 +168,11 @@ class AsyncWebhookAdapter(WebhookAdapter):
|
||||
# we are being rate limited
|
||||
if r.status == 429:
|
||||
retry_after = data['retry_after'] / 1000.0
|
||||
yield from asyncio.sleep(retry_after, loop=self.loop)
|
||||
await asyncio.sleep(retry_after, loop=self.loop)
|
||||
continue
|
||||
|
||||
if r.status in (500, 502):
|
||||
yield from asyncio.sleep(1 + tries * 2, loop=self.loop)
|
||||
await asyncio.sleep(1 + tries * 2, loop=self.loop)
|
||||
continue
|
||||
|
||||
if r.status == 403:
|
||||
@ -183,12 +181,9 @@ class AsyncWebhookAdapter(WebhookAdapter):
|
||||
raise NotFound(r, data)
|
||||
else:
|
||||
raise HTTPException(r, data)
|
||||
finally:
|
||||
yield from r.release()
|
||||
|
||||
@asyncio.coroutine
|
||||
def handle_execution_response(self, response, *, wait):
|
||||
data = yield from response
|
||||
async def handle_execution_response(self, response, *, wait):
|
||||
data = await response
|
||||
if not wait:
|
||||
return data
|
||||
|
||||
|
Reference in New Issue
Block a user