chore(deps): Update Python dependencies #21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/python-deps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
==2.6.1
->==2.8.1
==1.5.0
->==1.6.0
==3.11.14
->==3.13.1
==1.3.2
->==1.4.0
==25.3.0
->==25.4.0
==2025.1.31
->==2025.10.5
==1.17.1
->==2.0.0
==3.4.1
->==3.4.4
==44.0.2
->==46.0.3
==2.5.2
->==2.6.4
==1.5.0
->==1.8.0
==3.10
->==3.11
==6.2.0
->==6.7.0
==0.3.1
->==0.4.1
==2.22
->==2.23
==1.1.0
->==1.1.1
==2.32.3
->==2.32.5
==4.13.0
->==4.15.0
==2.3.0
->==2.5.0
==1.17.2
->==1.17.3
==1.18.3
->==1.22.0
Release Notes
pygithub/pygithub (PyGithub)
v2.8.1
Compare Source
What's Changed
Bug Fixes
Full Changelog: https://github.com/PyGithub/PyGithub/compare/v2.8.0...v2.8.1
v2.8.0
Compare Source
What's Changed
New Features
Improvements
Repository.get_automated_security_fixes
method by @zstyblik in PyGithub/PyGithub#3303Issue
class with API spec by @EnricoMi in PyGithub/PyGithub#3338NamedUser | Organization | Enterprise
by @EnricoMi in PyGithub/PyGithub#3224Enterprise
class with API spec by @EnricoMi in PyGithub/PyGithub#3342GitReleaseAsset
class with API spec by @EnricoMi in PyGithub/PyGithub#3343Team
repo methods by @EnricoMi in PyGithub/PyGithub#3356Bug Fixes
Repository.get_git_ref
by @csalerno-asml in PyGithub/PyGithub#2992GitRelease.name
, deprecateGitRelease.title
by @EnricoMi in PyGithub/PyGithub#3346"COMMENT"
as the default event forcreate_review
by @eddie-santos in PyGithub/PyGithub#3078maintainers
inOrganization.create_team
by @interifter in PyGithub/PyGithub#3291Maintenance
PaginatedList
by @sam93210 in PyGithub/PyGithub#3039github_actions
label to Maintenance section by @EnricoMi in PyGithub/PyGithub#3357New Contributors
Full Changelog: https://github.com/PyGithub/PyGithub/compare/v2.7.0...v2.8.0
v2.7.0
Compare Source
What's Changed
Breaking Changes
Github.get_rate_limit()
now returnsRateLimitOverview
rather thanRateLimit
(PyGithub/PyGithub#3205).Code like
should be replaced with
GitTag.verification
now returnsGitCommitVerification
rather thandict[str, Any]
(PyGithub/PyGithub#3226).Code like
should be replaced with
New Features
Improvements
OrganizationInvitation
by @EnricoMi in PyGithub/PyGithub#3207RepositoryAdvisory
tests with OpenAPI spec by @EnricoMi in PyGithub/PyGithub#3215ProjectColumn
andProjectCard
tests with OpenAPI spec by @EnricoMi in PyGithub/PyGithub#3216CopilotSeat
class with API spec by @EnricoMi in PyGithub/PyGithub#3232HookDeliverySummary
class with API spec by @EnricoMi in PyGithub/PyGithub#3233RequiredPullRequestReviews
class with API spec by @EnricoMi in PyGithub/PyGithub#3234RequiredStatusChecks
class with API spec by @EnricoMi in PyGithub/PyGithub#3236Team
class with API spec by @EnricoMi in PyGithub/PyGithub#3237deprecated.deprecated()
withtyping_extensions.deprecated()
by @lazka in PyGithub/PyGithub#3255prevent_self_review
property toRepository.createEnvironment
by @gopidesupavan in PyGithub/PyGithub#3246PullRequest.get_issue_timeline
method by @kukarkinmm in PyGithub/PyGithub#3259reversed()
onPaginatedList
by @mfocko in PyGithub/PyGithub#3260Requester
exception handling by @jsmolar in PyGithub/PyGithub#3299delete_self_hosted_runner
toOrganization
by @uncleDecart in PyGithub/PyGithub#3306Bug Fixes
Auth
classes by @EnricoMi in PyGithub/PyGithub#3211Deployment
, removemessage
attribute by @EnricoMi in PyGithub/PyGithub#3223CodeSecurityConfigRepository
returned byget_repos_for_code_security_config
by @EnricoMi in PyGithub/PyGithub#3219Branch.get_required_status_checks
return type by @EnricoMi in PyGithub/PyGithub#3235multi_select
andtrue_false
options toCustomProperty.value_type
by @gfog-floqast in PyGithub/PyGithub#3173TimingData.run_duration_ms
optional by @LifeLex in PyGithub/PyGithub#3268Dependencies
Maintenance
AppAuth.private_key
in changelog by @EnricoMi in PyGithub/PyGithub#3212HookDeliveryRequest
and…Response
private headers fields by @EnricoMi in PyGithub/PyGithub#3221PaginatedList[int]
by @EnricoMi in PyGithub/PyGithub#3240Organization.get_repos_for_code_security_config
test by @billnapier in PyGithub/PyGithub#3239TimingData
by @EnricoMi in PyGithub/PyGithub#3206New Contributors
Full Changelog: https://github.com/PyGithub/PyGithub/compare/v2.6.0...v2.7.0
pyca/pynacl (PyNaCl)
v1.6.0
Compare Source
crypto_core_ed25519_from_uniform
.libsodium
to 1.0.20-stable (2025-08-27 build).aio-libs/aiohttp (aiohttp)
v3.13.1
Compare Source
===================
Features
Make configuration options in
AppRunner
also available inrun_app()
-- by :user:
Cycloctane
.Related issues and pull requests on GitHub:
:issue:
11633
.Bug fixes
Switched to
backports.zstd
for Python <3.14 and fixed zstd decompression for chunked zstd streams -- by :user:ZhaoMJ
.Note: Users who installed
zstandard
for support on Python <3.14 will now need to installbackports.zstd
instead (installingaiohttp[speedups]
will do this automatically).Related issues and pull requests on GitHub:
:issue:
11623
.Updated
Content-Type
header parsing to returnapplication/octet-stream
when header contains invalid syntax.See :rfc:
9110#section-8.3-5
.-- by :user:
sgaist
.Related issues and pull requests on GitHub:
:issue:
10889
.Fixed Python 3.14 support when built without
zstd
support -- by :user:JacobHenner
.Related issues and pull requests on GitHub:
:issue:
11603
.Fixed blocking I/O in the event loop when using netrc authentication by moving netrc file lookup to an executor -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
11634
.Fixed routing to a sub-application added via
.add_domain()
not workingif the same path exists on the parent app. -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub:
:issue:
11673
.Packaging updates and notes for downstreams
Moved core packaging metadata from :file:
setup.cfg
to :file:pyproject.toml
per :pep:621
-- by :user:
cdce8p
.Related issues and pull requests on GitHub:
:issue:
9951
.v3.13.0
Compare Source
===================
Features
Added support for Python 3.14.
Related issues and pull requests on GitHub:
:issue:
10851
, :issue:10872
.Added support for free-threading in Python 3.14+ -- by :user:
kumaraditya303
.Related issues and pull requests on GitHub:
:issue:
11466
, :issue:11464
.Added support for Zstandard (aka Zstd) compression
-- by :user:
KGuillaume-chaps
.Related issues and pull requests on GitHub:
:issue:
11161
.Added
StreamReader.total_raw_bytes
to check the number of bytes downloaded-- by :user:
robpats
.Related issues and pull requests on GitHub:
:issue:
11483
.Bug fixes
Fixed pytest plugin to not use deprecated :py:mod:
asyncio
policy APIs.Related issues and pull requests on GitHub:
:issue:
10851
.Updated
Content-Disposition
header parsing to handle trailing semicolons and empty parts-- by :user:
PLPeeters
.Related issues and pull requests on GitHub:
:issue:
11243
.Fixed saved
CookieJar
failing to be loaded if cookies havepartitioned
flag whenhttp.cookie
does not have partitioned cookies supports. -- by :user:Cycloctane
.Related issues and pull requests on GitHub:
:issue:
11523
.Improved documentation
Added
Wireup
to third-party libraries -- by :user:maldoinc
.Related issues and pull requests on GitHub:
:issue:
11233
.Packaging updates and notes for downstreams
The
blockbuster
test dependency is now optional; the corresponding test fixture is disabled when it is unavailable-- by :user:
musicinybrain
.Related issues and pull requests on GitHub:
:issue:
11363
.Added
riscv64
build to releases -- by :user:eshattow
.Related issues and pull requests on GitHub:
:issue:
11425
.Contributor-facing changes
Fixed
test_send_compress_text
failing when alternative zlib implementationis used. (
zlib-ng
in python 3.14 windows build) -- by :user:Cycloctane
.Related issues and pull requests on GitHub:
:issue:
11546
.v3.12.15
Compare Source
====================
Bug fixes
Fixed :class:
~aiohttp.DigestAuthMiddleware
to preserve the algorithm case from the server's challenge in the authorization response. This improves compatibility with servers that perform case-sensitive algorithm matching (e.g., servers expectingalgorithm=MD5-sess
instead ofalgorithm=MD5-SESS
)-- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
11352
.Improved documentation
Remove outdated contents of
aiohttp-devtools
andaiohttp-swagger
from Web_advanced docs.
-- by :user:
Cycloctane
Related issues and pull requests on GitHub:
:issue:
11347
.Packaging updates and notes for downstreams
Started including the
llhttp
:file:LICENSE
file in wheels by addingvendor/llhttp/LICENSE
tolicense-files
in :file:setup.cfg
-- by :user:threexc
.Related issues and pull requests on GitHub:
:issue:
11226
.Contributor-facing changes
Updated a regex in
test_aiohttp_request_coroutine
for Python 3.14.Related issues and pull requests on GitHub:
:issue:
11271
.v3.12.14
Compare Source
====================
Bug fixes
Fixed file uploads failing with HTTP 422 errors when encountering 307/308 redirects, and 301/302 redirects for non-POST methods, by preserving the request body when appropriate per :rfc:
9110#section-15.4.3-3.1
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11270
.Fixed :py:meth:
ClientSession.close() <aiohttp.ClientSession.close>
hanging indefinitely when using HTTPS requests through HTTP proxies -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11273
.Bumped minimum version of aiosignal to 1.4+ to resolve typing issues -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub:
:issue:
11280
.Features
Added initial trailer parsing logic to Python HTTP parser -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub:
:issue:
11269
.Improved documentation
Clarified exceptions raised by
WebSocketResponse.send_frame
et al.-- by :user:
DoctorJohn
.Related issues and pull requests on GitHub:
:issue:
11234
.v3.12.13
Compare Source
====================
Bug fixes
Fixed auto-created :py:class:
~aiohttp.TCPConnector
not using the session's event loop when :py:class:~aiohttp.ClientSession
is created without an explicit connector -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11147
.v3.12.12
Compare Source
====================
Bug fixes
Fixed cookie unquoting to properly handle octal escape sequences in cookie values (e.g.,
\012
for newline) by vendoring the correct_unquote
implementation from Python'shttp.cookies
module -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11173
.Fixed
Cookie
header parsing to treat attribute names as regular cookies per :rfc:6265#section-5.4
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11178
.v3.12.11
Compare Source
====================
Features
Improved SSL connection handling by changing the default
ssl_shutdown_timeout
from
0.1
to0
seconds. SSL connections now use Python's default gracefulshutdown during normal operation but are aborted immediately when the connector
is closed, providing optimal behavior for both cases. Also added support for
ssl_shutdown_timeout=0
on all Python versions. Previously, this value wasrejected on Python 3.11+ and ignored on earlier versions. Non-zero values on
Python < 3.11 now trigger a
RuntimeWarning
-- by :user:bdraco
.The
ssl_shutdown_timeout
parameter is now deprecated and will be removed inaiohttp 4.0 as there is no clear use case for changing the default.
Related issues and pull requests on GitHub:
:issue:
11148
.Deprecations (removal in next major release)
Improved SSL connection handling by changing the default
ssl_shutdown_timeout
from
0.1
to0
seconds. SSL connections now use Python's default gracefulshutdown during normal operation but are aborted immediately when the connector
is closed, providing optimal behavior for both cases. Also added support for
ssl_shutdown_timeout=0
on all Python versions. Previously, this value wasrejected on Python 3.11+ and ignored on earlier versions. Non-zero values on
Python < 3.11 now trigger a
RuntimeWarning
-- by :user:bdraco
.The
ssl_shutdown_timeout
parameter is now deprecated and will be removed inaiohttp 4.0 as there is no clear use case for changing the default.
Related issues and pull requests on GitHub:
:issue:
11148
.v3.12.10
Compare Source
====================
Bug fixes
Fixed leak of
aiodns.DNSResolver
when :py:class:~aiohttp.TCPConnector
is closed and no resolver was passed when creating the connector -- by :user:Tasssadar
.This was a regression introduced in version 3.12.0 (:pr:
10897
).Related issues and pull requests on GitHub:
:issue:
11150
.v3.12.9
Compare Source
===================
Bug fixes
Fixed
IOBasePayload
andTextIOPayload
reading entire files into memory when streaming large files -- by :user:bdraco
.When using file-like objects with the aiohttp client, the entire file would be read into memory if the file size was provided in the
Content-Length
header. This could cause out-of-memory errors when uploading large files. The payload classes now correctly read data in chunks ofREAD_SIZE
(64KB) regardless of the total content length.Related issues and pull requests on GitHub:
:issue:
11138
.v3.12.8
Compare Source
===================
Features
Added preemptive digest authentication to :class:
~aiohttp.DigestAuthMiddleware
-- by :user:bdraco
.The middleware now reuses authentication credentials for subsequent requests to the same
protection space, improving efficiency by avoiding extra authentication round trips.
This behavior matches how web browsers handle digest authentication and follows
:rfc:
7616#section-3.6
.Preemptive authentication is enabled by default but can be disabled by passing
preemptive=False
to the middleware constructor.Related issues and pull requests on GitHub:
:issue:
11128
, :issue:11129
.v3.12.7
Compare Source
===================
.. warning::
This release fixes an issue where the
quote_cookie
parameter was not being properlyrespected for shared cookies (domain="", path=""). If your server does not handle quoted
cookies correctly, you may need to disable cookie quoting by setting
quote_cookie=False
when creating your :class:
~aiohttp.ClientSession
or :class:~aiohttp.CookieJar
.See :ref:
aiohttp-client-cookie-quoting-routine
for details.Bug fixes
Fixed cookie parsing to be more lenient when handling cookies with special characters
in names or values. Cookies with characters like
{
,}
, and/
in names are nowaccepted instead of causing a :exc:
~http.cookies.CookieError
and 500 errors. Additionally,cookies with mismatched quotes in values are now parsed correctly, and quoted cookie
values are now handled consistently whether or not they include special attributes
like
Domain
. Also fixed :class:~aiohttp.CookieJar
to ensure shared cookies (domain="", path="")respect the
quote_cookie
parameter, making cookie quoting behavior consistent forall cookies -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
2683
, :issue:5397
, :issue:7993
, :issue:11112
.Fixed an issue where cookies with duplicate names but different domains or paths
were lost when updating the cookie jar. The :class:
~aiohttp.ClientSession
cookie jar now correctly stores all cookies even if they have the same name but
different domain or path, following the :rfc:
6265#section-5.3
storage model -- by :user:bdraco
.Note that :attr:
ClientResponse.cookies <aiohttp.ClientResponse.cookies>
returnsa :class:
~http.cookies.SimpleCookie
which uses the cookie name as a key, soonly the last cookie with each name is accessible via this interface. All cookies
can be accessed via :meth:
ClientResponse.headers.getall('Set-Cookie') <multidict.MultiDictProxy.getall>
if needed.Related issues and pull requests on GitHub:
:issue:
4486
, :issue:11105
, :issue:11106
.Miscellaneous internal changes
Avoided creating closed futures in
ResponseHandler
that will never be awaited -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
11107
.Downgraded the logging level for connector close errors from ERROR to DEBUG, as these are expected behavior with TLS 1.3 connections -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
11114
.v3.12.6
Compare Source
===================
Bug fixes
Fixed spurious "Future exception was never retrieved" warnings for connection lost errors when the connector is not closed -- by :user:
bdraco
.When connections are lost, the exception is now marked as retrieved since it is always propagated through other means, preventing unnecessary warnings in logs.
Related issues and pull requests on GitHub:
:issue:
11100
.v3.12.4
Compare Source
===================
Bug fixes
Fixed connector not waiting for connections to close before returning from :meth:
~aiohttp.BaseConnector.close
(partial backport of :pr:3733
) -- by :user:atemate
and :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1925
, :issue:11074
.v3.12.3
Compare Source
===================
Bug fixes
Fixed memory leak in :py:meth:
~aiohttp.CookieJar.filter_cookies
that caused unbounded memory growthwhen making requests to different URL paths -- by :user:
bdraco
and :user:Cycloctane
.Related issues and pull requests on GitHub:
:issue:
11052
, :issue:11054
.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
====================
Bug fixes
Fixed :class:
~aiohttp.DigestAuthMiddleware
to preserve the algorithm case from the server's challenge in the authorization response. This improves compatibility with servers that perform case-sensitive algorithm matching (e.g., servers expectingalgorithm=MD5-sess
instead ofalgorithm=MD5-SESS
)-- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
11352
.Improved documentation
Remove outdated contents of
aiohttp-devtools
andaiohttp-swagger
from Web_advanced docs.
-- by :user:
Cycloctane
Related issues and pull requests on GitHub:
:issue:
11347
.Packaging updates and notes for downstreams
Started including the
llhttp
:file:LICENSE
file in wheels by addingvendor/llhttp/LICENSE
tolicense-files
in :file:setup.cfg
-- by :user:threexc
.Related issues and pull requests on GitHub:
:issue:
11226
.Contributor-facing changes
Updated a regex in
test_aiohttp_request_coroutine
for Python 3.14.Related issues and pull requests on GitHub:
:issue:
11271
.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
.v3.11.16
Compare Source
====================
Bug fixes
Replaced deprecated
asyncio.iscoroutinefunction
with its counterpart frominspect
-- by :user:
layday
.Related issues and pull requests on GitHub:
:issue:
10634
.Fixed :class:
multidict.CIMultiDict
being mutated when passed to :class:aiohttp.web.Response
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
10672
.v3.11.15
Compare Source
====================
Bug fixes
Reverted explicitly closing sockets if an exception is raised during
create_connection
-- by :user:bdraco
.This change originally appeared in aiohttp 3.11.13
Related issues and pull requests on GitHub:
:issue:
10464
, :issue:10617
, :issue:10656
.Miscellaneous internal changes
Improved performance of WebSocket buffer handling -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10601
.Improved performance of serializing headers -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
10625
.aio-libs/aiosignal (aiosignal)
v1.4.0
Compare Source
==================
Features
Added decorator functionality to
Signal
as a convenient way to add a callback -- by@Vizonex
.#​699 <https://github.com/aio-libs/aiosignal/pulls/699>
_Improved type safety by allowing callback parameters to be type checked (typing-extensions is now required for Python <3.13).
Parameters for a
Signal
callback should now be defined likeSignal[int, str]
-- by @Vizonex and @Dreamsorcerer.#​699 <https://github.com/aio-libs/aiosignal/pulls/699>
,#​710 <https://github.com/aio-libs/aiosignal/pulls/710>
Misc
#​528 <https://github.com/aio-libs/aiosignal/pull/528>
_python-attrs/attrs (attrs)
v25.4.0
Compare Source
Backwards-incompatible Changes
Class-level
kw_only=True
behavior is now consistent withdataclasses
.Previously, a class that sets
kw_only=True
makes all attributes keyword-only, including those from base classes.If an attribute sets
kw_only=False
, that setting is ignored, and it is still made keyword-only.Now, only the attributes defined in that class that doesn't explicitly set
kw_only=False
are made keyword-only.This shouldn't be a problem for most users, unless you have a pattern like this:
Here, we have a
kw_only=True
attrs class (Base
) with an attribute that setskw_only=False
and has a default (Base.b
), and then create a subclass (Subclass
) with required arguments (Subclass.c
).Previously this would work, since it would make
Base.b
keyword-only, but now this fails sinceBase.b
is positional, and we have a required positional argument (Subclass.c
) following another argument with defaults.#1457
Changes
Values passed to the
__init__()
method ofattrs
classes are now correctly passed to__attrs_pre_init__()
instead of their default values (in cases where kw_only was not specified).#1427
Added support for Python 3.14 and PEP 749.
#1446,
#1451
attrs.validators.deep_mapping()
now allows to leave out either key_validator xor value_validator.#1448
attrs.validators.deep_iterator()
andattrs.validators.deep_mapping()
now accept lists and tuples for all validators and wrap them into aattrs.validators.and_()
.#1449
Added a new experimental way to inspect classes:
attrs.inspect(cls)
returns the effective class-wide parameters that were used by attrs to construct the class.The returned class is the same data structure that attrs uses internally to decide how to construct the final class.
#1454
Fixed annotations for
attrs.field(converter=...)
.Previously, a
tuple
of converters was only accepted if it had exactly one element.#1461
The performance of
attrs.asdict()
has been improved by 45–260%.#1463
The performance of
attrs.astuple()
has been improved by 49–270%.#1469
The type annotation for
attrs.validators.or_()
now allows for different types of validators.This was only an issue on Pyright.
#1474
certifi/python-certifi (certifi)
v2025.10.5
Compare Source
v2025.8.3
Compare Source
v2025.7.14
Compare Source
v2025.7.9
Compare Source
v2025.6.15
Compare Source
v2025.4.26
Compare Source
python-cffi/cffi (cffi)
v2.0.0
Compare Source
What's Changed
Full Changelog: https://github.com/python-cffi/cffi/compare/v1.17.1...v2.0.0
jawah/charset_normalizer (charset-normalizer)
v3.4.4
Compare Source
Changed
setuptools
to a specific constraintsetuptools>=68,<=81
.Removed
setuptools-scm
as a build dependency.Misc
dev-requirements.txt
and createdci-requirements.txt
for security purposes.multiple.intoto.jsonl
in GitHub releases in addition to individual attestation file per wheel.v3.4.3
Compare Source
Changed
CHARSET_NORMALIZER_USE_MYPYC
isn't set to1
. (#595) (#583)detect
output legacy function. (#391)Added
Fixed
Misc
Each published wheel comes with its SBOM. We choose CycloneDX as the format.
v3.4.2
Compare Source
Fixed
argparse.FileType
by backporting the target class into the package. (#591)Changed
pyca/cryptography (cryptography)
v46.0.3
Compare Source
v46.0.2
Compare Source
v46.0.1
Compare Source
v46.0.0
Compare Source
v45.0.7
Compare Source
v45.0.6
Compare Source
v45.0.5
Compare Source
v45.0.4
Compare Source
v45.0.3
Compare Source
v45.0.2
Compare Source
v45.0.1
Compare Source
v45.0.0
Compare Source
v44.0.3
Compare Source
aio-libs/frozenlist (frozenlist)
v1.8.0
Compare Source
======
(2025-10-05)
Contributor-facing changes
The :file:
reusable-cibuildwheel.yml
workflow has been refactored tobe more generic and :file:
ci-cd.yml
now holds all the configurationtoggles -- by :user:
webknjaz
.Related issues and pull requests on GitHub:
:issue:
668
.When building wheels, the source distribution is now passed directly
to the
cibuildwheel
invocation -- by :user:webknjaz
.Related issues and pull requests on GitHub:
:issue:
669
.Builds and tests have been added to
ci-cd.yml
for arm64 Windows wheels -- by :user:finnagin
.Related issues and pull requests on GitHub:
:issue:
677
.Started building wheels for CPython 3.14 -- by :user:
kumaraditya303
.Related issues and pull requests on GitHub:
:issue:
681
, :issue:682
.Removed
--config-settings=pure-python=false
from :file:requirements/dev.txt
.Developers on CPython still get accelerated builds by default. To explicitly build
a pure Python wheel, use
pip install -e . --config-settings=pure-python=true
-- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
687
.v1.7.0
Compare Source
======
(2025-06-09)
Features
Added deepcopy support to FrozenList -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
659
.Packaging updates and notes for downstreams
Fixed an issue where
frozenlist
binary wheels would be built with debugging symbols and line tracing enabled, which significantly impacted performance. Line tracing is now disabled by default and can only be enabled explicitly -- by :user:bdraco
.This change ensures that production builds are optimized for performance. Developers who need line tracing for debugging purposes can still enable it by:
FROZENLIST_CYTHON_TRACING
environment variable--config-setting=with-cython-tracing=true
option with pipRelated issues and pull requests on GitHub:
:issue:
660
.Enabled
PIP_CONSTRAINT
environment variable in the build configuration to ensure the pinned Cython version fromrequirements/cython.txt
is used during wheel builds.Related issues and pull requests on GitHub:
:issue:
661
.v1.6.2
Compare Source
======
(2025-06-03)
No significant changes.
v1.6.1
Compare Source
======
(2025-06-02)
Bug fixes
Correctly use
cimport
for includingPyBool_FromLong
-- by :user:lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
653
.Packaging updates and notes for downstreams
Exclude
_frozenlist.cpp
from bdists/wheels -- by :user:musicinmybrain
.Related issues and pull requests on GitHub:
:issue:
649
.Updated to use Cython 3.1 universally across the build path -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
654
.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
.kjd/idna (idna)
v3.11
Compare Source
aio-libs/multidict (multidict)
v6.7.0
Compare Source
=====
(2025-10-05)
Contributor-facing changes
Updated tests and added CI for CPython 3.14 -- by :user:
kumaraditya303
.Related issues and pull requests on GitHub:
:issue:
1235
.v6.6.4
Compare Source
=====
(2025-08-11)
Bug fixes
Fixed
MutliDict
&CIMultiDict
memory leak when deleting values or clearing them-- by :user:
Vizonex
Related issues and pull requests on GitHub:
:issue:
1233
.Contributor-facing changes
The type preciseness coverage report generated by
MyPy <https://mypy-lang.org>
__ is now uploaded toCoveralls <https://coveralls.io/github/aio-libs/multidict>
__ andwill not be included in the
Codecov views <https://app.codecov.io/gh/aio-libs/multidict>
__ going forward-- by :user:
webknjaz
.Related issues and pull requests on GitHub:
:issue:
1122
, :issue:1231
.Added memory leak test for popping or deleting attributes from a multidict to prevent future issues or bogus claims.
-- by :user:
Vizonex
Related issues and pull requests on GitHub:
:issue:
1233
.v6.6.3
Compare Source
=====
(2025-06-30)
Bug fixes
Fixed inconsistencies generated by the C implementation of
_md_shrink()
which might later lead to assertion failures and crash -- by :user:Romain-Geissler-1A
.Related issues and pull requests on GitHub:
:issue:
1229
.v6.6.2
Compare Source
=====
(2025-06-28)
Bug fixes
Fixed a memory corruption issue in the C implementation of
_md_shrink()
that could lead to segmentation faults and data loss when items were deleted from a :class:~multidict.MultiDict
. The issue was an edge case in the pointer arithmetic during the compaction phase -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1221
, :issue:1222
.Fixed format string compilation errors in debug builds on 32-bit platforms by using portable
%zd
format specifiers forPy_ssize_t
values instead of%ld
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1225
, :issue:1226
.Packaging updates and notes for downstreams
Re-enabled 32-bit Linux wheel builds that were disabled by default in cibuildwheel 3.0.0 -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1225
, :issue:1227
.v6.6.1
Compare Source
=====
(2025-06-28)
Bug fixes
If :meth:
multidict.MultiDict.extend
, :meth:multidict.MultiDict.merge
, or :meth:multidict.MultiDict.update
raises an exception, now the multidict internal state is correctly restored.Patch by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1215
.Contributor-facing changes
Fixed
setuptools
deprecation warning about the license specification -- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1216
.Fix compiler warnings and convert them to errors -- by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1217
.v6.6.0
Compare Source
=====
(2025-06-27)
Features
Added :meth:
multidict.MultiDict.merge
which copies all items from arguments if its keynot exist in the dictionary -- by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
292
.Stopped reallocating memory for the internal
htkeys_t
structure when inserting new items if themultidict has deleted items and it could be collapsed in-place. Removal of
malloc()
/free()
improves the performance slightly.The change affects C implementation only, pure Python code is not changed.
Patch by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1200
.C implementation of :class:
multidict.MultiDict.getall
now is slightly faster if it returns nothing -- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1212
.Improved documentation
Replaced docstring for :meth:
multidict.MultiDict.update
to don't use RST/markdown markup.Related issues and pull requests on GitHub:
:issue:
1203
.Improved documentation for :meth:
multidict.MultiDict.extend
and :meth:multidict.MultiDict.update
-- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1205
.Contributor-facing changes
When building wheels, the source distribution is now passed directly
to the
cibuildwheel
invocation -- by :user:webknjaz
.Related issues and pull requests on GitHub:
:issue:
1199
.Set up
PYTHONHASHSEED
for benchmarks execution to make measured times stable -- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1202
.v6.5.1
Compare Source
=====
(2025-06-24)
Bug fixes
Fixed a bug in C implementation when multidict is resized and it has deleted slots.
The bug was introduced by multidict 6.5.0 release.
Patch by :user:
asvetlov
.Related issues and pull requests on GitHub:
:issue:
1195
.Contributor-facing changes
A pair of code formatters for Python and C have been configured in the pre-commit tool.
Related issues and pull requests on GitHub:
:issue:
1123
.Shorted fixture parametrization ids.
For example,
test_keys_view_xor[case-insensitive-pure-python-module]
becomestest_keys_view_xor[ci-py]
-- by :user:asvetlov
.Related issues and pull requests on GitHub:
:issue:
1192
.The :file:
reusable-cibuildwheel.yml
workflow has been refactored tobe more generic and :file:
ci-cd.yml
now holds all the configurationtoggles -- by :user:
webknjaz
.Related issues and pull requests on GitHub:
:issue:
1193
.v6.5.0
Compare Source
=====
(2025-06-17)
.. note::
The release was yanked because of :issue:
1195
, multidict 6.5.1 should be usedinstead.
Features
Replace internal implementation from an array of items to hash table.
algorithmic complexity for lookups is switched from O(N) to O(1).
The hash table is very similar to :class:
dict
from CPython but it allows keys duplication.The benchmark shows 25-50% boost for single lookups, x2-x3 for bulk updates, and x20 for
some multidict view operations. The gain is not for free:
:class:
~multidict.MultiDict.add
and :class:~multidict.MultiDict.extend
are 25-50%slower now. We consider it as acceptable because the lookup is much more common
operation that addition for the library domain.
Related issues and pull requests on GitHub:
:issue:
1128
.Contributor-facing changes
Builds have been added for arm64 Windows
wheels and the
reusable-build-wheel.yml
template has been modified to allow for
an os value (
windows-11-arm
) whichdoes not end with the
-latest
postfix.Related issues and pull requests on GitHub:
:issue:
1167
.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
.v6.4.2
Compare Source
=====
(2025-04-09)
Bug fixes
Fixed a segmentation fault when creating subclassed :py:class:
~multidict.MultiDict
objects on Python < 3.11 -- by :user:bdraco
.The problem first appeared in 6.4.0
Related issues and pull requests on GitHub:
:issue:
1141
.v6.4.1
Compare Source
=====
(2025-04-09)
No significant changes.
v6.4.0
Compare Source
=====
(2025-04-09)
Bug fixes
Fixed a memory leak creating new :class:
~multidict.istr
objects -- by :user:bdraco
.The leak was introduced in 6.3.0
Related issues and pull requests on GitHub:
:issue:
1133
.Fixed reference counting when calling :py:meth:
multidict.MultiDict.update
-- by :user:bdraco
.The leak was introduced in 4.4.0
Related issues and pull requests on GitHub:
:issue:
1135
.Features
Switched C Extension to use heap types and the module state.
Related issues and pull requests on GitHub:
:issue:
1125
.Started building armv7l wheels -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1127
.v6.3.2
Compare Source
=====
(2025-04-03)
Bug fixes
Resolved a memory leak by ensuring proper reference count decrementation -- by :user:
asvetlov
and :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1121
.v6.3.1
Compare Source
=====
(2025-04-01)
Bug fixes
Fixed keys not becoming case-insensitive when :class:
multidict.CIMultiDict
is created by passing in a :class:multidict.MultiDict
-- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1112
.Fixed the pure Python version mutating the original :class:
multidict.MultiDict
when creating a new :class:multidict.CIMultiDict
from an existing one when keyword arguments are also passed -- by :user:bdraco
.Related issues and pull requests on GitHub:
:issue:
1113
.Prevented crashing with a segfault when :func:
repr
is called for recursive multidicts and their proxies and views.Related issues and pull requests on GitHub:
:issue:
1115
.v6.3.0
Compare Source
=====
(2025-03-31)
Bug fixes
Set operations for
KeysView
andItemsView
of case-insensitive multidicts and their proxies are processed in case-insensitive manner.Related issues and pull requests on GitHub:
:issue:
965
.Rewrote :class:
multidict.CIMultiDict
and it proxy to always return:class:
multidict.istr
keys.istr
is derived from :class:str
,thus the change is backward compatible.
The performance boost is about 15% for some operations for C Extension,
pure Python implementation have got a visible (15% - 230%) speedup as well.
Related issues and pull requests on GitHub:
:issue:
1097
.Fixed a crash when extending a multidict from multidict proxy if C Extensions were used.
Related issues and pull requests on GitHub:
:issue:
1100
.Features
Implemented a custom parser for
METH_FASTCALL | METH_KEYWORDS
protocol-- by :user:
asvetlov
.The patch re-enables fast call protocol in the :py:mod:
multidict
C Extension.Speedup is about 25%-30% for the library benchmarks for Python 3.12+.
Related issues and pull requests on GitHub:
:issue:
1070
.The C-extension no longer pre-allocates a Python exception object in
lookup-related methods of :py:class:
~multidict.MultiDict
when thepassed-in key is not found but default value is provided.
Namely, this affects :py:meth:
MultiDict.getone() <multidict.MultiDict.getone>
, :py:meth:MultiDict.getall() <multidict.MultiDict.getall>
, :py:meth:MultiDict.get() <multidict.MultiDict.get>
, :py:meth:MultiDict.pop() <multidict.MultiDict.pop>
, :py:meth:MultiDict.popone() <multidict.MultiDict.popone>
, and :py:meth:MultiDict.popall() <multidict.MultiDict.popall>
.Additionally, the :py:class:
~multidict.MultiDict
comparison withregular :py:class:
dict
\ ionaries is now about 60% fasteron Python 3.13+ in the fallback-to-default case.
Related issues and pull requests on GitHub:
:issue:
1078
.Implemented
__repr__()
for C Extension classes in C.The speedup is about 2.5 times.
Related issues and pull requests on GitHub:
:issue:
1081
.Made C version of :class:
multidict.istr
pickleable.Related issues and pull requests on GitHub:
:issue:
1098
.Optimized multidict creation and extending / updating if C Extensions are used.
The speedup is between 25% and 70% depending on the usage scenario.
Related issues and pull requests on GitHub:
:issue:
1101
.:meth:
multidict.MultiDict.popitem
is changed to removethe latest entry instead of the first.
It gives O(1) amortized complexity.
The standard :meth:
dict.popitem
removes the last entry also.Related issues and pull requests on GitHub:
:issue:
1105
.Contributor-facing changes
Started running benchmarks for the pure Python implementation in addition to the C implementation -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1092
.The the project-wide Codecov_ metric is no longer reported
via GitHub Checks API. The combined value is not very useful
because one of the sources (MyPy) cannot reach 100% with the
current state of the ecosystem. We may want to reconsider in
the future. Instead, we now have two separate
“runtime coverage” metrics for library code and tests.
They are to be kept at 100% at all times.
And the “type coverage” metric will remain advisory, at a
lower threshold.
The default patch metric check is renamed to “runtime”
to better reflect its semantics. This one will also require
100% coverage.
Another “typing” patch coverage metric is now reported
alongside it. It's considered advisory, just like its
project counterpart.
When looking at Codecov_, one will likely want to look at
MyPy and pytest flags separately. It is usually best to
avoid looking at the PR pages that sometimes display
combined coverage incorrectly.
The change additionally disables the deprecated GitHub
Annotations integration in Codecov_.
Finally, the badge coloring range now starts at 100%.
.. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg?flag=pytest
:target: https://codecov.io/gh/aio-libs/multidict?flags[]=pytest
:alt: Coverage metrics
-- by :user:
webknjaz
Related issues and pull requests on GitHub:
:issue:
1093
.Miscellaneous internal changes
Synchronized :file:
pythoncapi_compat.h
with the latest available version.Related issues and pull requests on GitHub:
:issue:
1063
.Moved registering ABCs for C Extension classes from C to Python.
Related issues and pull requests on GitHub:
:issue:
1083
.Refactored the internal
pair_list
implementation.Related issues and pull requests on GitHub:
:issue:
1084
.Implemented views comparison and disjoints in C instead of Python helpers.
The performance boost is about 40%.
Related issues and pull requests on GitHub:
:issue:
1096
.aio-libs/propcache (propcache)
v0.4.1
Compare Source
=====
(2025-10-08)
Bug fixes
Fixed reference leak caused by
Py_INCREF
because Cython has its own reference counter systems -- by :user:Vizonex
.Related issues and pull requests on GitHub:
:issue:
162
.Contributor-facing changes
Fixes the default value for the
os
parameter in
reusable-build-wheel.yml
to be
ubuntu-latest
instead ofubuntu
.Related issues and pull requests on GitHub:
:issue:
155
.v0.4.0
Compare Source
=====
(2025-10-04)
Features
Optimized propcache by replacing sentinel :py:class:
object
for checking ifthe :py:class:
object
isNULL
and changed :py:class:dict
API forPython C-API -- by :user:
Vizonex
.Related issues and pull requests on GitHub:
:issue:
121
.Contributor-facing changes
Builds have been added for arm64 Windows
wheels and the
reusable-build-wheel.yml
workflow has been modified to allow for
an OS value (
windows-11-arm
) whichdoes not include the
-latest
postfix-- by :user:
finnagin
.Related issues and pull requests on GitHub:
:issue:
133
.Added CI for CPython 3.14 -- by :user:
kumaraditya303
.Related issues and pull requests on GitHub:
:issue:
140
.v0.3.2
Compare Source
=====
(2025-06-09)
Improved documentation
Fixed incorrect decorator usage in the :func:
~propcache.api.under_cached_property
example code -- by :user:meanmail
.Related issues and pull requests on GitHub:
:issue:
109
.Packaging updates and notes for downstreams
Updated to use Cython 3.1 universally across the build path -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
117
.Made Cython line tracing opt-in via the
with-cython-tracing
build config setting -- by :user:bdraco
.Previously, line tracing was enabled by default in :file:
pyproject.toml
, which caused build issues for some users and made wheels nearly twice as slow.Now line tracing is only enabled when explicitly requested via
pip install . --config-setting=with-cython-tracing=true
or by setting thePROPCACHE_CYTHON_TRACING
environment variable.Related issues and pull requests on GitHub:
:issue:
118
.eliben/pycparser (pycparser)
v2.23
Compare Source
theskumar/python-dotenv (python-dotenv)
v1.1.1
Compare Source
Fixed
find_dotenv
work reliably on python 3.13 by [@theskumar] in #563psf/requests (requests)
v2.32.5
Compare Source
Bugfixes
a new class of issues in Requests that have had negative impact across a number
of use cases. The Requests team has decided to revert this feature as long term
maintenance of it is proving to be unsustainable in its current iteration.
Deprecations
v2.32.4
Compare Source
Security
environment will retrieve credentials for the wrong hostname/machine from a
netrc file.
Improvements
Deprecations
python/typing_extensions (typing_extensions)
v4.15.0
Compare Source
No user-facing changes since 4.15.0rc1.
v4.14.1
Compare Source
typing_extensions.TypedDict
nested inside other types(e.g.,
typing.Type[typing_extensions.TypedDict]
). This is not allowed by thetype system but worked on older versions, so we maintain support.
v4.14.0
Compare Source
Changes since 4.14.0rc1:
__or__
and__ror__
methods fromtyping_extensions.Sentinel
on Python versions <3.10. PEP 604 was introduced in Python 3.10, and
typing_extensions
does not generally attempt to backport PEP-604 methodsto prior versions.
typing_extensions.evaluate_forward_ref
with changes in Python 3.14.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.
v4.13.1
Compare Source
Bugfixes:
TypeError
when usingConcatenate
.Patch by Daraan.
TypeError
when usingevaluate_forward_ref
on Python 3.10.1-2 and 3.9.8-10.Patch by Daraan.
urllib3/urllib3 (urllib3)
v2.5.0
Compare Source
==================
Features
compression.zstd
module that is new in Python 3.14.See
PEP 784 <https://peps.python.org/pep-0784/>
_ for more information. (#​3610 <https://github.com/urllib3/urllib3/issues/3610>
__)hatch-vcs
(#​3612 <https://github.com/urllib3/urllib3/issues/3612>
__)Bugfixes
redirects at the
urllib3.PoolManager
level via theretries
parameterdid not work.
retries
and
redirects
.HTTPResponse.shutdown
on a connection already released to the pool. (#​3581 <https://github.com/urllib3/urllib3/issues/3581>
__)CONNECT
statement when using an IPv6 proxy withconnection_from_host
. Previously would not be wrapped in[]
. (#​3615 <https://github.com/urllib3/urllib3/issues/3615>
__)v2.4.0
Compare Source
==================
Features
#​3522 <https://github.com/urllib3/urllib3/issues/3522>
__)#​3567 <https://github.com/urllib3/urllib3/issues/3567>
__)verify_flags
option tocreate_urllib3_context
with a default ofVERIFY_X509_PARTIAL_CHAIN
andVERIFY_X509_STRICT
for Python 3.13+. (#​3571 <https://github.com/urllib3/urllib3/issues/3571>
__)Bugfixes
#​3555 <https://github.com/urllib3/urllib3/issues/3555>
__)Misc
#​3550 <https://github.com/urllib3/urllib3/issues/3550>
__)multiple.intoto.jsonl
asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (#​3566 <https://github.com/urllib3/urllib3/issues/3566>
__)GrahamDumpleton/wrapt (wrapt)
v1.17.3
: wrapt-1.17.3Compare Source
See the project page on the Python Package Index at https://pypi.org/project/wrapt/1.17.3/ for more information.
aio-libs/yarl (yarl)
v1.22.0
Compare Source
======
(2025-10-05)
Features
Added arm64 Windows wheel builds
-- by :user:
finnagin
.Related issues and pull requests on GitHub:
:issue:
1516
.v1.21.0
======
(2025-10-05)
Contributor-facing changes
The :file:
reusable-cibuildwheel.yml
workflow has been refactored tobe more generic and :file:
ci-cd.yml
now holds all the configurationtoggles -- by :user:
webknjaz
.Related issues and pull requests on GitHub:
:issue:
1535
.When building wheels, the source distribution is now passed directly
to the
cibuildwheel
invocation -- by :user:webknjaz
.Related issues and pull requests on GitHub:
:issue:
1536
.Added CI for Python 3.14 -- by :user:
kumaraditya303
.Related issues and pull requests on GitHub:
:issue:
1560
.v1.20.1
======
(2025-06-09)
Bug fixes
Started raising a :exc:
ValueError
exception raised for corruptedIPv6 URL values.
These fixes the issue where exception :exc:
IndexError
wasleaking from the internal code because of not being handled and
transformed into a user-facing error. The problem was happening
under the following conditions: empty IPv6 URL, brackets in
reverse order.
-- by :user:
MaelPic
.Related issues and pull requests on GitHub:
:issue:
1512
.Packaging updates and notes for downstreams
Updated to use Cython 3.1 universally across the build path -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
1514
.Made Cython line tracing opt-in via the
with-cython-tracing
build config setting -- by :user:bdraco
.Previously, line tracing was enabled by default in :file:
pyproject.toml
, which caused build issues for some users and made wheels nearly twice as slow.Now line tracing is only enabled when explicitly requested via
pip install . --config-setting=with-cython-tracing=true
or by setting theYARL_CYTHON_TRACING
environment variable.Related issues and pull requests on GitHub:
:issue:
1521
.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
.v1.19.0
Compare Source
======
(2025-04-05)
Bug fixes
Fixed entire name being re-encoded when using :py:meth:
yarl.URL.with_suffix
-- by :user:NTFSvolume
.Related issues and pull requests on GitHub:
:issue:
1468
.Features
Started building armv7l wheels for manylinux -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1495
.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:
1471
.Increased minimum
propcache
_ version to 0.2.1 to fix failing tests -- by :user:bdraco
... _
propcache
:https://github.com/aio-libs/propcache
Related issues and pull requests on GitHub:
:issue:
1479
.Added all hidden folders to pytest's
norecursedirs
to prevent itfrom trying to collect tests there -- by :user:
lysnikolaou
.Related issues and pull requests on GitHub:
:issue:
1480
.Miscellaneous internal changes
Improved accuracy of type annotations -- by :user:
Dreamsorcerer
.Related issues and pull requests on GitHub:
:issue:
1484
.Improved performance of parsing query strings -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1493
, :issue:1497
.Improved performance of the C unquoter -- by :user:
bdraco
.Related issues and pull requests on GitHub:
:issue:
1496
, :issue:1498
.Configuration
📅 Schedule: Branch creation - "after 9am on monday" in timezone UTC, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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 has been generated by Renovate Bot.
54a99b43f8
to6bb13ad370
6bb13ad370
to50f5c2c8aa
50f5c2c8aa
to7c1d8cc157
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.