Skip to content

Commit 55c85dd

Browse files
committed
just use asyncio idioms
1 parent caeeb09 commit 55c85dd

File tree

1 file changed

+14
-18
lines changed

1 file changed

+14
-18
lines changed

scrapy/core/downloader/handlers/aiohttp.py

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,36 +17,32 @@ def __init__(self, settings):
1717
self.settings = settings
1818

1919
def download_request(self, request, spider):
20+
return _force_deferred(self._download_request(request, spider))
21+
22+
def _download_request(self, request, spider):
2023
"""Return a deferred for the HTTP download"""
2124
headers=list((k.decode('latin1'), v.decode('latin1'))
2225
for k, vs in request.headers.items()
2326
for v in vs)
2427

25-
dfd = _force_deferred(
26-
aiohttp.request(
28+
aioresponse = yield from aiohttp.request(
2729
method=request.method,
2830
url=request.url,
2931
data=request.body,
3032
allow_redirects=False,
3133
headers=headers,
32-
))
33-
34-
def _on_response(aioresponse):
35-
return _force_deferred(aioresponse.read()).addCallback(
36-
_on_body, aioresponse=aioresponse)
37-
38-
def _on_body(body, aioresponse):
39-
url = request.url
40-
status = aioresponse.status
41-
headers = Headers(
42-
(k.encode('latin1'), [v.encode('latin1')])
43-
for k, v in aioresponse.headers.items()
4434
)
45-
respcls = responsetypes.from_args(headers=headers, url=url)
46-
return respcls(url=url, status=status, headers=headers, body=body,
47-
flags=[])
4835

49-
return dfd.addCallback(_on_response)
36+
body = yield from aioresponse.read()
37+
url = request.url
38+
status = aioresponse.status
39+
headers = Headers(
40+
(k.encode('latin1'), [v.encode('latin1')])
41+
for k, v in aioresponse.headers.items()
42+
)
43+
respcls = responsetypes.from_args(headers=headers, url=url)
44+
return respcls(url=url, status=status, headers=headers, body=body,
45+
flags=[])
5046

5147

5248
def _force_deferred(coro):

0 commit comments

Comments
 (0)