Update dependency aiohttp to v3.8.0 - autoclosed
This MR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| aiohttp |
==3.7.4.post0 -> ==3.8.0
|
Release Notes
aio-libs/aiohttp
v3.8.0
==================
Features
-
Added a
GunicornWebWorkerfeature for extending the aiohttp server configuration by allowing the 'wsgi' coroutine to returnweb.AppRunnerobject.#​2988 <https://github.com/aio-libs/aiohttp/issues/2988>_ -
Switch from
http-parsertollhttp#​3561 <https://github.com/aio-libs/aiohttp/issues/3561>_ -
Use Brotli instead of brotlipy
#​3803 <https://github.com/aio-libs/aiohttp/issues/3803>_ -
Disable implicit switch-back to pure python mode. The build fails loudly if aiohttp cannot be compiled with C Accelerators. Use AIOHTTP_NO_EXTENSIONS=1 to explicitly disable C Extensions complication and switch to Pure-Python mode. Note that Pure-Python mode is significantly slower than compiled one.
#​3828 <https://github.com/aio-libs/aiohttp/issues/3828>_ -
Make access log use local time with timezone
#​3853 <https://github.com/aio-libs/aiohttp/issues/3853>_ -
Implemented
readuntilinStreamResponse#​4054 <https://github.com/aio-libs/aiohttp/issues/4054>_ -
FileResponse now supports ETag.
#​4594 <https://github.com/aio-libs/aiohttp/issues/4594>_ -
Add a request handler type alias
aiohttp.typedefs.Handler.#​4686 <https://github.com/aio-libs/aiohttp/issues/4686>_ -
AioHTTPTestCaseis more async friendly now.For people who use unittest and are used to use :py:exc:
~unittest.TestCaseit will be easier to write new test cases like the sync version of the :py:exc:~unittest.TestCaseclass, without using the decorator@unittest_run_loop, justasync def test_*. The only difference is that for the people using python3.7 and below a new dependency is needed, it isasynctestcase.#​4700 <https://github.com/aio-libs/aiohttp/issues/4700>_ -
Add validation of HTTP header keys and values to prevent header injection.
#​4818 <https://github.com/aio-libs/aiohttp/issues/4818>_ -
Add predicate to
AbstractCookieJar.clear. AddAbstractCookieJar.clear_domainto clean all domain and subdomains cookies only.#​4942 <https://github.com/aio-libs/aiohttp/issues/4942>_ -
Add keepalive_timeout parameter to web.run_app.
#​5094 <https://github.com/aio-libs/aiohttp/issues/5094>_ -
Tracing for client sent headers
#​5105 <https://github.com/aio-libs/aiohttp/issues/5105>_ -
Make type hints for http parser stricter
#​5267 <https://github.com/aio-libs/aiohttp/issues/5267>_ -
Add final declarations for constants.
#​5275 <https://github.com/aio-libs/aiohttp/issues/5275>_ -
Switch to external frozenlist and aiosignal libraries.
#​5293 <https://github.com/aio-libs/aiohttp/issues/5293>_ -
Don't send secure cookies by insecure transports.
By default, the transport is secure if https or wss scheme is used. Use
CookieJar(treat_as_secure_origin="http://127.0.0.1")to override the default security checker.#​5571 <https://github.com/aio-libs/aiohttp/issues/5571>_ -
Always create a new event loop in
aiohttp.web.run_app(). This adds better compatibility withasyncio.run()or if trying to run multiple apps in sequence.#​5572 <https://github.com/aio-libs/aiohttp/issues/5572>_ -
Add
aiohttp.pytest_plugin.AiohttpClientfor static typing of pytest plugin.#​5585 <https://github.com/aio-libs/aiohttp/issues/5585>_ -
Added a
socket_factoryargument toBaseTestServer.#​5844 <https://github.com/aio-libs/aiohttp/issues/5844>_ -
Add compression strategy parameter to enable_compression method.
#​5909 <https://github.com/aio-libs/aiohttp/issues/5909>_ -
Added support for Python 3.10 to Github Actions CI/CD workflows and fix the related deprecation warnings -- :user:
Hanaasagi.#​5927 <https://github.com/aio-libs/aiohttp/issues/5927>_ -
Switched
chardettocharset-normalizerfor guessing the HTTP payload body encoding -- :user:Ousret.#​5930 <https://github.com/aio-libs/aiohttp/issues/5930>_ -
Added optional auto_decompress argument for HttpRequestParser
#​5957 <https://github.com/aio-libs/aiohttp/issues/5957>_ -
Added support for HTTPS proxies to the extent CPython's :py:mod:
asynciosupports it -- by :user:bmbouter, :user:jborean93and :user:webknjaz.#​5992 <https://github.com/aio-libs/aiohttp/issues/5992>_ -
Added
base_urlparameter to the initializer of :class:~aiohttp.ClientSession.#​6013 <https://github.com/aio-libs/aiohttp/issues/6013>_ -
Add Trove classifier and create binary wheels for 3.10. -- :user:
hugovk.#​6079 <https://github.com/aio-libs/aiohttp/issues/6079>_ -
Started shipping platform-specific wheels with the
musltag targeting typical Alpine Linux runtimes — :user:asvetlov.#​6139 <https://github.com/aio-libs/aiohttp/issues/6139>_ -
Started shipping platform-specific arm64 wheels for Apple Silicon — :user:
asvetlov.#​6139 <https://github.com/aio-libs/aiohttp/issues/6139>_
Bugfixes
- Modify drain_helper() to handle concurrent
await resp.write(...)orws.send_json(...)calls without race-condition.#​2934 <https://github.com/aio-libs/aiohttp/issues/2934> - Started using
MultiLoopChildWatcherwhen it's available under POSIX while setting up the test I/O loop.#​3450 <https://github.com/aio-libs/aiohttp/issues/3450>_ - Only encode content-disposition filename parameter using percent-encoding.
Other parameters are encoded to quoted-string or RFC2231 extended parameter
value.
#​4012 <https://github.com/aio-libs/aiohttp/issues/4012>_ - Fixed HTTP client requests to honor
no_proxyenvironment variables.#​4431 <https://github.com/aio-libs/aiohttp/issues/4431>_ - Fix supporting WebSockets proxies configured via environment variables.
#​4648 <https://github.com/aio-libs/aiohttp/issues/4648>_ - Change return type on URLDispatcher to UrlMappingMatchInfo to improve type annotations.
#​4748 <https://github.com/aio-libs/aiohttp/issues/4748>_ - Ensure a cleanup context is cleaned up even when an exception occurs during startup.
#​4799 <https://github.com/aio-libs/aiohttp/issues/4799>_ - Added a new exception type for Unix socket client errors which provides a more useful error message.
#​4984 <https://github.com/aio-libs/aiohttp/issues/4984>_ - Remove Transfer-Encoding and Content-Type headers for 204 in StreamResponse
#​5106 <https://github.com/aio-libs/aiohttp/issues/5106>_ - Only depend on typing_extensions for Python <3.8
#​5107 <https://github.com/aio-libs/aiohttp/issues/5107>_ - Add ABNORMAL_CLOSURE and BAD_GATEWAY to WSCloseCode
#​5192 <https://github.com/aio-libs/aiohttp/issues/5192>_ - Fix cookies disappearing from HTTPExceptions.
#​5233 <https://github.com/aio-libs/aiohttp/issues/5233>_ - StaticResource prefixes no longer match URLs with a non-folder prefix. For example
routes.static('/foo', '/foo')no longer matches the URL/foobar. Previously, this would attempt to load the file/foo/ar.#​5250 <https://github.com/aio-libs/aiohttp/issues/5250>_ - Acquire the connection before running traces to prevent race condition.
#​5259 <https://github.com/aio-libs/aiohttp/issues/5259>_ - Add missing slots to ```_RequestContextManager
andWSRequestContextManager``#​5329 <https://github.com/aio-libs/aiohttp/issues/5329> - Ensure sending a zero byte file does not throw an exception (round 2)
#​5380 <https://github.com/aio-libs/aiohttp/issues/5380>_ - Set "text/plain" when data is an empty string in client requests.
#​5392 <https://github.com/aio-libs/aiohttp/issues/5392>_ - Stop automatically releasing the
ClientResponseobject on calls to theokproperty for the failed requests.#​5403 <https://github.com/aio-libs/aiohttp/issues/5403>_ - Include query parameters from
paramskeyword argument in tracingURL.#​5432 <https://github.com/aio-libs/aiohttp/issues/5432>_ - Fix annotations
#​5466 <https://github.com/aio-libs/aiohttp/issues/5466>_ - Fixed the multipart POST requests processing to always release file
descriptors for the
tempfile.Temporaryfile-created_io.BufferedRandominstances of files sent within multipart request bodies via HTTP POST requests -- by :user:webknjaz.#​5494 <https://github.com/aio-libs/aiohttp/issues/5494>_ - Fix 0 being incorrectly treated as an immediate timeout.
#​5527 <https://github.com/aio-libs/aiohttp/issues/5527>_ - Fixes failing tests when an environment variable proxy is set.
#​5554 <https://github.com/aio-libs/aiohttp/issues/5554> - Replace deprecated app handler design in
tests/autobahn/server.pywith call toweb.run_app; replace deprecatedaiohttp.ws_connectcalls intests/autobahn/client.pywithaiohttp.ClienSession.ws_connect.#​5606 <https://github.com/aio-libs/aiohttp/issues/5606>_ - Fixed test for
HTTPUnauthorizedthat access thetextargument. This is not used in any part of the code, so it's removed now.#​5657 <https://github.com/aio-libs/aiohttp/issues/5657>_ - Remove incorrect default from docs
#​5727 <https://github.com/aio-libs/aiohttp/issues/5727>_ - Remove external test dependency to http://httpbin.org
#​5840 <https://github.com/aio-libs/aiohttp/issues/5840>_ - Don't cancel current task when entering a cancelled timer.
#​5853 <https://github.com/aio-libs/aiohttp/issues/5853>_ - Added
paramskeyword argument toClientSession.ws_connect. -- :user:hoh.#​5868 <https://github.com/aio-libs/aiohttp/issues/5868>_ - Uses :py:class:
~asyncio.ThreadedChildWatcherunder POSIX to allow setting up test loop in non-main thread.#​5877 <https://github.com/aio-libs/aiohttp/issues/5877>_ - Fix the error in handling the return value of
getaddrinfo.getaddrinfowill return an(int, bytes)tuple, if CPython could not handle the address family. It will cause a index out of range error in aiohttp. For example, if user compile CPython with--disable-ipv6option but his system enable the ipv6.#​5901 <https://github.com/aio-libs/aiohttp/issues/5901>_ - Removed the deprecated
loopargument from theasyncio.sleep/gathercalls#​5905 <https://github.com/aio-libs/aiohttp/issues/5905>_ - Return
Nonefromrequest.if_modified_since,request.if_unmodified_since,request.if_rangeandresponse.last_modifiedwhen corresponding http date headers are invalid.#​5925 <https://github.com/aio-libs/aiohttp/issues/5925>_ - Fix resetting
SIGCHLDsignals in Gunicorn aiohttp Worker to fixsubprocessesthat capture output having an incorrectreturncode.#​6130 <https://github.com/aio-libs/aiohttp/issues/6130>_ - Raise
400: Content-Length can't be present with Transfer-Encodingif bothContent-LengthandTransfer-Encodingare sent by peer by both C and Python implementations#​6182 <https://github.com/aio-libs/aiohttp/issues/6182>_
Improved Documentation
- Refactored OpenAPI/Swagger aiohttp addons, added
aio-openapi#​5326 <https://github.com/aio-libs/aiohttp/issues/5326>_ - Fixed docs on request cookies type, so it matches what is actually used in the code (a
read-only dictionary-like object).
#​5725 <https://github.com/aio-libs/aiohttp/issues/5725>_ - Documented that the HTTP client
Authorizationheader is removed on redirects to a different host or protocol.#​5850 <https://github.com/aio-libs/aiohttp/issues/5850>_
Misc
-
#​3927 <https://github.com/aio-libs/aiohttp/issues/3927>*,#​4247 <https://github.com/aio-libs/aiohttp/issues/4247>*,#​4247 <https://github.com/aio-libs/aiohttp/issues/4247>*,#​5389 <https://github.com/aio-libs/aiohttp/issues/5389>*,#​5457 <https://github.com/aio-libs/aiohttp/issues/5457>*,#​5486 <https://github.com/aio-libs/aiohttp/issues/5486>*,#​5494 <https://github.com/aio-libs/aiohttp/issues/5494>*,#​5515 <https://github.com/aio-libs/aiohttp/issues/5515>*,#​5625 <https://github.com/aio-libs/aiohttp/issues/5625>*,#​5635 <https://github.com/aio-libs/aiohttp/issues/5635>*,#​5648 <https://github.com/aio-libs/aiohttp/issues/5648>*,#​5657 <https://github.com/aio-libs/aiohttp/issues/5657>*,#​5890 <https://github.com/aio-libs/aiohttp/issues/5890>*,#​5914 <https://github.com/aio-libs/aiohttp/issues/5914>*,#​5932 <https://github.com/aio-libs/aiohttp/issues/5932>*,#​6002 <https://github.com/aio-libs/aiohttp/issues/6002>*,#​6045 <https://github.com/aio-libs/aiohttp/issues/6045>*,#​6131 <https://github.com/aio-libs/aiohttp/issues/6131>*,#​6156 <https://github.com/aio-libs/aiohttp/issues/6156>*,#​6165 <https://github.com/aio-libs/aiohttp/issues/6165>*,#​6166 <https://github.com/aio-libs/aiohttp/issues/6166>_
Configuration
-
If you want to rebase/retry this MR, click this checkbox.
This MR has been generated by Renovate Bot.