Skip to main content

Async http client/server framework (asyncio)

Project description

Async http client/server framework

aiohttp logo

Travis status for master branch AppVeyor status for master branch codecov.io status for master branch Latest PyPI package version Latest Read The Docs Chat on Gitter

Key Features

  • Supports both client and server side of HTTP protocol.

  • Supports both client and server Web-Sockets out-of-the-box and avoids Callback Hell.

  • Provides Web-server with middlewares and pluggable routing.

Getting started

Client

To get something from the web:

import aiohttp
import asyncio

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def main():
    async with aiohttp.ClientSession() as session:
        html = await fetch(session, 'http://python.org')
        print(html)

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

Server

An example using a simple server:

# examples/server_simple.py
from aiohttp import web

async def handle(request):
    name = request.match_info.get('name', "Anonymous")
    text = "Hello, " + name
    return web.Response(text=text)

async def wshandle(request):
    ws = web.WebSocketResponse()
    await ws.prepare(request)

    async for msg in ws:
        if msg.type == web.WSMsgType.text:
            await ws.send_str("Hello, {}".format(msg.data))
        elif msg.type == web.WSMsgType.binary:
            await ws.send_bytes(msg.data)
        elif msg.type == web.WSMsgType.close:
            break

    return ws


app = web.Application()
app.add_routes([web.get('/', handle),
                web.get('/echo', wshandle),
                web.get('/{name}', handle)])

if __name__ == '__main__':
    web.run_app(app)

Documentation

https://aiohttp.readthedocs.io/

Demos

https://github.com/aio-libs/aiohttp-demos

Communication channels

aio-libs google group: https://groups.google.com/forum/#!forum/aio-libs

Feel free to post your questions and ideas here.

gitter chat https://gitter.im/aio-libs/Lobby

We support Stack Overflow. Please add aiohttp tag to your question there.

Requirements

Optionally you may install the cChardet and aiodns libraries (highly recommended for sake of speed).

License

aiohttp is offered under the Apache 2 license.

Keepsafe

The aiohttp community would like to thank Keepsafe (https://www.getkeepsafe.com) for its support in the early days of the project.

Source code

The latest developer version is available in a GitHub repository: https://github.com/aio-libs/aiohttp

Benchmarks

If you are interested in efficiency, the AsyncIO community maintains a list of benchmarks on the official wiki: https://github.com/python/asyncio/wiki/Benchmarks

Changelog

3.6.2 (2019-10-09)

Features

  • Made exceptions pickleable. Also changed the repr of some exceptions. #4077

  • Use Iterable type hint instead of Sequence for Application middleware parameter. #4125

Bugfixes

  • Reset the sock_read timeout each time data is received for a aiohttp.ClientResponse. #3808

  • Fix handling of expired cookies so they are not stored in CookieJar. #4063

  • Fix misleading message in the string representation of ClientConnectorError; self.ssl == None means default SSL context, not SSL disabled #4097

  • Don’t clobber HTTP status when using FileResponse. #4106

Improved Documentation

  • Added minimal required logging configuration to logging documentation. #2469

  • Update docs to reflect proxy support. #4100

  • Fix typo in code example in testing docs. #4108

Misc


3.6.1 (2019-09-19)

Features

  • Compatibility with Python 3.8. #4056

Bugfixes

  • correct some exception string format #4068

  • Emit a warning when ssl.OP_NO_COMPRESSION is unavailable because the runtime is built against an outdated OpenSSL. #4052

  • Update multidict requirement to >= 4.5 #4057

Improved Documentation

  • Provide pytest-aiohttp namespace for pytest fixtures in docs. #3723


3.6.0 (2019-09-06)

Features

  • Add support for Named Pipes (Site and Connector) under Windows. This feature requires Proactor event loop to work. #3629

  • Removed Transfer-Encoding: chunked header from websocket responses to be compatible with more http proxy servers. #3798

  • Accept non-GET request for starting websocket handshake on server side. #3980

Bugfixes

  • Raise a ClientResponseError instead of an AssertionError for a blank HTTP Reason Phrase. #3532

  • Fix an issue where cookies would sometimes not be set during a redirect. #3576

  • Change normalize_path_middleware to use 308 redirect instead of 301.

    This behavior should prevent clients from being unable to use PUT/POST methods on endpoints that are redirected because of a trailing slash. #3579

  • Drop the processed task from all_tasks() list early. It prevents logging about a task with unhandled exception when the server is used in conjunction with asyncio.run(). #3587

  • Signal type annotation changed from Signal[Callable[['TraceConfig'], Awaitable[None]]] to Signal[Callable[ClientSession, SimpleNamespace, ...]. #3595

  • Use sanitized URL as Location header in redirects #3614

  • Improve typing annotations for multipart.py along with changes required by mypy in files that references multipart.py. #3621

  • Close session created inside aiohttp.request when unhandled exception occurs #3628

  • Cleanup per-chunk data in generic data read. Memory leak fixed. #3631

  • Use correct type for add_view and family #3633

  • Fix _keepalive field in __slots__ of RequestHandler. #3644

  • Properly handle ConnectionResetError, to silence the “Cannot write to closing transport” exception when clients disconnect uncleanly. #3648

  • Suppress pytest warnings due to test_utils classes #3660

  • Fix overshadowing of overlapped sub-application prefixes. #3701

  • Fixed return type annotation for WSMessage.json() #3720

  • Properly expose TooManyRedirects publicly as documented. #3818

  • Fix missing brackets for IPv6 in proxy CONNECT request #3841

  • Make the signature of aiohttp.test_utils.TestClient.request match asyncio.ClientSession.request according to the docs #3852

  • Use correct style for re-exported imports, makes mypy --strict mode happy. #3868

  • Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View #3880

  • Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is missing. #3906

  • Add URL to the string representation of ClientResponseError. #3959

  • Accept istr keys in LooseHeaders type hints. #3976

  • Fixed race conditions in _resolve_host caching and throttling when tracing is enabled. #4013

  • For URLs like “unix://localhost/…” set Host HTTP header to “localhost” instead of “localhost:None”. #4039

Improved Documentation

  • Modify documentation for Background Tasks to remove deprecated usage of event loop. #3526

  • use if __name__ == '__main__': in server examples. #3775

  • Update documentation reference to the default access logger. #3783

  • Improve documentation for web.BaseRequest.path and web.BaseRequest.raw_path. #3791

  • Removed deprecation warning in tracing example docs #3964


3.5.4 (2019-01-12)

Bugfixes

  • Fix stream .read() / .readany() / .iter_any() which used to return a partial content only in case of compressed content #3525

3.5.3 (2019-01-10)

Bugfixes

  • Fix type stubs for aiohttp.web.run_app(access_log=True) and fix edge case of access_log=True and the event loop being in debug mode. #3504

  • Fix aiohttp.ClientTimeout type annotations to accept None for fields #3511

  • Send custom per-request cookies even if session jar is empty #3515

  • Restore Linux binary wheels publishing on PyPI


3.5.2 (2019-01-08)

Features

  • FileResponse from web_fileresponse.py uses a ThreadPoolExecutor to work with files asynchronously. I/O based payloads from payload.py uses a ThreadPoolExecutor to work with I/O objects asynchronously. #3313

  • Internal Server Errors in plain text if the browser does not support HTML. #3483

Bugfixes

  • Preserve MultipartWriter parts headers on write. Refactor the way how Payload.headers are handled. Payload instances now always have headers and Content-Type defined. Fix Payload Content-Disposition header reset after initial creation. #3035

  • Log suppressed exceptions in GunicornWebWorker. #3464

  • Remove wildcard imports. #3468

  • Use the same task for app initialization and web server handling in gunicorn workers. It allows to use Python3.7 context vars smoothly. #3471

  • Fix handling of chunked+gzipped response when first chunk does not give uncompressed data #3477

  • Replace collections.MutableMapping with collections.abc.MutableMapping to avoid a deprecation warning. #3480

  • Payload.size type annotation changed from Optional[float] to Optional[int]. #3484

  • Ignore done tasks when cancels pending activities on web.run_app finalization. #3497

Improved Documentation

  • Add documentation for aiohttp.web.HTTPException. #3490

Misc


3.5.1 (2018-12-24)

  • Fix a regression about ClientSession._requote_redirect_url modification in debug mode.

3.5.0 (2018-12-22)

Features

  • The library type annotations are checked in strict mode now.

  • Add support for setting cookies for individual request (#2387)

  • Application.add_domain implementation (#2809)

  • The default app in the request returned by test_utils.make_mocked_request can now have objects assigned to it and retrieved using the [] operator. (#3174)

  • Make request.url accessible when transport is closed. (#3177)

  • Add zlib_executor_size argument to Response constructor to allow compression to run in a background executor to avoid blocking the main thread and potentially triggering health check failures. (#3205)

  • Enable users to set ClientTimeout in aiohttp.request (#3213)

  • Don’t raise a warning if NETRC environment variable is not set and ~/.netrc file doesn’t exist. (#3267)

  • Add default logging handler to web.run_app If the Application.debug` flag is set and the default logger aiohttp.access is used, access logs will now be output using a stderr StreamHandler if no handlers are attached. Furthermore, if the default logger has no log level set, the log level will be set to DEBUG. (#3324)

  • Add method argument to session.ws_connect(). Sometimes server API requires a different HTTP method for WebSocket connection establishment. For example, Docker exec needs POST. (#3378)

  • Create a task per request handling. (#3406)

Bugfixes

  • Enable passing access_log_class via handler_args (#3158)

  • Return empty bytes with end-of-chunk marker in empty stream reader. (#3186)

  • Accept CIMultiDictProxy instances for headers argument in web.Response constructor. (#3207)

  • Don’t uppercase HTTP method in parser (#3233)

  • Make method match regexp RFC-7230 compliant (#3235)

  • Add app.pre_frozen state to properly handle startup signals in sub-applications. (#3237)

  • Enhanced parsing and validation of helpers.BasicAuth.decode. (#3239)

  • Change imports from collections module in preparation for 3.8. (#3258)

  • Ensure Host header is added first to ClientRequest to better replicate browser (#3265)

  • Fix forward compatibility with Python 3.8: importing ABCs directly from the collections module will not be supported anymore. (#3273)

  • Keep the query string by normalize_path_middleware. (#3278)

  • Fix missing parameter raise_for_status for aiohttp.request() (#3290)

  • Bracket IPv6 addresses in the HOST header (#3304)

  • Fix default message for server ping and pong frames. (#3308)

  • Fix tests/test_connector.py typo and tests/autobahn/server.py duplicate loop def. (#3337)

  • Fix false-negative indicator end_of_HTTP_chunk in StreamReader.readchunk function (#3361)

  • Release HTTP response before raising status exception (#3364)

  • Fix task cancellation when sendfile() syscall is used by static file handling. (#3383)

  • Fix stack trace for asyncio.TimeoutError which was not logged, when it is caught in the handler. (#3414)

Improved Documentation

  • Improve documentation of Application.make_handler parameters. (#3152)

  • Fix BaseRequest.raw_headers doc. (#3215)

  • Fix typo in TypeError exception reason in web.Application._handle (#3229)

  • Make server access log format placeholder %b documentation reflect behavior and docstring. (#3307)

Deprecations and Removals

  • Deprecate modification of session.requote_redirect_url (#2278)

  • Deprecate stream.unread_data() (#3260)

  • Deprecated use of boolean in resp.enable_compression() (#3318)

  • Encourage creation of aiohttp public objects inside a coroutine (#3331)

  • Drop dead Connection.detach() and Connection.writer. Both methods were broken for more than 2 years. (#3358)

  • Deprecate app.loop, request.loop, client.loop and connector.loop properties. (#3374)

  • Deprecate explicit debug argument. Use asyncio debug mode instead. (#3381)

  • Deprecate body parameter in HTTPException (and derived classes) constructor. (#3385)

  • Deprecate bare connector close, use async with connector: and await connector.close() instead. (#3417)

  • Deprecate obsolete read_timeout and conn_timeout in ClientSession constructor. (#3438)

Misc

  • #3341, #3351

Release history Release notifications | RSS feed

This version

3.6.2

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp-3.6.2.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

aiohttp-3.6.2-py3-none-any.whl (441.8 kB view details)

Uploaded Python 3

aiohttp-3.6.2-cp37-cp37m-win_amd64.whl (649.2 kB view details)

Uploaded CPython 3.7mWindows x86-64

aiohttp-3.6.2-cp37-cp37m-win32.whl (624.3 kB view details)

Uploaded CPython 3.7mWindows x86

aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7m

aiohttp-3.6.2-cp37-cp37m-macosx_10_13_x86_64.whl (642.4 kB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

aiohttp-3.6.2-cp36-cp36m-win_amd64.whl (649.1 kB view details)

Uploaded CPython 3.6mWindows x86-64

aiohttp-3.6.2-cp36-cp36m-win32.whl (624.2 kB view details)

Uploaded CPython 3.6mWindows x86

aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6m

aiohttp-3.6.2-cp36-cp36m-macosx_10_13_x86_64.whl (646.1 kB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

aiohttp-3.6.2-cp35-cp35m-manylinux1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.5m

aiohttp-3.6.2-cp35-cp35m-macosx_10_13_x86_64.whl (629.5 kB view details)

Uploaded CPython 3.5mmacOS 10.13+ x86-64

File details

Details for the file aiohttp-3.6.2.tar.gz.

File metadata

  • Download URL: aiohttp-3.6.2.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2.tar.gz
Algorithm Hash digest
SHA256 259ab809ff0727d0e834ac5e8a283dc5e3e0ecc30c4d80b3cd17a4139ce1f326
MD5 ca40144c199a09fc1a141960cf6295f0
BLAKE2b-256 0094f9fa18e8d7124d7850a5715a0b9c0584f7b9375d331d35e157cee50f27cc

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-py3-none-any.whl.

File metadata

  • Download URL: aiohttp-3.6.2-py3-none-any.whl
  • Upload date:
  • Size: 441.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 460bd4237d2dbecc3b5ed57e122992f60188afe46e7319116da5eb8a9dfedba4
MD5 0b7631eba37a56caa60c28139bb6787c
BLAKE2b-256 c2f7f0ad3dbace4762fef5d80aa4124b41bf218e4c4dd6d387a86cede707d9a4

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 649.2 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 32e5f3b7e511aa850829fbe5aa32eb455e5534eaa4b1ce93231d00e2f76e5654
MD5 93578e1c2314cc1912d498bcdb75515e
BLAKE2b-256 0bb3744a16bdaba2e4df90f6ff10b9ade9c2dce3f01d94848f3949aa4ce7868d

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp37-cp37m-win32.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 624.3 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 b778ce0c909a2653741cb4b1ac7015b5c130ab9c897611df43ae6a58523cb965
MD5 dcfb78bfeee5087434e6f18e07e72a06
BLAKE2b-256 f2ffe570c6f81fa1e23e64da06dbb2b30c61112f171304a142af5702b4e8034f

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6206a135d072f88da3e71cc501c59d5abffa9d0bb43269a6dcd28d66bfafdbdd
MD5 ee03508617310b1afa45711572975d66
BLAKE2b-256 e3716000eacb8923d9fd07aa8784a8fab4f022ae697f3c2456d7dca75c743dd6

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 642.4 kB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 2f4d1a4fdce595c947162333353d4a44952a724fba9ca3205a3df99a33d1307a
MD5 8bcfa11d81d076fc19f424da53728c7e
BLAKE2b-256 40fd3a595d6467eb31f7b69eb980778567e764b5d93990b4ceb8ddf6079dd776

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 649.1 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 4c6efd824d44ae697814a2a85604d8e992b875462c6655da161ff18fd4f29f17
MD5 5538e2d528c61597dd565c2caa0711a2
BLAKE2b-256 f1511985ad031e804ce75c00059aacb386703a332cc39683752d7608980cf5d6

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp36-cp36m-win32.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 624.2 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 344c780466b73095a72c616fac5ea9c4665add7fc129f285fbdbca3cccf4612a
MD5 f1bfe10a7b70fc492369089ea1c68dd7
BLAKE2b-256 eafb63a75dde55ec94ced184fe08083714789865c7f23cc471fc55dac5cc0c39

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ae55bac364c405caa23a4f2d6cfecc6a0daada500274ffca4a9230e7129eac59
MD5 46b8a5d422e49bebb2d22f48db8eb43b
BLAKE2b-256 7c397eb5f98d24904e0f6d3edb505d4aa60e3ef83c0a58d6fe18244a51757247

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 646.1 kB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 65f31b622af739a802ca6fd1a3076fd0ae523f8485c52924a89561ba10c49b48
MD5 b8fe6f2e80cda784f2c10497d75992e6
BLAKE2b-256 6cf5d4e0798a6fbbd0c59d0ac2d24a1d29ece7279d9bb7403b01da2c2d2bd841

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 50aaad128e6ac62e7bf7bd1f0c0a24bc968a0c0590a726d5a955af193544bcec
MD5 83322661aa43819b1a14d51ea530e97e
BLAKE2b-256 609060bf09ad2e8c827e3a71f77c43ff7be17c9d397d33baeae7cdf0435139b2

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.2-cp35-cp35m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.2-cp35-cp35m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 629.5 kB
  • Tags: CPython 3.5m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.2-cp35-cp35m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1e984191d1ec186881ffaed4581092ba04f7c61582a177b187d3a2f07ed9719e
MD5 4155d91ec0b70f51cdb5444804ba0369
BLAKE2b-256 97d11cc7a1f84097d7abdc6c09ee8d2260366f081f8e82da36ebb22a25cdda9f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page