forked from mirrors/gecko-dev
Note that, as part of adding this packages to the automated vendoring system, some dependencies were automatically added - most notably, dependencies of `taskcluster` that become visible with Python 3.6+. Also, adds `**/.git` to the exclusions because: * `.git` is part of our `.hgignore`, but * `.git` is part of the `aiohttp` `tar.gz` file. Since the file isn't needed for `pip install`-ing `aiohttp`, and since we want `./mach vendor python` to be a no-op when there's no requirement changes, we exclude it. Differential Revision: https://phabricator.services.mozilla.com/D123122
35 lines
933 B
Python
Executable file
35 lines
933 B
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import asyncio
|
|
|
|
import aiohttp
|
|
|
|
|
|
async def curl(url):
|
|
async with aiohttp.ClientSession() as session:
|
|
async with session.request("GET", url) as response:
|
|
print(repr(response))
|
|
chunk = await response.content.read()
|
|
print("Downloaded: %s" % len(chunk))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
ARGS = argparse.ArgumentParser(description="GET url example")
|
|
ARGS.add_argument("url", nargs=1, metavar="URL", help="URL to download")
|
|
ARGS.add_argument(
|
|
"--iocp",
|
|
default=False,
|
|
action="store_true",
|
|
help="Use ProactorEventLoop on Windows",
|
|
)
|
|
options = ARGS.parse_args()
|
|
|
|
if options.iocp:
|
|
from asyncio import events, windows_events
|
|
|
|
el = windows_events.ProactorEventLoop()
|
|
events.set_event_loop(el)
|
|
|
|
loop = asyncio.get_event_loop()
|
|
loop.run_until_complete(curl(options.url[0]))
|