Update dependency aiohttp to v3.9.0 (main) #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==3.8.5->==3.9.0By merging this PR, the issue #3 will be automatically resolved and closed:
Release Notes
aio-libs/aiohttp (aiohttp)
v3.9.0Compare Source
==================
Features
Introduced
AppKeyfor static typing support ofApplicationstorage.See https://docs.aiohttp.org/en/stable/web_advanced.html#application-s-config
#​5864 <https://github.com/aio-libs/aiohttp/issues/5864>_Added a graceful shutdown period which allows pending tasks to complete before the application's cleanup is called.
The period can be adjusted with the
shutdown_timeoutparameter. -- by :user:Dreamsorcerer.See https://docs.aiohttp.org/en/latest/web_advanced.html#graceful-shutdown
#​7188 <https://github.com/aio-libs/aiohttp/issues/7188>_Added
handler_cancellation <https://docs.aiohttp.org/en/stable/web_advanced.html#web-handler-cancellation>_ parameter to cancel web handler on client disconnection. -- by :user:mosquitoThis (optionally) reintroduces a feature removed in a previous release.
Recommended for those looking for an extra level of protection against denial-of-service attacks.
#​7056 <https://github.com/aio-libs/aiohttp/issues/7056>_Added support for setting response header parameters
max_line_sizeandmax_field_size.#​2304 <https://github.com/aio-libs/aiohttp/issues/2304>_Added
auto_decompressparameter toClientSession.requestto overrideClientSession._auto_decompress. -- by :user:Daste745#​3751 <https://github.com/aio-libs/aiohttp/issues/3751>_Changed
raise_for_statusto allow a coroutine.#​3892 <https://github.com/aio-libs/aiohttp/issues/3892>_Added client brotli compression support (optional with runtime check).
#​5219 <https://github.com/aio-libs/aiohttp/issues/5219>_Added
client_max_sizetoBaseRequest.clone()to allow overriding the request body size. -- :user:anesabml.#​5704 <https://github.com/aio-libs/aiohttp/issues/5704>_Added a middleware type alias
aiohttp.typedefs.Middleware.#​5898 <https://github.com/aio-libs/aiohttp/issues/5898>_Exported
HTTPMovewhich can be used to catch any redirection requestthat has a location -- :user:
dreamsorcerer.#​6594 <https://github.com/aio-libs/aiohttp/issues/6594>_Changed the
pathparameter inweb.run_app()to accept apathlib.Pathobject.#​6839 <https://github.com/aio-libs/aiohttp/issues/6839>_Performance: Skipped filtering
CookieJarwhen the jar is empty or all cookies have expired.#​7819 <https://github.com/aio-libs/aiohttp/issues/7819>_Performance: Only check origin if insecure scheme and there are origins to treat as secure, in
CookieJar.filter_cookies().#​7821 <https://github.com/aio-libs/aiohttp/issues/7821>_Performance: Used timestamp instead of
datetimeto achieve faster cookie expiration inCookieJar.#​7824 <https://github.com/aio-libs/aiohttp/issues/7824>_Added support for passing a custom server name parameter to HTTPS connection.
#​7114 <https://github.com/aio-libs/aiohttp/issues/7114>_Added support for using Basic Auth credentials from :file:
.netrcfile when making HTTP requests with the:py:class:
~aiohttp.ClientSessiontrust_envargument is set toTrue. -- by :user:yuvipanda.#​7131 <https://github.com/aio-libs/aiohttp/issues/7131>_Turned access log into no-op when the logger is disabled.
#​7240 <https://github.com/aio-libs/aiohttp/issues/7240>_Added typing information to
RawResponseMessage. -- by :user:Gobot1234#​7365 <https://github.com/aio-libs/aiohttp/issues/7365>_Removed
async-timeoutfor Python 3.11+ (replaced withasyncio.timeout()on newer releases).#​7502 <https://github.com/aio-libs/aiohttp/issues/7502>_Added support for
brotlicffias an alternative tobrotli(fixing Brotli support on PyPy).#​7611 <https://github.com/aio-libs/aiohttp/issues/7611>_Added
WebSocketResponse.get_extra_info()to access a protocol transport's extra info.#​7078 <https://github.com/aio-libs/aiohttp/issues/7078>_Allow
linkargument to be set to None/empty in HTTP 451 exception.#​7689 <https://github.com/aio-libs/aiohttp/issues/7689>_Bugfixes
Implemented stripping the trailing dots from fully-qualified domain names in
Hostheaders and TLS context when acting as an HTTP client.This allows the client to connect to URLs with FQDN host name like
https://example.com./.-- by :user:
martin-sucha.#​3636 <https://github.com/aio-libs/aiohttp/issues/3636>_Fixed client timeout not working when incoming data is always available without waiting. -- by :user:
Dreamsorcerer.#​5854 <https://github.com/aio-libs/aiohttp/issues/5854>_Fixed
readuntilto work with a delimiter of more than one character.#​6701 <https://github.com/aio-libs/aiohttp/issues/6701>_Added
__repr__toEmptyStreamReaderto avoidAttributeError.#​6916 <https://github.com/aio-libs/aiohttp/issues/6916>_Fixed bug when using
TCPConnectorwithttl_dns_cache=0.#​7014 <https://github.com/aio-libs/aiohttp/issues/7014>_Fixed response returned from expect handler being thrown away. -- by :user:
Dreamsorcerer#​7025 <https://github.com/aio-libs/aiohttp/issues/7025>_Avoided raising
UnicodeDecodeErrorin multipart and in HTTP headers parsing.#​7044 <https://github.com/aio-libs/aiohttp/issues/7044>_Changed
sock_readtimeout to start after writing has finished, avoiding read timeouts caused by an unfinished write. -- by :user:dtrifiro#​7149 <https://github.com/aio-libs/aiohttp/issues/7149>_Fixed missing query in tracing method URLs when using
yarl1.9+.#​7259 <https://github.com/aio-libs/aiohttp/issues/7259>_Changed max 32-bit timestamp to an aware datetime object, for consistency with the non-32-bit one, and to avoid a
DeprecationWarningon Python 3.12.#​7302 <https://github.com/aio-libs/aiohttp/issues/7302>_Fixed
EmptyStreamReader.iter_chunks()never ending. -- by :user:mind1m#​7616 <https://github.com/aio-libs/aiohttp/issues/7616>_Fixed a rare
RuntimeError: await wasn't used with futureexception. -- by :user:stalkerg#​7785 <https://github.com/aio-libs/aiohttp/issues/7785>_Fixed issue with insufficient HTTP method and version validation.
#​7700 <https://github.com/aio-libs/aiohttp/issues/7700>_Added check to validate that absolute URIs have schemes.
#​7712 <https://github.com/aio-libs/aiohttp/issues/7712>_Fixed unhandled exception when Python HTTP parser encounters unpaired Unicode surrogates.
#​7715 <https://github.com/aio-libs/aiohttp/issues/7715>_Updated parser to disallow invalid characters in header field names and stop accepting LF as a request line separator.
#​7719 <https://github.com/aio-libs/aiohttp/issues/7719>_Fixed Python HTTP parser not treating 204/304/1xx as an empty body.
#​7755 <https://github.com/aio-libs/aiohttp/issues/7755>_Ensure empty body response for 1xx/204/304 per RFC 9112 sec 6.3.
#​7756 <https://github.com/aio-libs/aiohttp/issues/7756>_Fixed an issue when a client request is closed before completing a chunked payload. -- by :user:
Dreamsorcerer#​7764 <https://github.com/aio-libs/aiohttp/issues/7764>_Edge Case Handling for ResponseParser for missing reason value.
#​7776 <https://github.com/aio-libs/aiohttp/issues/7776>_Fixed
ClientWebSocketResponse.close_codebeing erroneously set toNonewhen there are concurrent async tasks receiving data and closing the connection.#​7306 <https://github.com/aio-libs/aiohttp/issues/7306>_Added HTTP method validation.
#​6533 <https://github.com/aio-libs/aiohttp/issues/6533>_Fixed arbitrary sequence types being allowed to inject values via version parameter. -- by :user:
Dreamsorcerer#​7835 <https://github.com/aio-libs/aiohttp/issues/7835>_Performance: Fixed increase in latency with small messages from websocket compression changes.
#​7797 <https://github.com/aio-libs/aiohttp/issues/7797>_Improved Documentation
Fixed the
ClientResponse.release's type in the doc. Changed fromcomethodtomethod.#​5836 <https://github.com/aio-libs/aiohttp/issues/5836>_Added information on behavior of base_url parameter in
ClientSession.#​6647 <https://github.com/aio-libs/aiohttp/issues/6647>_Fixed
ClientResponseErrordocs.#​6700 <https://github.com/aio-libs/aiohttp/issues/6700>_Updated Redis code examples to follow the latest API.
#​6907 <https://github.com/aio-libs/aiohttp/issues/6907>_Added a note about possibly needing to update headers when using
on_response_prepare. -- by :user:Dreamsorcerer#​7283 <https://github.com/aio-libs/aiohttp/issues/7283>_Completed
trust_envparameter description to honorwss_proxy,ws_proxyorno_proxyenv.#​7325 <https://github.com/aio-libs/aiohttp/issues/7325>_Expanded SSL documentation with more examples (e.g. how to use certifi). -- by :user:
Dreamsorcerer#​7334 <https://github.com/aio-libs/aiohttp/issues/7334>_Fix, update, and improve client exceptions documentation.
#​7733 <https://github.com/aio-libs/aiohttp/issues/7733>_Deprecations and Removals
Added
shutdown_timeoutparameter toBaseRunner, whiledeprecating
shutdown_timeoutparameter fromBaseSite. -- by :user:Dreamsorcerer#​7718 <https://github.com/aio-libs/aiohttp/issues/7718>_Dropped Python 3.6 support.
#​6378 <https://github.com/aio-libs/aiohttp/issues/6378>_Dropped Python 3.7 support. -- by :user:
Dreamsorcerer#​7336 <https://github.com/aio-libs/aiohttp/issues/7336>_Removed support for abandoned
tokioevent loop. -- by :user:Dreamsorcerer#​7281 <https://github.com/aio-libs/aiohttp/issues/7281>_Misc
Made
printargument inrun_app()optional.#​3690 <https://github.com/aio-libs/aiohttp/issues/3690>_Improved performance of
ceil_timeoutin some cases.#​6316 <https://github.com/aio-libs/aiohttp/issues/6316>_Changed importing Gunicorn to happen on-demand, decreasing import time by ~53%. -- :user:
Dreamsorcerer#​6591 <https://github.com/aio-libs/aiohttp/issues/6591>_Improved import time by replacing
http.serverwithhttp.HTTPStatus.#​6903 <https://github.com/aio-libs/aiohttp/issues/6903>_Fixed annotation of
sslparameter to disallowTrue. -- by :user:Dreamsorcerer.#​7335 <https://github.com/aio-libs/aiohttp/issues/7335>_v3.8.6Compare Source
==================
Security bugfixes
Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:
DreamsorcererThanks to :user:
kenballusfor reporting this, seeGHSA-pjjw-qhg8-p2p9.
.. _llhttp: https://llhttp.org
#​7647 <https://github.com/aio-libs/aiohttp/issues/7647>_Updated Python parser to comply with RFCs 9110/9112 -- by :user:
DreamorcererThanks to :user:
kenballusfor reporting this, seeGHSA-gfw2-4jvh-wgfg.
#​7663 <https://github.com/aio-libs/aiohttp/issues/7663>_Deprecation
Added
fallback_charset_resolverparameter inClientSessionto allow a user-suppliedcharacter set detection function.
Character set detection will no longer be included in 3.9 as a default. If this feature is needed,
please use
fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection>_.#​7561 <https://github.com/aio-libs/aiohttp/issues/7561>_Features
Enabled lenient response parsing for more flexible parsing in the client
(this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:
Dreamsorcerer#​7490 <https://github.com/aio-libs/aiohttp/issues/7490>_Bugfixes
Fixed
PermissionErrorwhen.netrcis unreadable due to permissions.#​7237 <https://github.com/aio-libs/aiohttp/issues/7237>_Fixed output of parsing errors pointing to a
\n. -- by :user:Dreamsorcerer#​7468 <https://github.com/aio-libs/aiohttp/issues/7468>_Fixed
GunicornWebWorkermax_requests_jitter not working.#​7518 <https://github.com/aio-libs/aiohttp/issues/7518>_Fixed sorting in
filter_cookiesto use cookie with longest path. -- by :user:marq24.#​7577 <https://github.com/aio-libs/aiohttp/issues/7577>_Fixed display of
BadStatusLinemessages from llhttp_. -- by :user:Dreamsorcerer#​7651 <https://github.com/aio-libs/aiohttp/issues/7651>_