Skip to main content

Async http client/server framework (asyncio)

Project description

Async http client/server framework

aiohttp logo https://travis-ci.org/aio-libs/aiohttp.svg?branch=master https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg https://badge.fury.io/py/aiohttp.svg 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.

  • Web-server has middlewares and pluggable routing.

Getting started

Client

To retrieve something from the web:

import aiohttp
import asyncio
import async_timeout

async def fetch(session, url):
    with async_timeout.timeout(10):
        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

This is simple usage example:

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 wshandler(request):
    ws = web.WebSocketResponse()
    await ws.prepare(request)

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

    return ws


app = web.Application()
app.router.add_get('/echo', wshandler)
app.router.add_get('/', handle)
app.router.add_get('/{name}', handle)

web.run_app(app)

Note: examples are written for Python 3.5+ and utilize PEP-492 aka async/await. If you are using Python 3.4 please replace await with yield from and async def with @coroutine e.g.:

async def coro(...):
    ret = await f()

should be replaced by:

@asyncio.coroutine
def coro(...):
    ret = yield from f()

Documentation

https://aiohttp.readthedocs.io/

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 it’s 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 by efficiency, AsyncIO community maintains a list of benchmarks on the official wiki: https://github.com/python/asyncio/wiki/Benchmarks

Changelog

2.3.6 (2017-12-04)

  • Correct request.app context (for handlers not just middlewares). (#2577)

2.3.5 (2017-11-30)

  • Fix compatibility with pytest 3.3+ (#2565)

2.3.4 (2017-11-29)

  • Make request.app point to proper application instance when using nested applications (with middlewares). (#2550)

  • Change base class of ClientConnectorSSLError to ClientSSLError from ClientConnectorError. (#2563)

  • Return client connection back to free pool on error in connector.connect(). (#2567)

2.3.3 (2017-11-17)

  • Having a ; in Response content type does not assume it contains a charset anymore. (#2197)

  • Use getattr(asyncio, ‘async’) for keeping compatibility with Python 3.7. (#2476)

  • Ignore NotImplementedError raised by set_child_watcher from uvloop. (#2491)

  • Fix warning in ClientSession.__del__ by stopping to try to close it. (#2523)

  • Fixed typo’s in Third-party libraries page. And added async-v20 to the list (#2510)

2.3.2 (2017-11-01)

  • Fix passing client max size on cloning request obj. (#2385)

  • Fix ClientConnectorSSLError and ClientProxyConnectionError for proxy connector. (#2408)

  • Drop generated _http_parser shared object from tarball distribution. (#2414)

  • Fix connector convert OSError to ClientConnectorError. (#2423)

  • Fix connection attempts for multiple dns hosts. (#2424)

  • Fix ValueError for AF_INET6 sockets if a preexisting INET6 socket to the aiohttp.web.run_app function. (#2431)

  • _SessionRequestContextManager closes the session properly now. (#2441)

  • Rename from_env to trust_env in client reference. (#2451)

2.3.1 (2017-10-18)

  • Relax attribute lookup in warning about old-styled middleware (#2340)

2.3.0 (2017-10-18)

Features

  • Add SSL related params to ClientSession.request (#1128)

  • Make enable_compression work on HTTP/1.0 (#1828)

  • Deprecate registering synchronous web handlers (#1993)

  • Switch to multidict 3.0. All HTTP headers preserve casing now but compared in case-insensitive way. (#1994)

  • Improvement for normalize_path_middleware. Added possibility to handle URLs with query string. (#1995)

  • Use towncrier for CHANGES.txt build (#1997)

  • Implement trust_env=True param in ClientSession. (#1998)

  • Added variable to customize proxy headers (#2001)

  • Implement router.add_routes and router decorators. (#2004)

  • Deprecated BaseRequest.has_body in favor of BaseRequest.can_read_body Added BaseRequest.body_exists attribute that stays static for the lifetime of the request (#2005)

  • Provide BaseRequest.loop attribute (#2024)

  • Make _CoroGuard awaitable and fix ClientSession.close warning message (#2026)

  • Responses to redirects without Location header are returned instead of raising a RuntimeError (#2030)

  • Added get_client, get_server, setUpAsync and tearDownAsync methods to AioHTTPTestCase (#2032)

  • Add automatically a SafeChildWatcher to the test loop (#2058)

  • add ability to disable automatic response decompression (#2110)

  • Add support for throttling DNS request, avoiding the requests saturation when there is a miss in the DNS cache and many requests getting into the connector at the same time. (#2111)

  • Use request for getting access log information instead of message/transport pair. Add RequestBase.remote property for accessing to IP of client initiated HTTP request. (#2123)

  • json() raises a ContentTypeError exception if the content-type does not meet the requirements instead of raising a generic ClientResponseError. (#2136)

  • Make the HTTP client able to return HTTP chunks when chunked transfer encoding is used. (#2150)

  • add append_version arg into StaticResource.url and StaticResource.url_for methods for getting an url with hash (version) of the file. (#2157)

  • Fix parsing the Forwarded header. * commas and semicolons are allowed inside quoted-strings; * empty forwarded-pairs (as in for=_1;;by=_2) are allowed; * non-standard parameters are allowed (although this alone could be easily done in the previous parser). (#2173)

  • Don’t require ssl module to run. aiohttp does not require SSL to function. The code paths involved with SSL will only be hit upon SSL usage. Raise RuntimeError if HTTPS protocol is required but ssl module is not present. (#2221)

  • Accept coroutine fixtures in pytest plugin (#2223)

  • Call shutdown_asyncgens before event loop closing on Python 3.6. (#2227)

  • Speed up Signals when there are no receivers (#2229)

  • Raise InvalidURL instead of ValueError on fetches with invalid URL. (#2241)

  • Move DummyCookieJar into cookiejar.py (#2242)

  • run_app: Make print=None disable printing (#2260)

  • Support brotli encoding (generic-purpose lossless compression algorithm) (#2270)

  • Add server support for WebSockets Per-Message Deflate. Add client option to add deflate compress header in WebSockets request header. If calling ClientSession.ws_connect() with compress=15 the client will support deflate compress negotiation. (#2273)

  • Support verify_ssl, fingerprint, ssl_context and proxy_headers by client.ws_connect. (#2292)

  • Added aiohttp.ClientConnectorSSLError when connection fails due ssl.SSLError (#2294)

  • aiohttp.web.Application.make_handler support access_log_class (#2315)

  • Build HTTP parser extension in non-strict mode by default. (#2332)

Bugfixes

  • Clear auth information on redirecting to other domain (#1699)

  • Fix missing app.loop on startup hooks during tests (#2060)

  • Fix issue with synchronous session closing when using ClientSession as an asynchronous context manager. (#2063)

  • Fix issue with CookieJar incorrectly expiring cookies in some edge cases. (#2084)

  • Force use of IPv4 during test, this will make tests run in a Docker container (#2104)

  • Warnings about unawaited coroutines now correctly point to the user’s code. (#2106)

  • Fix issue with IndexError being raised by the StreamReader.iter_chunks() generator. (#2112)

  • Support HTTP 308 Permanent redirect in client class. (#2114)

  • Fix FileResponse sending empty chunked body on 304. (#2143)

  • Do not add Content-Length: 0 to GET/HEAD/TRACE/OPTIONS requests by default. (#2167)

  • Fix parsing the Forwarded header according to RFC 7239. (#2170)

  • Securely determining remote/scheme/host #2171 (#2171)

  • Fix header name parsing, if name is split into multiple lines (#2183)

  • Handle session close during connection, KeyError: <aiohttp.connector._TransportPlaceholder> (#2193)

  • Fixes uncaught TypeError in helpers.guess_filename if name is not a string (#2201)

  • Raise OSError on async DNS lookup if resolved domain is an alias for another one, which does not have an A or CNAME record. (#2231)

  • Fix incorrect warning in StreamReader. (#2251)

  • Properly clone state of web request (#2284)

  • Fix C HTTP parser for cases when status line is split into different TCP packets. (#2311)

  • Fix web.FileResponse overriding user supplied Content-Type (#2317)

Improved Documentation

  • Add a note about possible performance degradation in await resp.text() if charset was not provided by Content-Type HTTP header. Pass explicit encoding to solve it. (#1811)

  • Drop disqus widget from documentation pages. (#2018)

  • Add a graceful shutdown section to the client usage documentation. (#2039)

  • Document connector_owner parameter. (#2072)

  • Update the doc of web.Application (#2081)

  • Fix mistake about access log disabling. (#2085)

  • Add example usage of on_startup and on_shutdown signals by creating and disposing an aiopg connection engine. (#2131)

  • Document encoded=True for yarl.URL, it disables all yarl transformations. (#2198)

  • Document that all app’s middleware factories are run for every request. (#2225)

  • Reflect the fact that default resolver is threaded one starting from aiohttp 1.1 (#2228)

Deprecations and Removals

  • Drop deprecated Server.finish_connections (#2006)

  • Drop %O format from logging, use %b instead. Drop %e format from logging, environment variables are not supported anymore. (#2123)

  • Drop deprecated secure_proxy_ssl_header support (#2171)

  • Removed TimeService in favor of simple caching. TimeService also had a bug where it lost about 0.5 seconds per second. (#2176)

  • Drop unused response_factory from static files API (#2290)

Misc

  • #2013, #2014, #2048, #2094, #2149, #2187, #2214, #2225, #2243, #2248

2.2.5 (2017-08-03)

  • Don’t raise deprecation warning on loop.run_until_complete(client.close()) (#2065)

2.2.4 (2017-08-02)

  • Fix issue with synchronous session closing when using ClientSession as an asynchronous context manager. (#2063)

2.2.3 (2017-07-04)

  • Fix _CoroGuard for python 3.4

2.2.2 (2017-07-03)

  • Allow await session.close() along with yield from session.close()

2.2.1 (2017-07-02)

  • Relax yarl requirement to 0.11+

  • Backport #2026: session.close is a coroutine (#2029)

2.2.0 (2017-06-20)

  • Add doc for add_head, update doc for add_get. (#1944)

  • Fixed consecutive calls for Response.write_eof.

  • Retain method attributes (e.g. __doc__) when registering synchronous handlers for resources. (#1953)

  • Added signal TERM handling in run_app to gracefully exit (#1932)

  • Fix websocket issues caused by frame fragmentation. (#1962)

  • Raise RuntimeError is you try to set the Content Length and enable chunked encoding at the same time (#1941)

  • Small update for unittest_run_loop

  • Use CIMultiDict for ClientRequest.skip_auto_headers (#1970)

  • Fix wrong startup sequence: test server and run_app() are not raise DeprecationWarning now (#1947)

  • Make sure cleanup signal is sent if startup signal has been sent (#1959)

  • Fixed server keep-alive handler, could cause 100% cpu utilization (#1955)

  • Connection can be destroyed before response get processed if await aiohttp.request(..) is used (#1981)

  • MultipartReader does not work with -OO (#1969)

  • Fixed ClientPayloadError with blank Content-Encoding header (#1931)

  • Support deflate encoding implemented in httpbin.org/deflate (#1918)

  • Fix BadStatusLine caused by extra CRLF after POST data (#1792)

  • Keep a reference to ClientSession in response object (#1985)

  • Deprecate undocumented app.on_loop_available signal (#1978)

2.1.0 (2017-05-26)

  • Added support for experimental async-tokio event loop written in Rust https://github.com/PyO3/tokio

  • Write to transport \r\n before closing after keepalive timeout, otherwise client can not detect socket disconnection. (#1883)

  • Only call loop.close in run_app if the user did not supply a loop. Useful for allowing clients to specify their own cleanup before closing the asyncio loop if they wish to tightly control loop behavior

  • Content disposition with semicolon in filename (#917)

  • Added request_info to response object and ClientResponseError. (#1733)

  • Added history to ClientResponseError. (#1741)

  • Allow to disable redirect url re-quoting (#1474)

  • Handle RuntimeError from transport (#1790)

  • Dropped “%O” in access logger (#1673)

  • Added args and kwargs to unittest_run_loop. Useful with other decorators, for example @patch. (#1803)

  • Added iter_chunks to response.content object. (#1805)

  • Avoid creating TimerContext when there is no timeout to allow compatibility with Tornado. (#1817) (#1180)

  • Add proxy_from_env to ClientRequest to read from environment variables. (#1791)

  • Add DummyCookieJar helper. (#1830)

  • Fix assertion errors in Python 3.4 from noop helper. (#1847)

  • Do not unquote + in match_info values (#1816)

  • Use Forwarded, X-Forwarded-Scheme and X-Forwarded-Host for better scheme and host resolution. (#1134)

  • Fix sub-application middlewares resolution order (#1853)

  • Fix applications comparison (#1866)

  • Fix static location in index when prefix is used (#1662)

  • Make test server more reliable (#1896)

  • Extend list of web exceptions, add HTTPUnprocessableEntity, HTTPFailedDependency, HTTPInsufficientStorage status codes (#1920)

2.0.7 (2017-04-12)

  • Fix pypi distribution

  • Fix exception description (#1807)

  • Handle socket error in FileResponse (#1773)

  • Cancel websocket heartbeat on close (#1793)

2.0.6 (2017-04-04)

  • Keeping blank values for request.post() and multipart.form() (#1765)

  • TypeError in data_received of ResponseHandler (#1770)

  • Fix web.run_app not to bind to default host-port pair if only socket is passed (#1786)

2.0.5 (2017-03-29)

  • Memory leak with aiohttp.request (#1756)

  • Disable cleanup closed ssl transports by default.

  • Exception in request handling if the server responds before the body is sent (#1761)

2.0.4 (2017-03-27)

  • Memory leak with aiohttp.request (#1756)

  • Encoding is always UTF-8 in POST data (#1750)

  • Do not add “Content-Disposition” header by default (#1755)

2.0.3 (2017-03-24)

  • Call https website through proxy will cause error (#1745)

  • Fix exception on multipart/form-data post if content-type is not set (#1743)

2.0.2 (2017-03-21)

  • Fixed Application.on_loop_available signal (#1739)

  • Remove debug code

2.0.1 (2017-03-21)

  • Fix allow-head to include name on route (#1737)

  • Fixed AttributeError in WebSocketResponse.can_prepare (#1736)

2.0.0 (2017-03-20)

  • Added json to ClientSession.request() method (#1726)

  • Added session’s raise_for_status parameter, automatically calls raise_for_status() on any request. (#1724)

  • response.json() raises ClientReponseError exception if response’s content type does not match (#1723)

    • Cleanup timer and loop handle on any client exception.

  • Deprecate loop parameter for Application’s constructor

2.0.0rc1 (2017-03-15)

  • Properly handle payload errors (#1710)

  • Added ClientWebSocketResponse.get_extra_info() (#1717)

  • It is not possible to combine Transfer-Encoding and chunked parameter, same for compress and Content-Encoding (#1655)

  • Connector’s limit parameter indicates total concurrent connections. New limit_per_host added, indicates total connections per endpoint. (#1601)

  • Use url’s raw_host for name resolution (#1685)

  • Change ClientResponse.url to yarl.URL instance (#1654)

  • Add max_size parameter to web.Request reading methods (#1133)

  • Web Request.post() stores data in temp files (#1469)

  • Add the allow_head=True keyword argument for add_get (#1618)

  • run_app and the Command Line Interface now support serving over Unix domain sockets for faster inter-process communication.

  • run_app now supports passing a preexisting socket object. This can be useful e.g. for socket-based activated applications, when binding of a socket is done by the parent process.

  • Implementation for Trailer headers parser is broken (#1619)

  • Fix FileResponse to not fall on bad request (range out of file size)

  • Fix FileResponse to correct stream video to Chromes

  • Deprecate public low-level api (#1657)

  • Deprecate encoding parameter for ClientSession.request() method

  • Dropped aiohttp.wsgi (#1108)

  • Dropped version from ClientSession.request() method

  • Dropped websocket version 76 support (#1160)

  • Dropped: aiohttp.protocol.HttpPrefixParser (#1590)

  • Dropped: Servers response’s .started, .start() and .can_start() method (#1591)

  • Dropped: Adding sub app via app.router.add_subapp() is deprecated use app.add_subapp() instead (#1592)

  • Dropped: Application.finish() and Application.register_on_finish() (#1602)

  • Dropped: web.Request.GET and web.Request.POST

  • Dropped: aiohttp.get(), aiohttp.options(), aiohttp.head(), aiohttp.post(), aiohttp.put(), aiohttp.patch(), aiohttp.delete(), and aiohttp.ws_connect() (#1593)

  • Dropped: aiohttp.web.WebSocketResponse.receive_msg() (#1605)

  • Dropped: ServerHttpProtocol.keep_alive_timeout attribute and keep-alive, keep_alive_on, timeout, log constructor parameters (#1606)

  • Dropped: TCPConnector’s` .resolve, .resolved_hosts, .clear_resolved_hosts() attributes and resolve constructor parameter (#1607)

  • Dropped ProxyConnector (#1609)

Project details


Release history Release notifications | RSS feed

This version

2.3.6

Download files

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

Source Distribution

aiohttp-2.3.6.tar.gz (846.1 kB view details)

Uploaded Source

Built Distributions

aiohttp-2.3.6-cp36-cp36m-win_amd64.whl (371.0 kB view details)

Uploaded CPython 3.6m Windows x86-64

aiohttp-2.3.6-cp36-cp36m-win32.whl (359.7 kB view details)

Uploaded CPython 3.6m Windows x86

aiohttp-2.3.6-cp36-cp36m-manylinux1_x86_64.whl (663.1 kB view details)

Uploaded CPython 3.6m

aiohttp-2.3.6-cp36-cp36m-manylinux1_i686.whl (635.4 kB view details)

Uploaded CPython 3.6m

aiohttp-2.3.6-cp36-cp36m-macosx_10_12_x86_64.whl (376.4 kB view details)

Uploaded CPython 3.6m macOS 10.12+ x86-64

aiohttp-2.3.6-cp36-cp36m-macosx_10_11_x86_64.whl (384.1 kB view details)

Uploaded CPython 3.6m macOS 10.11+ x86-64

aiohttp-2.3.6-cp36-cp36m-macosx_10_10_x86_64.whl (384.5 kB view details)

Uploaded CPython 3.6m macOS 10.10+ x86-64

aiohttp-2.3.6-cp35-cp35m-win_amd64.whl (369.1 kB view details)

Uploaded CPython 3.5m Windows x86-64

aiohttp-2.3.6-cp35-cp35m-win32.whl (358.1 kB view details)

Uploaded CPython 3.5m Windows x86

aiohttp-2.3.6-cp35-cp35m-manylinux1_x86_64.whl (648.7 kB view details)

Uploaded CPython 3.5m

aiohttp-2.3.6-cp35-cp35m-manylinux1_i686.whl (619.2 kB view details)

Uploaded CPython 3.5m

aiohttp-2.3.6-cp35-cp35m-macosx_10_12_x86_64.whl (375.0 kB view details)

Uploaded CPython 3.5m macOS 10.12+ x86-64

aiohttp-2.3.6-cp35-cp35m-macosx_10_11_x86_64.whl (381.8 kB view details)

Uploaded CPython 3.5m macOS 10.11+ x86-64

aiohttp-2.3.6-cp35-cp35m-macosx_10_10_x86_64.whl (382.0 kB view details)

Uploaded CPython 3.5m macOS 10.10+ x86-64

aiohttp-2.3.6-cp34-cp34m-win_amd64.whl (364.6 kB view details)

Uploaded CPython 3.4m Windows x86-64

aiohttp-2.3.6-cp34-cp34m-win32.whl (357.7 kB view details)

Uploaded CPython 3.4m Windows x86

aiohttp-2.3.6-cp34-cp34m-manylinux1_x86_64.whl (655.2 kB view details)

Uploaded CPython 3.4m

aiohttp-2.3.6-cp34-cp34m-manylinux1_i686.whl (629.2 kB view details)

Uploaded CPython 3.4m

aiohttp-2.3.6-cp34-cp34m-macosx_10_12_x86_64.whl (377.2 kB view details)

Uploaded CPython 3.4m macOS 10.12+ x86-64

aiohttp-2.3.6-cp34-cp34m-macosx_10_11_x86_64.whl (382.3 kB view details)

Uploaded CPython 3.4m macOS 10.11+ x86-64

aiohttp-2.3.6-cp34-cp34m-macosx_10_10_x86_64.whl (382.3 kB view details)

Uploaded CPython 3.4m macOS 10.10+ x86-64

File details

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

File metadata

  • Download URL: aiohttp-2.3.6.tar.gz
  • Upload date:
  • Size: 846.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiohttp-2.3.6.tar.gz
Algorithm Hash digest
SHA256 0111b4c71d1121bfcbd392bbabd573d20f133f491161b87718a07976e0459c32
MD5 b8683d16f4e45fbb5a28bae5d7dc1ea7
BLAKE2b-256 3c1da7479eee24e13ed4cfe543f5c1417972c4db5f24c9adbb87fa52f5e0eb1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d944aacf988a32ccbe62d3f2533ed8beb1c08dbed96260c5f1cd76fae0539f5c
MD5 4e89425ba83b03fa14fde4848ccd1617
BLAKE2b-256 eaa885a9e39f2e6117f92398511a2e1e8fb57f1dd6c53f9b521a51c35ca2b46a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 d5ea7feae3cd8e64469ca9d3a6da4981f251b884997007e073cdebc0919a3b55
MD5 ce15180da8b06544e27d78b599f24cc9
BLAKE2b-256 d557ebec1374f320e4a0d282bec69fdee61dccaf7325f03abf9ccf756e9e0b77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 850061409274d2528ff78f773da680eab57efd08efadfe035a92c1c20a46964b
MD5 08caf6de4714827f3d18f77f4f7d9400
BLAKE2b-256 5675bbb1fdd6f789384c82bb74310046b7ead585538c1472a1944c8266d5dee8

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp36-cp36m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 dc118fae7e6353166a51caecc2044cd3390688fce57d2330b803fc86ffb48b2e
MD5 68bfa2d125c5dd031fdf7f9bf05f5a8b
BLAKE2b-256 7e450afed9e4e4f2d7d67ece1f909fa5984813e127682cfe72c03b31c9a03be8

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp36-cp36m-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f25aac47a1b6e784de0dc4fae2ce1aeaf1c0717801632eec17a304b21e34056f
MD5 75aad5dfe0fb7b07ffcf74827a9f28e4
BLAKE2b-256 df26ff98eb7722aa843f29c9f22f7d6fefee9234318bc3ebed1a6c773d6ad0ab

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp36-cp36m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 6be8389b9de30d31946b1ed3cbec37427646851b763e2f4cab1ba0b87709c3af
MD5 3a5a0147ea3f5b6ba5ba99583ab6b7a6
BLAKE2b-256 72f6a7480c6707d0ec22a9bc60a6dedf5c80a2340e4eb0ce90c5c65cbd0c0c2d

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp36-cp36m-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp36-cp36m-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 65388aeda85d72b8219c3f8ba33261bc8576da0852e758c555eb17ca2a3069c4
MD5 776c76c43987322729f9d039f4ec8b17
BLAKE2b-256 53d177e8363a9a3a44f0aa0e6d714fb314eb31cafafd856a9fc4edea01592783

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp35-cp35m-win_amd64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 d367eba9aed4f10ee7a85cdfbfe2a2f492c36d0e34785b97cbc9e9c3b3168c12
MD5 e8d651f5e760bac20ed498922bbd65af
BLAKE2b-256 15a51bd80c78e4bb8dfc69e087d5d9e0005798661049773cbf5821ff0555eb93

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp35-cp35m-win32.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 e20e1b73e7da29b45915cde65fbec1693df221024522bbc38f017e6de101482a
MD5 241afffa533ec25fd3fb070975cd5634
BLAKE2b-256 de2787f7dffe8be2e7fbda81fa4f317cd2a30c0e02a820a597264faa2b7eb481

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3d0a11291d70d82a58dd404a89f0a5294e2b2008cf33f8bbac91dbcf3241fcbe
MD5 a82ecf0747209540a0d9ba2a7b2616b6
BLAKE2b-256 1e4d4e64755839101288b6599d74459dd639e1359e7d88b5aa3f3ef4d6374488

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp35-cp35m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 2fcec70bcb60f86b1abdf2c9d28b65e53c52a2325001f2cf7ef7afa5bd5387f4
MD5 76d9b20782caf3e0dfaf59362e9a19f5
BLAKE2b-256 20dfbda0caeb10f67f9a572483d12e0296a8511743772a010da4830f2f0b8ef9

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp35-cp35m-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8c14ca8069c0b04aa1c47ec26c494b56bf9dec8085c8cadc655b9cad9719a0df
MD5 b372783b22e4ab75151692f0a0ea9361
BLAKE2b-256 eeb0bc27cc39a833aab5c27cbc81651983e0fa932bbba44a2acee24cf6c6eca0

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp35-cp35m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 dbe39eac8a05e2e3b6b8a656dce589bbe3a0d1ab2816e44e64b7595b7bfc1568
MD5 f2fe435859ed441f83d3c82520ca6e00
BLAKE2b-256 50d4dcda39f89c7d040a4311e1294c99b78188dabc52be14b71c6cbd56e5cb0c

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp35-cp35m-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp35-cp35m-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 cc1eee0746ab0c876e246960fdb5a839e63e673b8089c79a4c21f4cba66bcd00
MD5 cf9c3757db8e6e0caea120c5d77b436c
BLAKE2b-256 5323430e9446ac8fe311211f73050e085027a23f1c4cf97cb81eeb70e255cd7f

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-win_amd64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-win_amd64.whl
Algorithm Hash digest
SHA256 74ccdd450da8fb2ac29add97624ee4b573c8891b14c7b833a954343f05aa8772
MD5 717325f2e9c385490f13b657a00866ae
BLAKE2b-256 4642e36f31459b0cc051711fc5e554dcbf240d839c25947b778f8c513839799f

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-win32.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-win32.whl
Algorithm Hash digest
SHA256 14e2f6cd6bc9e40fc79d6d2573fc08231546418f116dcbd30942fb57eec92104
MD5 79363696d4ccb1efccca42cf2bd95717
BLAKE2b-256 c40b5df931d625eb8ca068eacf523dafbc4ee23b7d528fb3eff9b61571b73de9

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 524107f04ead82e0684f4bcd915fc3d5c936dbcf86d017b8339e396005879085
MD5 809d30e5666d1e146a2dece07bcbb232
BLAKE2b-256 8bfc6857e2748caad478940de59312f8c7efeda6bbbc30394488b88afb2a0a16

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 3aaf110f4635db5a1d01f624e441cbcf9c23490d113d8b0c5727f119136d5663
MD5 90f1a4a687c568e14ec9a07d9ffcd4b2
BLAKE2b-256 11f9892c97b30fea283ecfb9f8d1288a8911c9ba40516fb7274672cbd0b099c0

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c45d2f20357f04ebb9957074a5139316c01c635f21a54f833ce560846dee795c
MD5 67372200207c68e484ecd0d732e7e422
BLAKE2b-256 ec4e53c67442b20167b580a36108e8440d86fdc3baf6289ba5e798061cafc78d

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 cca6a8715694e0913419b6c0712e33e77d59b73428dd7e9ff18e27851df53a94
MD5 ddc63b9d522620c2a4cc596410a874b9
BLAKE2b-256 515861abf8c83a00538e3e5269bf98854f5c7152301bfe7856a601c2b55f2f8f

See more details on using hashes here.

File details

Details for the file aiohttp-2.3.6-cp34-cp34m-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for aiohttp-2.3.6-cp34-cp34m-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 7a2029dcb3e59d70c4520ce95c477577962753b302e3b969c3c97043bd20bc40
MD5 63616d141be0d7a1c2e6f4a498a1a83e
BLAKE2b-256 fbec67052c62caecbf3eb77392967300478bfe9afd94464e90bdcc7bf445b34e

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