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.1 (2019-09-15)

Bugfixes

  • 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

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.1b4.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

aiohttp-3.6.1b4-cp37-cp37m-win_amd64.whl (617.6 kB view details)

Uploaded CPython 3.7m Windows x86-64

aiohttp-3.6.1b4-cp37-cp37m-win32.whl (590.0 kB view details)

Uploaded CPython 3.7m Windows x86

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

Uploaded CPython 3.7m

aiohttp-3.6.1b4-cp37-cp37m-manylinux1_i686.whl (1.1 MB view details)

Uploaded CPython 3.7m

aiohttp-3.6.1b4-cp36-cp36m-win_amd64.whl (617.5 kB view details)

Uploaded CPython 3.6m Windows x86-64

aiohttp-3.6.1b4-cp36-cp36m-win32.whl (589.9 kB view details)

Uploaded CPython 3.6m Windows x86

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

Uploaded CPython 3.6m

aiohttp-3.6.1b4-cp36-cp36m-manylinux1_i686.whl (1.1 MB view details)

Uploaded CPython 3.6m

aiohttp-3.6.1b4-cp35-cp35m-win_amd64.whl (612.0 kB view details)

Uploaded CPython 3.5m Windows x86-64

aiohttp-3.6.1b4-cp35-cp35m-win32.whl (584.0 kB view details)

Uploaded CPython 3.5m Windows x86

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

Uploaded CPython 3.5m

aiohttp-3.6.1b4-cp35-cp35m-manylinux1_i686.whl (1.1 MB view details)

Uploaded CPython 3.5m

File details

Details for the file aiohttp-3.6.1b4.tar.gz.

File metadata

  • Download URL: aiohttp-3.6.1b4.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4.tar.gz
Algorithm Hash digest
SHA256 c603d551ad2db3d82f260009e7779a8d65dc34ede4e5506f8e7cf2883c0c37f6
MD5 ea2d9f43dd83de6031a6d39306ef368a
BLAKE2b-256 11997cd08b82a42e152a5c500c2438050e5407ac99bbd6ea5932b4be30d19a51

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 617.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.1b4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3594c9a2fcce5c3f466394a6dd7b76f20c6837f3695ec34cc0508839911f3e07
MD5 ea8abfb18f134663a57267738e49ff5b
BLAKE2b-256 e638c4f93396f87c3354d372f8fa0ee4ff88e7c87accd0423cac3df72374e8bb

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp37-cp37m-win32.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 590.0 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.4

File hashes

Hashes for aiohttp-3.6.1b4-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 82c5007c6b3b9ea2062ff6a7d23f84cd9f4367ca70e35bc7d8eb0356e40a96e2
MD5 cb19ae58e6cf4d2f29eafd2d59f86936
BLAKE2b-256 ea73e286f46e24eb0cd231f46702b64a4aedfabf18ce5b15a7f21cfaf4caf0e9

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e38cc1290de455227a26aae4c578f9f308b29425adabf8414d5b78da2b645ff7
MD5 a5ac04a3aec129bd42e62b6ffc35079b
BLAKE2b-256 09e5557c26841a23b665f10b1ca1e81c4dc04377a3e4a17b93a0cd346cf74d69

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 1155062cbed2d05a1371691ac604f4db37d98a2f07a1629d19912cbc556e91a5
MD5 9e2632ffc9bca5ff7622bc40af1a2684
BLAKE2b-256 a662d27a52f8f01e31593958b33d6bb110bd8dbf60fb0630efae22aeed7da449

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 617.5 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.6.8

File hashes

Hashes for aiohttp-3.6.1b4-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9b436c9acaf57ae024a516271aa931066b4526a1c9201e84f014ac3d45b85f66
MD5 dd3020e914548d11351cc1c1a3e60b18
BLAKE2b-256 5a4183b90abe47b8fec141297d794e7652306078baa30a5a42d8c85da2cc847e

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp36-cp36m-win32.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 589.9 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.6.8

File hashes

Hashes for aiohttp-3.6.1b4-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 9e4ca8095b56af8efea0d3f8f2cde877de32c30f3207e9d6206d33ddc7efbe23
MD5 8ca0b7d2d833cbca29237ade649852df
BLAKE2b-256 b962aaa4b3977729c1edd78884fdf73438651472a990e2cf30c9d9732fba4c0f

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 767a76ed8e4875cccc85b1f69e0a87653ae01a31908aa91e6b6892b9f93d12a2
MD5 791a2af6d4a80f8e8a5a373287efe9ca
BLAKE2b-256 befc81bb6a8a751c9c0f4cfd387e3547dbe9f62539e06cc247383cd7ca0e47cf

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 0f68a112cb0f651a9e9bf978465efa7cdf964e889c49c2e9a05519e6c24a0d18
MD5 14f5c6c06f162fee2b4e0ceaf4012849
BLAKE2b-256 0615447b4f81405cffba8971aa64df9ef18bd7557fe4547be689a26c0ed1cf31

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 612.0 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.5.4

File hashes

Hashes for aiohttp-3.6.1b4-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 453f3f9115996bdc1dae5aa035d054cdee85213024c76571f16a4ebd78008157
MD5 185198a3892fe6b88cdad23559912d05
BLAKE2b-256 52862771398a81ad46a648646f2e0d38a82d7adf1e713cbc394c678ce7ff4351

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp35-cp35m-win32.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 584.0 kB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.5.4

File hashes

Hashes for aiohttp-3.6.1b4-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 8092ac7b2a2a6f3ecb68bea5d4bf7d0c60ad9e9421863cea3baaff262d1eec77
MD5 55385f1ccffc993ef2eab7a535b68006
BLAKE2b-256 d835f476616612e998087f5342276a3c3443d1f3375b81aeaaf9fdff6b7e72ce

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 dd5556b4b4a60a511a1222f666ac64580a1a7fd17a0084c5433a630cfb9209a8
MD5 b318bf9e5bb7803b108a1b1ea4e7dea3
BLAKE2b-256 72e979ef5f105589c636d893a618e69776c667eaeb482a514d29de779ca02509

See more details on using hashes here.

File details

Details for the file aiohttp-3.6.1b4-cp35-cp35m-manylinux1_i686.whl.

File metadata

  • Download URL: aiohttp-3.6.1b4-cp35-cp35m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.0 CPython/3.7.1

File hashes

Hashes for aiohttp-3.6.1b4-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 e6f98b9846ec2e4eaebc2188d7dac4597a667d91b06321082156097201afcb72
MD5 289c1b730543d25c3342b24d45c5105f
BLAKE2b-256 ffe7ad65f23cafbcf902d232af55ca0bea9ef5f64a5097f7999fc223c1e98b8a

See more details on using hashes here.

Supported by

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