Update Python Monitor Dependencies #292
Open
+12
−12
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.11.16
->==3.12.4
==2025.1.31
->==2025.4.26
==8.1.8
->==8.2.1
==1.2.2
->==1.3.0
==1.5.0
->==1.6.0
==1.0.7
->==1.0.9
==6.4.2
->==6.4.4
==4.3.7
->==4.3.8
==3.0.1
->==3.2.0
==1.1.1
->==1.1.2
==4.13.1
->==4.13.2
==1.19.0
->==1.20.0
Release Notes
aio-libs/aiohttp (aiohttp)
v3.12.4
Compare Source
v3.12.3
Compare Source
v3.12.2
Compare Source
===================
Bug fixes
Fixed
Content-Length
header not being set to0
for non-GET requests withNone
body -- by :user:bdraco
.Non-GET requests (
POST
,PUT
,PATCH
,DELETE
) withNone
as the body now correctly set theContent-Length
header to0
, matching the behavior of requests with empty bytes (b""
). This regression was introduced in aiohttp 3.12.1.Related issues and pull requests on GitHub:
:issue:
11035
.v3.12.1
Compare Source
===================
Features
Added support for reusable request bodies to enable retries, redirects, and digest authentication -- by :user:
bdraco
and :user:GLGDLY
.Most payloads can now be safely reused multiple times, fixing long-standing issues where POST requests with form data or file uploads would fail on redirects with errors like "Form data has been processed already" or "I/O operation on closed file". This also enables digest authentication to work with request bodies and allows retry mechanisms to resend requests without consuming the payload. Note that payloads derived from async iterables may still not be reusable in some cases.
Related issues and pull requests on GitHub:
:issue:
5530
, :issue:5577
, :issue:9201
, :issue:11017
.v3.12.0
Compare Source
===================
Bug fixes
Fixed :py:attr:
~aiohttp.web.WebSocketResponse.prepared
property to correctly reflect the prepared state, especially during timeout scenarios -- by :user:bdraco
Related issues and pull requests on GitHub:
:issue:
6009
, :issue:10988
.Response is now always True, instead of using MutableMapping behaviour (False when map is empty)
Related issues and pull requests on GitHub:
:issue:
10119
.Fixed connection reuse for file-like data payloads by ensuring buffer
truncation respects content-length boundaries and preventing premature
connection closure race -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10325
, :issue:10915
, :issue:10941
, :issue:10943
.Fixed pytest plugin to not use deprecated :py:mod:
asyncio
policy APIs.Related issues and pull requests on GitHub:
:issue:
10851
.Fixed :py:class:
~aiohttp.resolver.AsyncResolver
not using theloop
argument in versions 3.x where it should still be supported -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
10951
.Features
Added a comprehensive HTTP Digest Authentication client middleware (DigestAuthMiddleware)
that implements RFC 7616. The middleware supports all standard hash algorithms
(MD5, SHA, SHA-256, SHA-512) with session variants, handles both 'auth' and
'auth-int' quality of protection options, and automatically manages the
authentication flow by intercepting 401 responses and retrying with proper
credentials -- by :user:
feus4177
, :user:TimMenninger
, and :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
2213
, :issue:10725
.Added client middleware support -- by :user:
bdraco
and :user:Dreamsorcerer
.This change allows users to add middleware to the client session and requests, enabling features like
authentication, logging, and request/response modification without modifying the core
request logic. Additionally, the
session
attribute was added toClientRequest
,allowing middleware to access the session for making additional requests.
Related issues and pull requests on GitHub:
:issue:
9732
, :issue:10902
, :issue:10945
, :issue:10952
, :issue:10959
, :issue:10968
.Allow user setting zlib compression backend -- by :user:
TimMenninger
This change allows the user to call :func:
aiohttp.set_zlib_backend()
with thezlib compression module of their choice. Default behavior continues to use
the builtin
zlib
library.Related issues and pull requests on GitHub:
:issue:
9798
.Added support for overriding the base URL with an absolute one in client sessions
-- by :user:
vivodi
.Related issues and pull requests on GitHub:
:issue:
10074
.Added
host
parameter toaiohttp_server
fixture -- by :user:christianwbrock
.Related issues and pull requests on GitHub:
:issue:
10120
.Detect blocking calls in coroutines using BlockBuster -- by :user:
cbornet
.Related issues and pull requests on GitHub:
:issue:
10433
.Added
socket_factory
to :py:class:aiohttp.TCPConnector
to allow specifying custom socket options-- by :user:
TimMenninger
.Related issues and pull requests on GitHub:
:issue:
10474
, :issue:10520
, :issue:10961
, :issue:10962
.Started building armv7l manylinux wheels -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10797
.Implemented shared DNS resolver management to fix excessive resolver object creation
when using multiple client sessions. The new
_DNSResolverManager
singleton ensuresonly one
DNSResolver
object is created for default configurations, significantlyreducing resource usage and improving performance for applications using multiple
client sessions simultaneously -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10847
, :issue:10923
, :issue:10946
.Upgraded to LLHTTP 9.3.0 -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub:
:issue:
10972
.Optimized small HTTP requests/responses by coalescing headers and body into a single TCP packet -- by :user:
bdraco
.This change enhances network efficiency by reducing the number of packets sent for small HTTP payloads, improving latency and reducing overhead. Most importantly, this fixes compatibility with memory-constrained IoT devices that can only perform a single read operation and expect HTTP requests in one packet. The optimization uses zero-copy
writelines
when coalescing data and works with both regular and chunked transfer encoding.When
aiohttp
uses client middleware to communicate with anaiohttp
server, connection reuse is more likely to occur since complete responses arrive in a single packet for small payloads.This aligns
aiohttp
with other popular HTTP clients that already coalesce small requests.Related issues and pull requests on GitHub:
:issue:
10991
.Improved documentation
Improved documentation for middleware by adding warnings and examples about
request body stream consumption. The documentation now clearly explains that
request body streams can only be read once and provides best practices for
sharing parsed request data between middleware and handlers -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
2914
.Packaging updates and notes for downstreams
Removed non SPDX-license description from
setup.cfg
-- by :user:devanshu-ziphq
.Related issues and pull requests on GitHub:
:issue:
10662
.Added support for building against system
llhttp
library -- by :user:mgorny
.This change adds support for :envvar:
AIOHTTP_USE_SYSTEM_DEPS
environment variable thatcan be used to build aiohttp against the system install of the
llhttp
library ratherthan the vendored one.
Related issues and pull requests on GitHub:
:issue:
10759
.aiodns
is now installed on Windows with speedups extra -- by :user:bdraco
.As of
aiodns
3.3.0,SelectorEventLoop
is no longer required when usingpycares
4.7.0 or later.Related issues and pull requests on GitHub:
:issue:
10823
.Fixed compatibility issue with Cython 3.1.1 -- by :user:
bdraco
Related issues and pull requests on GitHub:
:issue:
10877
.Contributor-facing changes
Sped up tests by disabling
blockbuster
fixture fortest_static_file_huge
andtest_static_file_huge_cancel
tests -- by :user:dikos1337
.Related issues and pull requests on GitHub:
:issue:
9705
, :issue:10761
.Updated tests to avoid using deprecated :py:mod:
asyncio
policy APIs andmake it compatible with Python 3.14.
Related issues and pull requests on GitHub:
:issue:
10851
.Added Winloop to test suite to support in the future -- by :user:
Vizonex
.Related issues and pull requests on GitHub:
:issue:
10922
.Miscellaneous internal changes
Added support for the
partitioned
attribute in theset_cookie
method.Related issues and pull requests on GitHub:
:issue:
9870
.Setting :attr:
aiohttp.web.StreamResponse.last_modified
to an unsupported type will now raise :exc:TypeError
instead of silently failing -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
10146
.v3.11.18
Compare Source
====================
Bug fixes
Disabled TLS in TLS warning (when using HTTPS proxies) for uvloop and newer Python versions -- by :user:
lezgomatt
.Related issues and pull requests on GitHub:
:issue:
7686
.Fixed reading fragmented WebSocket messages when the payload was masked -- by :user:
bdraco
.The problem first appeared in 3.11.17
Related issues and pull requests on GitHub:
:issue:
10764
.v3.11.17
Compare Source
====================
Miscellaneous internal changes
Optimized web server performance when access logging is disabled by reducing time syscalls -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10713
.Improved web server performance when connection can be reused -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10714
.Improved performance of the WebSocket reader -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10740
.Improved performance of the WebSocket reader with large messages -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10744
.certifi/python-certifi (certifi)
v2025.4.26
Compare Source
pallets/click (click)
v8.2.1
Compare Source
Released 2025-05-20
2894
:issue:
2897
:pr:2930
2906
:pr:2907
sys.stderr
at the end ofCliRunner.invoke
. :issue:2682
2787
v8.2.0
Compare Source
Released 2025-05-10
Drop support for Python 3.7, 3.8, and 3.9. :pr:
2588
:pr:2893
Use modern packaging metadata with
pyproject.toml
instead ofsetup.cfg
.:pr:
2438
Use
flit_core
instead ofsetuptools
as build backend. :pr:2543
Deprecate the
__version__
attribute. Use feature detection, orimportlib.metadata.version("click")
, instead. :issue:2598
BaseCommand
is deprecated.Command
is the base class for allcommands. :issue:
2589
MultiCommand
is deprecated.Group
is the base class for all groupcommands. :issue:
2590
The current parser and related classes and methods, are deprecated.
:issue:
2205
OptionParser
and theparser
module, which is a modified copy ofoptparse
in the standard library.Context.protected_args
is unneeded.Context.args
contains anyremaining arguments while parsing.
Parameter.add_to_parser
(on bothArgument
andOption
) isunneeded. Parsing works directly without building a separate parser.
split_arg_string
is moved fromparser
toshell_completion
.Enable deferred evaluation of annotations with
from __future__ import annotations
. :pr:2270
When generating a command's name from a decorated function's name, the
suffixes
_command
,_cmd
,_group
, and_grp
are removed.:issue:
2322
Show the
types.ParamType.name
fortypes.Choice
options within--help
message ifshow_choices=False
is specified.:issue:
2356
Do not display default values in prompts when
Option.show_default
isFalse
. :pr:2509
Add
get_help_extra
method onOption
to fetch the generated extraitems used in
get_help_record
to render help text. :issue:2516
:pr:
2517
Keep stdout and stderr streams independent in
CliRunner
. Alwayscollect stderr output and never raise an exception. Add a new
output stream to simulate what the user sees in its terminal. Removes
the
mix_stderr
parameter inCliRunner
. :issue:2522
:pr:2523
Option.show_envvar
now also shows environment variable in error messages.:issue:
2695
:pr:2696
Context.close
will be called on exit. This results in allContext.call_on_close
callbacks and context managers added viaContext.with_resource
to be closed on exit as well. :pr:2680
Add
ProgressBar(hidden: bool)
to allow hiding the progressbar. :issue:2609
A
UserWarning
will be shown when multiple parameters attempt to use thesame name. :issue:
2396
When using
Option.envvar
withOption.flag_value
, theflag_value
will always be used instead of the value of the environment variable.
:issue:
2746
:pr:2788
Add
Choice.get_invalid_choice_message
method for customizing theinvalid choice message. :issue:
2621
:pr:2622
If help is shown because
no_args_is_help
is enabled (defaults toTrue
for groups,
False
for commands), the exit code is 2 instead of 0.:issue:
1489
:pr:1489
Contexts created during shell completion are closed properly, fixing
a
ResourceWarning
when usingclick.File
. :issue:2644
:pr:2800
:pr:
2767
click.edit(filename)
now supports passing an iterable of filenames incase the editor supports editing multiple files at once. Its return type
is now also typed:
AnyStr
iftext
is passed, otherwiseNone
.:issue:
2067
:pr:2068
Specialized typing of
progressbar(length=...)
asProgressBar[int]
.:pr:
2630
Improve
echo_via_pager
behaviour in face of errors.:issue:
2674
echo_via_pager
raises an exception.
to terminate.
echo_via_pager
will not ignoreKeyboardInterrupt
anymore. Thisallows the user to search for future output of the generator when
using less and then aborting the program using ctrl-c.
deprecated: bool | str
can now be used on options and arguments. Thispreviously was only available for
Command
. The message can now also becustomised by using a
str
instead of abool
. :issue:2263
:pr:2271
Command.deprecated
formatting in--help
changed from(Deprecated) help
tohelp (DEPRECATED)
.Add a
catch_exceptions
parameter toCliRunner
. Ifcatch_exceptions
is not passed toCliRunner.invoke
, the valuefrom
CliRunner
is used. :issue:2817
:pr:2818
Option.flag_value
will no longer have a default value set based onOption.default
ifOption.is_flag
isFalse
. This results inOption.default
not needing to implement__bool__
. :pr:2829
Incorrect
click.edit
typing has been corrected. :pr:2804
Choice
is now generic and supports any iterable value.This allows you to use enums and other non-
str
values. :pr:2796
:issue:
605
Fix setup of help option's defaults when using a custom class on its
decorator. Removes
HelpOption
. :issue:2832
:pr:2840
agronholm/exceptiongroup (exceptiongroup)
v1.3.0
Compare Source
**kwargs
to function and method signatures as appropriate to match the signatures in the standard library(Base)ExceptionGroup
generic types to define defaults for their generic arguments (defaulting toBaseExceptionGroup[BaseException]
andExceptionGroup[Exception]
) (PR by @mikenerone)BaseExceptionGroup.__init__()
to directly callBaseException.__init__()
instead of the superclass__init__()
in order to emulate the CPython behavior (broken or not) (PR by @cfbolz)exceptions
attribute to always return the same tuple of exceptions, created from the original exceptions sequence passed toBaseExceptionGroup
to match CPython behavior (#143)aio-libs/frozenlist (frozenlist)
v1.6.0
Compare Source
======
(2025-04-17)
Bug fixes
Stopped implicitly allowing the use of Cython pre-release versions when
building the distribution package -- by :user:
ajsanchezsanz
and:user:
markgreene74
.Related commits on GitHub:
:commit:
41591f2
.Features
Implemented support for the free-threaded build of CPython 3.13 -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
618
.Started building armv7l wheels -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
642
.Packaging updates and notes for downstreams
Stopped implicitly allowing the use of Cython pre-release versions when
building the distribution package -- by :user:
ajsanchezsanz
and:user:
markgreene74
.Related commits on GitHub:
:commit:
41591f2
.Started building wheels for the free-threaded build of CPython 3.13 -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
618
.The packaging metadata switched to including an SPDX license identifier introduced in :pep:
639
-- by :user:cdce8p
.Related issues and pull requests on GitHub:
:issue:
639
.Contributor-facing changes
GitHub Actions CI/CD is now configured to manage caching pip-ecosystem
dependencies using
re-actors/cache-python-deps
_ -- an action by:user:
webknjaz
that takes into account ABI stability and the exactversion of Python runtime.
.. _
re-actors/cache-python-deps
:https://github.com/marketplace/actions/cache-python-deps
Related issues and pull requests on GitHub:
:issue:
633
.Organized dependencies into test and lint dependencies so that no
unnecessary ones are installed during CI runs -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
636
.encode/httpcore (httpcore)
v1.0.9
Compare Source
v1.0.8
Compare Source
AttributeError
when importing on Python 3.14. (#1005)aio-libs/multidict (multidict)
v6.4.4
Compare Source
=====
(2025-05-19)
Bug fixes
Fixed a segmentation fault when calling :py:meth:
multidict.MultiDict.setdefault
with a single argument -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1160
.Fixed a segmentation fault when attempting to directly instantiate view objects
(
multidict._ItemsView
,multidict._KeysView
,multidict._ValuesView
) -- by :user:bdraco
.View objects now raise a proper :exc:
TypeError
with the message "cannot create '...' instances directly"when direct instantiation is attempted.
View objects should only be created through the proper methods: :py:meth:
multidict.MultiDict.items
,:py:meth:
multidict.MultiDict.keys
, and :py:meth:multidict.MultiDict.values
.Related issues and pull requests on GitHub:
:issue:
1164
.Miscellaneous internal changes
:class:
multidict.MultiDictProxy
was refactored to rely only on:class:
multidict.MultiDict
public interface and don't touch any implementationdetails.
Related issues and pull requests on GitHub:
:issue:
1150
.Multidict views were refactored to rely only on
:class:
multidict.MultiDict
API and don't touch any implementationdetails.
Related issues and pull requests on GitHub:
:issue:
1152
.Dropped internal
_Impl
class from pure Python implementation, both pure Python and CExtension follows the same design internally now.
Related issues and pull requests on GitHub:
:issue:
1153
.v6.4.3
Compare Source
=====
(2025-04-10)
Bug fixes
Fixed building the library in debug mode.
Related issues and pull requests on GitHub:
:issue:
1144
.Fixed custom
PyType_GetModuleByDef()
when non-heap type object was passed.Related issues and pull requests on GitHub:
:issue:
1147
.Packaging updates and notes for downstreams
Added the ability to build in debug mode by setting :envvar:
MULTIDICT_DEBUG_BUILD
in the environment -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1145
.tox-dev/platformdirs (platformdirs)
v4.3.8
Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/platformdirs@4.3.7...4.3.8
Textualize/textual (textual)
v3.2.0
Compare Source
Fixed
OptionList
causing excessive redrawing https://github.com/Textualize/textual/pull/5766TEXTUAL_DEBUG
is set https://github.com/Textualize/textual/pull/5782Added
:first-child
and:last-child
pseudo classes https://github.com/Textualize/textual/pull/5776toggle_class
parameter to reactives https://github.com/Textualize/textual/pull/5778compact
parameter and reactive toButton
,Input
,ToggleButton
,RadioSet
,OptionList
,TextArea
https://github.com/Textualize/textual/pull/5778HORIZONTAL_BREAKPOINTS
andVERTICAL_BREAKPOINTS
toApp
andScreen
https://github.com/Textualize/textual/pull/5779Changed
RadioSet
now has a default width of1fr
https://github.com/Textualize/textual/pull/5778v3.1.1
Compare Source
Fixed
v3.1.0
Compare Source
Fixed
OptionList
size after removing or clearing options https://github.com/Textualize/textual/issues/5728can_focus()
https://github.com/Textualize/textual/pull/5737Changed
Added
TEXTUAL_DIM_FACTOR
env var to set the opacity of the 'dim' ANSI attribute https://github.com/Textualize/textual/pull/5715notify()
now accepts amarkup
parameter to disable rendering the message as markup https://github.com/Textualize/textual/pull/5719Screen.text_selection_started_signal
https://github.com/Textualize/textual/pull/5739App.clear_selection()
helper method to clear arbitrary text selection of active screen https://github.com/Textualize/textual/pull/5739Textualize/textual-serve (textual-serve)
v1.1.2
: Cut and paste addedBumps textual.js to allow cut and pase.
python/typing_extensions (typing_extensions)
v4.13.2
Compare Source
TypeError
when taking the union oftyping_extensions.TypeAliasType
and atyping.TypeAliasType
on Python 3.12 and 3.13.Patch by Joren Hammudoglu.
to avoid having user arguments shadowed in generated
__new__
by@typing_extensions.deprecated
.Patch by Victorien Plot.
aio-libs/yarl (yarl)
v1.20.0
Compare Source
======
(2025-04-16)
Features
Implemented support for the free-threaded build of CPython 3.13 -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
1456
.Packaging updates and notes for downstreams
Started building wheels for the free-threaded build of CPython 3.13 -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
1456
.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.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.