Update dependency aiohttp to v3.8.1 (develop)
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
aiohttp | dependencies | minor |
==3.7.4.post0 -> ==3.8.1
|
Release Notes
aio-libs/aiohttp
v3.8.1
==================
Bugfixes
- Fix the error in handling the return value of
getaddrinfo
.getaddrinfo
will return an(int, bytes)
tuple, if CPython could not handle the address family. It will cause an index out of range error in aiohttp. For example, if user compile CPython with--disable-ipv6
option, but his system enable the ipv6.#​5901 <https://github.com/aio-libs/aiohttp/issues/5901>
_ - Do not install "examples" as a top-level package.
#​6189 <https://github.com/aio-libs/aiohttp/issues/6189>
_ - Restored ability to connect IPv6-only host.
#​6195 <https://github.com/aio-libs/aiohttp/issues/6195>
_ - Remove
Signal
from__all__
, replaceaiohttp.Signal
withaiosignal.Signal
in docs#​6201 <https://github.com/aio-libs/aiohttp/issues/6201>
_ - Made chunked encoding HTTP header check stricter.
#​6305 <https://github.com/aio-libs/aiohttp/issues/6305>
_
Improved Documentation
- update quick starter demo codes.
#​6240 <https://github.com/aio-libs/aiohttp/issues/6240>
_ - Added an explanation of how tiny timeouts affect performance to the client reference document.
#​6274 <https://github.com/aio-libs/aiohttp/issues/6274>
_ - Add flake8-docstrings to flake8 configuration, enable subset of checks.
#​6276 <https://github.com/aio-libs/aiohttp/issues/6276>
_ - Added information on running complex applications with additional tasks/processes -- :user:
Dreamsorcerer
.#​6278 <https://github.com/aio-libs/aiohttp/issues/6278>
_
Misc
-
#​6205 <https://github.com/aio-libs/aiohttp/issues/6205>
_
v3.8.0
==================
Features
-
Added a
GunicornWebWorker
feature for extending the aiohttp server configuration by allowing the 'wsgi' coroutine to returnweb.AppRunner
object.#​2988 <https://github.com/aio-libs/aiohttp/issues/2988>
_ -
Switch from
http-parser
tollhttp
#​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
readuntil
inStreamResponse
#​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>
_ -
AioHTTPTestCase
is more async friendly now.For people who use unittest and are used to use :py:exc:
~unittest.TestCase
it will be easier to write new test cases like the sync version of the :py:exc:~unittest.TestCase
class, 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_domain
to 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.AiohttpClient
for static typing of pytest plugin.#​5585 <https://github.com/aio-libs/aiohttp/issues/5585>
_ -
Added a
socket_factory
argument 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
chardet
tocharset-normalizer
for 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:
asyncio
supports it -- by :user:bmbouter
, :user:jborean93
and :user:webknjaz
.#​5992 <https://github.com/aio-libs/aiohttp/issues/5992>
_ -
Added
base_url
parameter 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
musl
tag 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
MultiLoopChildWatcher
when 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_proxy
environment 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
and
WSRequestContextManager``#​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
ClientResponse
object on calls to theok
property for the failed requests.#​5403 <https://github.com/aio-libs/aiohttp/issues/5403>
_ - Include query parameters from
params
keyword 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.BufferedRandom
instances 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.py
with call toweb.run_app
; replace deprecatedaiohttp.ws_connect
calls intests/autobahn/client.py
withaiohttp.ClienSession.ws_connect
.#​5606 <https://github.com/aio-libs/aiohttp/issues/5606>
_ - Fixed test for
HTTPUnauthorized
that access thetext
argument. 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
params
keyword argument toClientSession.ws_connect
. -- :user:hoh
.#​5868 <https://github.com/aio-libs/aiohttp/issues/5868>
_ - Uses :py:class:
~asyncio.ThreadedChildWatcher
under 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
.getaddrinfo
will 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-ipv6
option but his system enable the ipv6.#​5901 <https://github.com/aio-libs/aiohttp/issues/5901>
_ - Removed the deprecated
loop
argument from theasyncio.sleep
/gather
calls#​5905 <https://github.com/aio-libs/aiohttp/issues/5905>
_ - Return
None
fromrequest.if_modified_since
,request.if_unmodified_since
,request.if_range
andresponse.last_modified
when corresponding http date headers are invalid.#​5925 <https://github.com/aio-libs/aiohttp/issues/5925>
_ - Fix resetting
SIGCHLD
signals in Gunicorn aiohttp Worker to fixsubprocesses
that capture output having an incorrectreturncode
.#​6130 <https://github.com/aio-libs/aiohttp/issues/6130>
_ - Raise
400: Content-Length can't be present with Transfer-Encoding
if bothContent-Length
andTransfer-Encoding
are 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
Authorization
header 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.