aio-libs/aiohttp (aiohttp)
### [`v3.10.6`](https://redirect.github.com/aio-libs/aiohttp/releases/tag/v3.10.6): 3.10.6
[Compare Source](https://redirect.github.com/aio-libs/aiohttp/compare/v3.10.5...v3.10.6)
## Bug fixes
- Added :exc:`aiohttp.ClientConnectionResetError`. Client code that previously threw :exc:`ConnectionResetError`
will now throw this -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9137](https://redirect.github.com/aio-libs/aiohttp/issues/9137).
- Fixed an unclosed transport `ResourceWarning` on web handlers -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8875](https://redirect.github.com/aio-libs/aiohttp/issues/8875).
- Fixed resolve_host() 'Task was destroyed but is pending' errors -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8967](https://redirect.github.com/aio-libs/aiohttp/issues/8967).
- Fixed handling of some file-like objects (e.g. `tarfile.extractfile()`) which raise `AttributeError` instead of `OSError` when `fileno` fails for streaming payload data -- by :user:`ReallyReivax`.
*Related issues and pull requests on GitHub:*
[#6732](https://redirect.github.com/aio-libs/aiohttp/issues/6732).
- Fixed web router not matching pre-encoded URLs (requires yarl 1.9.6+) -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8898](https://redirect.github.com/aio-libs/aiohttp/issues/8898), [#9267](https://redirect.github.com/aio-libs/aiohttp/issues/9267).
- Fixed an error when trying to add a route for multiple methods with a path containing a regex pattern -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8998](https://redirect.github.com/aio-libs/aiohttp/issues/8998).
- Fixed `Response.text` when body is a `Payload` -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#6485](https://redirect.github.com/aio-libs/aiohttp/issues/6485).
- Fixed compressed requests failing when no body was provided -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9108](https://redirect.github.com/aio-libs/aiohttp/issues/9108).
- Fixed client incorrectly reusing a connection when the previous message had not been fully sent -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8992](https://redirect.github.com/aio-libs/aiohttp/issues/8992).
- Fixed race condition that could cause server to close connection incorrectly at keepalive timeout -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9140](https://redirect.github.com/aio-libs/aiohttp/issues/9140).
- Fixed Python parser chunked handling with multiple Transfer-Encoding values -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8823](https://redirect.github.com/aio-libs/aiohttp/issues/8823).
- Fixed error handling after 100-continue so server sends 500 response instead of disconnecting -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8876](https://redirect.github.com/aio-libs/aiohttp/issues/8876).
- Stopped adding a default Content-Type header when response has no content -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8858](https://redirect.github.com/aio-libs/aiohttp/issues/8858).
- Added support for URL credentials with empty (zero-length) username, e.g. `https://:password@host` -- by :user:`shuckc`
*Related issues and pull requests on GitHub:*
[#6494](https://redirect.github.com/aio-libs/aiohttp/issues/6494).
- Stopped logging exceptions from `web.run_app()` that would be raised regardless -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#6807](https://redirect.github.com/aio-libs/aiohttp/issues/6807).
- Implemented binding to IPv6 addresses in the pytest server fixture.
*Related issues and pull requests on GitHub:*
[#4650](https://redirect.github.com/aio-libs/aiohttp/issues/4650).
- Fixed the incorrect use of flags for `getnameinfo()` in the Resolver --by :user:`GitNMLee`
Link-Local IPv6 addresses can now be handled by the Resolver correctly.
*Related issues and pull requests on GitHub:*
[#9032](https://redirect.github.com/aio-libs/aiohttp/issues/9032).
- Fixed StreamResponse.prepared to return True after EOF is sent -- by :user:`arthurdarcet`.
*Related issues and pull requests on GitHub:*
[#5343](https://redirect.github.com/aio-libs/aiohttp/issues/5343).
- Changed `make_mocked_request()` to use empty payload by default -- by :user:`rahulnht`.
*Related issues and pull requests on GitHub:*
[#7167](https://redirect.github.com/aio-libs/aiohttp/issues/7167).
- Used more precise type for `ClientResponseError.headers`, fixing some type errors when using them -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8768](https://redirect.github.com/aio-libs/aiohttp/issues/8768).
- Changed behavior when returning an invalid response to send a 500 response -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8845](https://redirect.github.com/aio-libs/aiohttp/issues/8845).
- Fixed response reading from closed session to throw an error immediately instead of timing out -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8878](https://redirect.github.com/aio-libs/aiohttp/issues/8878).
- Fixed `CancelledError` from one cleanup context stopping other contexts from completing -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8908](https://redirect.github.com/aio-libs/aiohttp/issues/8908).
- Fixed changing scheme/host in `Response.clone()` for absolute URLs -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8990](https://redirect.github.com/aio-libs/aiohttp/issues/8990).
- Fixed `Site.name` when host is an empty string -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8929](https://redirect.github.com/aio-libs/aiohttp/issues/8929).
- Updated Python parser to reject messages after a close message, matching C parser behaviour -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9018](https://redirect.github.com/aio-libs/aiohttp/issues/9018).
- Fixed creation of `SSLContext` inside of :py:class:`aiohttp.TCPConnector` with multiple event loops in different threads -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9029](https://redirect.github.com/aio-libs/aiohttp/issues/9029).
- Fixed (on Python 3.11+) some edge cases where a task cancellation may get incorrectly suppressed -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9030](https://redirect.github.com/aio-libs/aiohttp/issues/9030).
- Fixed exception information getting lost on `HttpProcessingError` -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9052](https://redirect.github.com/aio-libs/aiohttp/issues/9052).
- Fixed `If-None-Match` not using weak comparison -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9063](https://redirect.github.com/aio-libs/aiohttp/issues/9063).
- Fixed badly encoded charset crashing when getting response text instead of falling back to charset detector.
*Related issues and pull requests on GitHub:*
[#9160](https://redirect.github.com/aio-libs/aiohttp/issues/9160).
- Rejected `\n` in `reason` values to avoid sending broken HTTP messages -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9167](https://redirect.github.com/aio-libs/aiohttp/issues/9167).
- Changed :py:meth:`ClientResponse.raise_for_status() ` to only release the connection when invoked outside an `async with` context -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9239](https://redirect.github.com/aio-libs/aiohttp/issues/9239).
## Features
- Improved type on `params` to match the underlying type allowed by `yarl` -- by :user:`lpetre`.
*Related issues and pull requests on GitHub:*
[#8564](https://redirect.github.com/aio-libs/aiohttp/issues/8564).
- Declared Python 3.13 supported -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#8748](https://redirect.github.com/aio-libs/aiohttp/issues/8748).
## Removals and backward incompatible breaking changes
- Improved middleware performance -- by :user:`bdraco`.
The `set_current_app` method was removed from `UrlMappingMatchInfo` because it is no longer used, and it was unlikely external caller would ever use it.
*Related issues and pull requests on GitHub:*
[#9200](https://redirect.github.com/aio-libs/aiohttp/issues/9200).
- Increased minimum yarl version to 1.12.0 -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9267](https://redirect.github.com/aio-libs/aiohttp/issues/9267).
## Improved documentation
- Clarified that `GracefulExit` needs to be handled in `AppRunner` and `ServerRunner` when using `handle_signals=True`. -- by :user:`Daste745`
*Related issues and pull requests on GitHub:*
[#4414](https://redirect.github.com/aio-libs/aiohttp/issues/4414).
- Clarified that auth parameter in ClientSession will persist and be included with any request to any origin, even during redirects to different origins. -- by :user:`MaximZemskov`.
*Related issues and pull requests on GitHub:*
[#6764](https://redirect.github.com/aio-libs/aiohttp/issues/6764).
- Clarified which timeout exceptions happen on which timeouts -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8968](https://redirect.github.com/aio-libs/aiohttp/issues/8968).
- Updated `ClientSession` parameters to match current code -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#8991](https://redirect.github.com/aio-libs/aiohttp/issues/8991).
## Packaging updates and notes for downstreams
- Fixed `test_client_session_timeout_zero` to not require internet access -- by :user:`Dreamsorcerer`.
*Related issues and pull requests on GitHub:*
[#9004](https://redirect.github.com/aio-libs/aiohttp/issues/9004).
## Miscellaneous internal changes
- Improved performance of making requests when there are no auto headers to skip -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#8847](https://redirect.github.com/aio-libs/aiohttp/issues/8847).
- Exported `aiohttp.TraceRequestHeadersSentParams` -- by :user:`Hadock-is-ok`.
*Related issues and pull requests on GitHub:*
[#8947](https://redirect.github.com/aio-libs/aiohttp/issues/8947).
- Avoided tracing overhead in the http writer when there are no active traces -- by user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9031](https://redirect.github.com/aio-libs/aiohttp/issues/9031).
- Improved performance of reify Cython implementation -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9054](https://redirect.github.com/aio-libs/aiohttp/issues/9054).
- Use :meth:`URL.extend_query() ` to extend query params (requires yarl 1.11.0+) -- by :user:`bdraco`.
If yarl is older than 1.11.0, the previous slower hand rolled version will be used.
*Related issues and pull requests on GitHub:*
[#9068](https://redirect.github.com/aio-libs/aiohttp/issues/9068).
- Improved performance of checking if a host is an IP Address -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9095](https://redirect.github.com/aio-libs/aiohttp/issues/9095).
- Significantly improved performance of middlewares -- by :user:`bdraco`.
The construction of the middleware wrappers is now cached and is built once per handler instead of on every request.
*Related issues and pull requests on GitHub:*
[#9158](https://redirect.github.com/aio-libs/aiohttp/issues/9158), [#9170](https://redirect.github.com/aio-libs/aiohttp/issues/9170).
- Improved performance of web requests -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9168](https://redirect.github.com/aio-libs/aiohttp/issues/9168), [#9169](https://redirect.github.com/aio-libs/aiohttp/issues/9169), [#9172](https://redirect.github.com/aio-libs/aiohttp/issues/9172), [#9174](https://redirect.github.com/aio-libs/aiohttp/issues/9174), [#9175](https://redirect.github.com/aio-libs/aiohttp/issues/9175), [#9241](https://redirect.github.com/aio-libs/aiohttp/issues/9241).
- Improved performance of starting web requests when there is no response prepare hook -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9173](https://redirect.github.com/aio-libs/aiohttp/issues/9173).
- Significantly improved performance of expiring cookies -- by :user:`bdraco`.
Expiring cookies has been redesigned to use :mod:`heapq` instead of a linear search, to better scale.
*Related issues and pull requests on GitHub:*
[#9203](https://redirect.github.com/aio-libs/aiohttp/issues/9203).
- Significantly sped up filtering cookies -- by :user:`bdraco`.
*Related issues and pull requests on GitHub:*
[#9204](https://redirect.github.com/aio-libs/aiohttp/issues/9204).
***
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
3.10.5
->3.10.6
Release Notes
aio-libs/aiohttp (aiohttp)
### [`v3.10.6`](https://redirect.github.com/aio-libs/aiohttp/releases/tag/v3.10.6): 3.10.6 [Compare Source](https://redirect.github.com/aio-libs/aiohttp/compare/v3.10.5...v3.10.6) ## Bug fixes - Added :exc:`aiohttp.ClientConnectionResetError`. Client code that previously threw :exc:`ConnectionResetError` will now throw this -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9137](https://redirect.github.com/aio-libs/aiohttp/issues/9137). - Fixed an unclosed transport `ResourceWarning` on web handlers -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8875](https://redirect.github.com/aio-libs/aiohttp/issues/8875). - Fixed resolve_host() 'Task was destroyed but is pending' errors -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8967](https://redirect.github.com/aio-libs/aiohttp/issues/8967). - Fixed handling of some file-like objects (e.g. `tarfile.extractfile()`) which raise `AttributeError` instead of `OSError` when `fileno` fails for streaming payload data -- by :user:`ReallyReivax`. *Related issues and pull requests on GitHub:* [#6732](https://redirect.github.com/aio-libs/aiohttp/issues/6732). - Fixed web router not matching pre-encoded URLs (requires yarl 1.9.6+) -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8898](https://redirect.github.com/aio-libs/aiohttp/issues/8898), [#9267](https://redirect.github.com/aio-libs/aiohttp/issues/9267). - Fixed an error when trying to add a route for multiple methods with a path containing a regex pattern -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8998](https://redirect.github.com/aio-libs/aiohttp/issues/8998). - Fixed `Response.text` when body is a `Payload` -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#6485](https://redirect.github.com/aio-libs/aiohttp/issues/6485). - Fixed compressed requests failing when no body was provided -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9108](https://redirect.github.com/aio-libs/aiohttp/issues/9108). - Fixed client incorrectly reusing a connection when the previous message had not been fully sent -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8992](https://redirect.github.com/aio-libs/aiohttp/issues/8992). - Fixed race condition that could cause server to close connection incorrectly at keepalive timeout -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9140](https://redirect.github.com/aio-libs/aiohttp/issues/9140). - Fixed Python parser chunked handling with multiple Transfer-Encoding values -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8823](https://redirect.github.com/aio-libs/aiohttp/issues/8823). - Fixed error handling after 100-continue so server sends 500 response instead of disconnecting -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8876](https://redirect.github.com/aio-libs/aiohttp/issues/8876). - Stopped adding a default Content-Type header when response has no content -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8858](https://redirect.github.com/aio-libs/aiohttp/issues/8858). - Added support for URL credentials with empty (zero-length) username, e.g. `https://:password@host` -- by :user:`shuckc` *Related issues and pull requests on GitHub:* [#6494](https://redirect.github.com/aio-libs/aiohttp/issues/6494). - Stopped logging exceptions from `web.run_app()` that would be raised regardless -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#6807](https://redirect.github.com/aio-libs/aiohttp/issues/6807). - Implemented binding to IPv6 addresses in the pytest server fixture. *Related issues and pull requests on GitHub:* [#4650](https://redirect.github.com/aio-libs/aiohttp/issues/4650). - Fixed the incorrect use of flags for `getnameinfo()` in the Resolver --by :user:`GitNMLee` Link-Local IPv6 addresses can now be handled by the Resolver correctly. *Related issues and pull requests on GitHub:* [#9032](https://redirect.github.com/aio-libs/aiohttp/issues/9032). - Fixed StreamResponse.prepared to return True after EOF is sent -- by :user:`arthurdarcet`. *Related issues and pull requests on GitHub:* [#5343](https://redirect.github.com/aio-libs/aiohttp/issues/5343). - Changed `make_mocked_request()` to use empty payload by default -- by :user:`rahulnht`. *Related issues and pull requests on GitHub:* [#7167](https://redirect.github.com/aio-libs/aiohttp/issues/7167). - Used more precise type for `ClientResponseError.headers`, fixing some type errors when using them -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8768](https://redirect.github.com/aio-libs/aiohttp/issues/8768). - Changed behavior when returning an invalid response to send a 500 response -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8845](https://redirect.github.com/aio-libs/aiohttp/issues/8845). - Fixed response reading from closed session to throw an error immediately instead of timing out -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8878](https://redirect.github.com/aio-libs/aiohttp/issues/8878). - Fixed `CancelledError` from one cleanup context stopping other contexts from completing -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8908](https://redirect.github.com/aio-libs/aiohttp/issues/8908). - Fixed changing scheme/host in `Response.clone()` for absolute URLs -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8990](https://redirect.github.com/aio-libs/aiohttp/issues/8990). - Fixed `Site.name` when host is an empty string -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#8929](https://redirect.github.com/aio-libs/aiohttp/issues/8929). - Updated Python parser to reject messages after a close message, matching C parser behaviour -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9018](https://redirect.github.com/aio-libs/aiohttp/issues/9018). - Fixed creation of `SSLContext` inside of :py:class:`aiohttp.TCPConnector` with multiple event loops in different threads -- by :user:`bdraco`. *Related issues and pull requests on GitHub:* [#9029](https://redirect.github.com/aio-libs/aiohttp/issues/9029). - Fixed (on Python 3.11+) some edge cases where a task cancellation may get incorrectly suppressed -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9030](https://redirect.github.com/aio-libs/aiohttp/issues/9030). - Fixed exception information getting lost on `HttpProcessingError` -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9052](https://redirect.github.com/aio-libs/aiohttp/issues/9052). - Fixed `If-None-Match` not using weak comparison -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9063](https://redirect.github.com/aio-libs/aiohttp/issues/9063). - Fixed badly encoded charset crashing when getting response text instead of falling back to charset detector. *Related issues and pull requests on GitHub:* [#9160](https://redirect.github.com/aio-libs/aiohttp/issues/9160). - Rejected `\n` in `reason` values to avoid sending broken HTTP messages -- by :user:`Dreamsorcerer`. *Related issues and pull requests on GitHub:* [#9167](https://redirect.github.com/aio-libs/aiohttp/issues/9167). - Changed :py:meth:`ClientResponse.raise_for_status()Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.