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:
==1.2.18->==1.3.1==2.6.1->==2.8.1==1.5.0->==1.6.1==3.11.14->==3.13.2==1.3.2->==1.4.0==25.3.0->==25.4.0==2025.1.31->==2025.11.12==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.2.1==2.32.3->==2.32.5==4.13.0->==4.15.0==2.3.0->==2.5.0==1.17.2->==2.0.1==1.18.3->==1.22.0Release Notes
laurent-laporte-pro/deprecated (Deprecated)
v1.3.1Compare Source
===================
Patch release: Packaging fix
Fixed
.tar.gz) that was not included in v1.3.0.v1.3.0Compare Source
===================
.. note::
Minor release: Parameters deprecation
Added
Add compatibility tests and adjustments for Wrapt v2.0. See PR #88 (musicinmybrain).
Add experimental
@deprecated_paramsdecorator to mark function parameters as deprecated at call-time; emits warnings when deprecated parameters are used with optional messages and configurable warning categories. See PR #93.Documentation
Changed
coveragetox environment to avoid collecting coverage across all test environments and reduce cross-environment coverage noise. See PR #92.pygithub/pygithub (PyGithub)
v2.8.1Compare Source
What's Changed
Bug Fixes
Full Changelog: https://github.com/PyGithub/PyGithub/compare/v2.8.0...v2.8.1
v2.8.0Compare Source
What's Changed
New Features
Improvements
Repository.get_automated_security_fixesmethod by @zstyblik in PyGithub/PyGithub#3303Issueclass with API spec by @EnricoMi in PyGithub/PyGithub#3338NamedUser | Organization | Enterpriseby @EnricoMi in PyGithub/PyGithub#3224Enterpriseclass with API spec by @EnricoMi in PyGithub/PyGithub#3342GitReleaseAssetclass with API spec by @EnricoMi in PyGithub/PyGithub#3343Teamrepo methods by @EnricoMi in PyGithub/PyGithub#3356Bug Fixes
Repository.get_git_refby @csalerno-asml in PyGithub/PyGithub#2992GitRelease.name, deprecateGitRelease.titleby @EnricoMi in PyGithub/PyGithub#3346"COMMENT"as the default event forcreate_reviewby @eddie-santos in PyGithub/PyGithub#3078maintainersinOrganization.create_teamby @interifter in PyGithub/PyGithub#3291Maintenance
PaginatedListby @sam93210 in PyGithub/PyGithub#3039github_actionslabel 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.0Compare Source
What's Changed
Breaking Changes
Github.get_rate_limit()now returnsRateLimitOverviewrather thanRateLimit(PyGithub/PyGithub#3205).Code like
should be replaced with
GitTag.verificationnow returnsGitCommitVerificationrather thandict[str, Any](PyGithub/PyGithub#3226).Code like
should be replaced with
New Features
Improvements
OrganizationInvitationby @EnricoMi in PyGithub/PyGithub#3207RepositoryAdvisorytests with OpenAPI spec by @EnricoMi in PyGithub/PyGithub#3215ProjectColumnandProjectCardtests with OpenAPI spec by @EnricoMi in PyGithub/PyGithub#3216CopilotSeatclass with API spec by @EnricoMi in PyGithub/PyGithub#3232HookDeliverySummaryclass with API spec by @EnricoMi in PyGithub/PyGithub#3233RequiredPullRequestReviewsclass with API spec by @EnricoMi in PyGithub/PyGithub#3234RequiredStatusChecksclass with API spec by @EnricoMi in PyGithub/PyGithub#3236Teamclass with API spec by @EnricoMi in PyGithub/PyGithub#3237deprecated.deprecated()withtyping_extensions.deprecated()by @lazka in PyGithub/PyGithub#3255prevent_self_reviewproperty toRepository.createEnvironmentby @gopidesupavan in PyGithub/PyGithub#3246PullRequest.get_issue_timelinemethod by @kukarkinmm in PyGithub/PyGithub#3259reversed()onPaginatedListby @mfocko in PyGithub/PyGithub#3260Requesterexception handling by @jsmolar in PyGithub/PyGithub#3299delete_self_hosted_runnertoOrganizationby @uncleDecart in PyGithub/PyGithub#3306Bug Fixes
Authclasses by @EnricoMi in PyGithub/PyGithub#3211Deployment, removemessageattribute by @EnricoMi in PyGithub/PyGithub#3223CodeSecurityConfigRepositoryreturned byget_repos_for_code_security_configby @EnricoMi in PyGithub/PyGithub#3219Branch.get_required_status_checksreturn type by @EnricoMi in PyGithub/PyGithub#3235multi_selectandtrue_falseoptions toCustomProperty.value_typeby @gfog-floqast in PyGithub/PyGithub#3173TimingData.run_duration_msoptional by @LifeLex in PyGithub/PyGithub#3268Dependencies
Maintenance
AppAuth.private_keyin changelog by @EnricoMi in PyGithub/PyGithub#3212HookDeliveryRequestand…Responseprivate headers fields by @EnricoMi in PyGithub/PyGithub#3221PaginatedList[int]by @EnricoMi in PyGithub/PyGithub#3240Organization.get_repos_for_code_security_configtest by @billnapier in PyGithub/PyGithub#3239TimingDataby @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.1Compare Source
MAKEenvironment variable can now be used to specify themakebinary that should be used in the build process.
v1.6.0Compare Source
crypto_core_ed25519_from_uniform.libsodiumto 1.0.20-stable (2025-08-27 build).aio-libs/aiohttp (aiohttp)
v3.13.2Compare Source
===================
Bug fixes
Fixed cookie parser to continue parsing subsequent cookies when encountering a malformed cookie that fails regex validation, such as Google's
g_statecookie with unescaped quotes -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
11632.Fixed loading netrc credentials from the default :file:
~/.netrc(:file:~/_netrcon Windows) location when the :envvar:NETRCenvironment variable is not set -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
11713, :issue:11714.Fixed WebSocket compressed sends to be cancellation safe. Tasks are now shielded during compression to prevent compressor state corruption. This ensures that the stateful compressor remains consistent even when send operations are cancelled -- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
11725.v3.13.1Compare Source
===================
Features
Make configuration options in
AppRunneralso available inrun_app()-- by :user:
Cycloctane.Related issues and pull requests on GitHub:
:issue:
11633.Bug fixes
Switched to
backports.zstdfor Python <3.14 and fixed zstd decompression for chunked zstd streams -- by :user:ZhaoMJ.Note: Users who installed
zstandardfor support on Python <3.14 will now need to installbackports.zstdinstead (installingaiohttp[speedups]will do this automatically).Related issues and pull requests on GitHub:
:issue:
11623.Updated
Content-Typeheader parsing to returnapplication/octet-streamwhen 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
zstdsupport -- 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.cfgto :file:pyproject.tomlper :pep:621-- by :user:
cdce8p.Related issues and pull requests on GitHub:
:issue:
9951.v3.13.0Compare 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_bytesto 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:
asynciopolicy APIs.Related issues and pull requests on GitHub:
:issue:
10851.Updated
Content-Dispositionheader parsing to handle trailing semicolons and empty parts-- by :user:
PLPeeters.Related issues and pull requests on GitHub:
:issue:
11243.Fixed saved
CookieJarfailing to be loaded if cookies havepartitionedflag whenhttp.cookiedoes not have partitioned cookies supports. -- by :user:Cycloctane.Related issues and pull requests on GitHub:
:issue:
11523.Improved documentation
Added
Wireupto third-party libraries -- by :user:maldoinc.Related issues and pull requests on GitHub:
:issue:
11233.Packaging updates and notes for downstreams
The
blockbustertest 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
riscv64build to releases -- by :user:eshattow.Related issues and pull requests on GitHub:
:issue:
11425.Contributor-facing changes
Fixed
test_send_compress_textfailing when alternative zlib implementationis used. (
zlib-ngin python 3.14 windows build) -- by :user:Cycloctane.Related issues and pull requests on GitHub:
:issue:
11546.v3.12.15Compare Source
====================
Bug fixes
Fixed :class:
~aiohttp.DigestAuthMiddlewareto 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-sessinstead ofalgorithm=MD5-SESS)-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
11352.Improved documentation
Remove outdated contents of
aiohttp-devtoolsandaiohttp-swaggerfrom Web_advanced docs.
-- by :user:
CycloctaneRelated issues and pull requests on GitHub:
:issue:
11347.Packaging updates and notes for downstreams
Started including the
llhttp:file:LICENSEfile in wheels by addingvendor/llhttp/LICENSEtolicense-filesin :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_coroutinefor Python 3.14.Related issues and pull requests on GitHub:
:issue:
11271.v3.12.14Compare 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_frameet al.-- by :user:
DoctorJohn.Related issues and pull requests on GitHub:
:issue:
11234.v3.12.13Compare Source
====================
Bug fixes
Fixed auto-created :py:class:
~aiohttp.TCPConnectornot using the session's event loop when :py:class:~aiohttp.ClientSessionis created without an explicit connector -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
11147.v3.12.12Compare Source
====================
Bug fixes
Fixed cookie unquoting to properly handle octal escape sequences in cookie values (e.g.,
\012for newline) by vendoring the correct_unquoteimplementation from Python'shttp.cookiesmodule -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
11173.Fixed
Cookieheader 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.11Compare Source
====================
Features
Improved SSL connection handling by changing the default
ssl_shutdown_timeoutfrom
0.1to0seconds. 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=0on 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_timeoutparameter 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_timeoutfrom
0.1to0seconds. 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=0on 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_timeoutparameter 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.10Compare Source
====================
Bug fixes
Fixed leak of
aiodns.DNSResolverwhen :py:class:~aiohttp.TCPConnectoris 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.9Compare Source
===================
Bug fixes
Fixed
IOBasePayloadandTextIOPayloadreading 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-Lengthheader. 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.8Compare 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=Falseto the middleware constructor.Related issues and pull requests on GitHub:
:issue:
11128, :issue:11129.v3.12.7Compare Source
===================
.. warning::
This release fixes an issue where the
quote_cookieparameter 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=Falsewhen creating your :class:
~aiohttp.ClientSessionor :class:~aiohttp.CookieJar.See :ref:
aiohttp-client-cookie-quoting-routinefor 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.CookieErrorand 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.CookieJarto ensure shared cookies (domain="", path="")respect the
quote_cookieparameter, 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.ClientSessioncookie jar now correctly stores all cookies even if they have the same name but
different domain or path, following the :rfc:
6265#section-5.3storage model -- by :user:bdraco.Note that :attr:
ClientResponse.cookies <aiohttp.ClientResponse.cookies>returnsa :class:
~http.cookies.SimpleCookiewhich 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
ResponseHandlerthat 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.6Compare 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.4Compare 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:atemateand :user:bdraco.Related issues and pull requests on GitHub:
:issue:
1925, :issue:11074.v3.12.3Compare Source
===================
Bug fixes
Fixed memory leak in :py:meth:
~aiohttp.CookieJar.filter_cookiesthat caused unbounded memory growthwhen making requests to different URL paths -- by :user:
bdracoand :user:Cycloctane.Related issues and pull requests on GitHub:
:issue:
11052, :issue:11054.v3.12.2Compare Source
===================
Bug fixes
Fixed
Content-Lengthheader not being set to0for non-GET requests withNonebody -- by :user:bdraco.Non-GET requests (
POST,PUT,PATCH,DELETE) withNoneas the body now correctly set theContent-Lengthheader 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.1Compare Source
====================
Bug fixes
Fixed :class:
~aiohttp.DigestAuthMiddlewareto 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-sessinstead ofalgorithm=MD5-SESS)-- by :user:
bdraco.Related issues and pull requests on GitHub:
:issue:
11352.Improved documentation
Remove outdated contents of
aiohttp-devtoolsandaiohttp-swaggerfrom Web_advanced docs.
-- by :user:
CycloctaneRelated issues and pull requests on GitHub:
:issue:
11347.Packaging updates and notes for downstreams
Started including the
llhttp:file:LICENSEfile in wheels by addingvendor/llhttp/LICENSEtolicense-filesin :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_coroutinefor Python 3.14.Related issues and pull requests on GitHub:
:issue:
11271.v3.12.0Compare Source
===================
Bug fixes
Fixed :py:attr:
~aiohttp.web.WebSocketResponse.preparedproperty to correctly reflect the prepared state, especially during timeout scenarios -- by :user:bdracoRelated 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:
asynciopolicy APIs.Related issues and pull requests on GitHub:
:issue:
10851.Fixed :py:class:
~aiohttp.resolver.AsyncResolvernot using theloopargument 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:
bdracoand :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
sessionattribute 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:
TimMenningerThis 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
zliblibrary.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
hostparameter toaiohttp_serverfixture -- 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_factoryto :py:class:aiohttp.TCPConnectorto 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
_DNSResolverManagersingleton ensuresonly one
DNSResolverobject 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
writelineswhen coalescing data and works with both regular and chunked transfer encoding.When
aiohttpuses client middleware to communicate with anaiohttpserver, connection reuse is more likely to occur since complete responses arrive in a single packet for small payloads.This aligns
aiohttpwith 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
llhttplibrary -- by :user:mgorny.This change adds support for :envvar:
AIOHTTP_USE_SYSTEM_DEPSenvironment variable thatcan be used to build aiohttp against the system install of the
llhttplibrary ratherthan the vendored one.
Related issues and pull requests on GitHub:
:issue:
10759.aiodnsis now installed on Windows with speedups extra -- by :user:bdraco.As of
aiodns3.3.0,SelectorEventLoopis no longer required when usingpycares4.7.0 or later.Related issues and pull requests on GitHub:
:issue:
10823.Fixed compatibility issue with Cython 3.1.1 -- by :user:
bdracoRelated issues and pull requests on GitHub:
:issue:
10877.Contributor-facing changes
Sped up tests by disabling
blockbusterfixture fortest_static_file_hugeandtest_static_file_huge_canceltests -- by :user:dikos1337.Related issues and pull requests on GitHub:
:issue:
9705, :issue:10761.Updated tests to avoid using deprecated :py:mod:
asynciopolicy 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
partitionedattribute in theset_cookiemethod.Related issues and pull requests on GitHub:
:issue:
9870.Setting :attr:
aiohttp.web.StreamResponse.last_modifiedto an unsupported type will now raise :exc:TypeErrorinstead of silently failing -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
10146.v3.11.18Compare 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.17Compare 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.16Compare Source
====================
Bug fixes
Replaced deprecated
asyncio.iscoroutinefunctionwith its counterpart frominspect-- by :user:
layday.Related issues and pull requests on GitHub:
:issue:
10634.Fixed :class:
multidict.CIMultiDictbeing mutated when passed to :class:aiohttp.web.Response-- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
10672.v3.11.15Compare 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.0Compare Source
==================
Features
Added decorator functionality to
Signalas 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
Signalcallback 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.0Compare Source
Backwards-incompatible Changes
Class-level
kw_only=Truebehavior is now consistent withdataclasses.Previously, a class that sets
kw_only=Truemakes 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=Falseare 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=Trueattrs class (Base) with an attribute that setskw_only=Falseand 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.bkeyword-only, but now this fails sinceBase.bis positional, and we have a required positional argument (Subclass.c) following another argument with defaults.#1457
Changes
Values passed to the
__init__()method ofattrsclasses 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
tupleof 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.11.12Compare Source
v2025.10.5Compare Source
v2025.8.3Compare Source
v2025.7.14Compare Source
v2025.7.9Compare Source
v2025.6.15Compare Source
v2025.4.26Compare Source
python-cffi/cffi (cffi)
v2.0.0Compare 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.4Compare Source
Changed
setuptoolsto a specific constraintsetuptools>=68,<=81.Removed
setuptools-scmas a build dependency.Misc
dev-requirements.txtand createdci-requirements.txtfor security purposes.multiple.intoto.jsonlin GitHub releases in addition to individual attestation file per wheel.v3.4.3Compare Source
Changed
CHARSET_NORMALIZER_USE_MYPYCisn't set to1. (#595) (#583)detectoutput legacy function. (#391)Added
Fixed
Misc
Each published wheel comes with its SBOM. We choose CycloneDX as the format.
v3.4.2Compare Source
Fixed
argparse.FileTypeby backporting the target class into the package. (#591)Changed
pyca/cryptography (cryptography)
v46.0.3Compare Source
v46.0.2Compare Source
v46.0.1Compare Source
v46.0.0Compare Source
v45.0.7Compare Source
v45.0.6Compare Source
v45.0.5Compare Source
v45.0.4Compare Source
v45.0.3Compare Source
v45.0.2Compare Source
v45.0.1Compare Source
v45.0.0Compare Source
v44.0.3Compare Source
aio-libs/frozenlist (frozenlist)
v1.8.0Compare Source
======
(2025-10-05)
Contributor-facing changes
The :file:
reusable-cibuildwheel.ymlworkflow has been refactored tobe more generic and :file:
ci-cd.ymlnow 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
cibuildwheelinvocation -- by :user:webknjaz.Related issues and pull requests on GitHub:
:issue:
669.Builds and tests have been added to
ci-cd.ymlfor 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=falsefrom :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.0Compare 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
frozenlistbinary 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_TRACINGenvironment variable--config-setting=with-cython-tracing=trueoption with pipRelated issues and pull requests on GitHub:
:issue:
660.Enabled
PIP_CONSTRAINTenvironment variable in the build configuration to ensure the pinned Cython version fromrequirements/cython.txtis used during wheel builds.Related issues and pull requests on GitHub:
:issue:
661.v1.6.2Compare Source
======
(2025-06-03)
No significant changes.
v1.6.1Compare Source
======
(2025-06-02)
Bug fixes
Correctly use
cimportfor includingPyBool_FromLong-- by :user:lysnikolaou.Related issues and pull requests on GitHub:
:issue:
653.Packaging updates and notes for downstreams
Exclude
_frozenlist.cppfrom 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.0Compare Source
======
(2025-04-17)
Bug fixes
Stopped implicitly allowing the use of Cython pre-release versions when
building the distribution package -- by :user:
ajsanchezsanzand: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:
ajsanchezsanzand: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:
webknjazthat 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.11Compare Source
aio-libs/multidict (multidict)
v6.7.0Compare 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.4Compare Source
=====
(2025-08-11)
Bug fixes
Fixed
MutliDict&CIMultiDictmemory leak when deleting values or clearing them-- by :user:
VizonexRelated 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:
VizonexRelated issues and pull requests on GitHub:
:issue:
1233.v6.6.3Compare 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.2Compare 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
%zdformat specifiers forPy_ssize_tvalues 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.1Compare Source
=====
(2025-06-28)
Bug fixes
If :meth:
multidict.MultiDict.extend, :meth:multidict.MultiDict.merge, or :meth:multidict.MultiDict.updateraises 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
setuptoolsdeprecation 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.0Compare Source
=====
(2025-06-27)
Features
Added :meth:
multidict.MultiDict.mergewhich 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_tstructure 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.getallnow 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.updateto don't use RST/markdown markup.Related issues and pull requests on GitHub:
:issue:
1203.Improved documentation for :meth:
multidict.MultiDict.extendand :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
cibuildwheelinvocation -- by :user:webknjaz.Related issues and pull requests on GitHub:
:issue:
1199.Set up
PYTHONHASHSEEDfor benchmarks execution to make measured times stable -- by :user:asvetlov.Related issues and pull requests on GitHub:
:issue:
1202.v6.5.1Compare 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.ymlworkflow has been refactored tobe more generic and :file:
ci-cd.ymlnow holds all the configurationtoggles -- by :user:
webknjaz.Related issues and pull requests on GitHub:
:issue:
1193.v6.5.0Compare 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:
dictfrom 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.addand :class:~multidict.MultiDict.extendare 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.ymltemplate has been modified to allow for
an os value (
windows-11-arm) whichdoes not end with the
-latestpostfix.Related issues and pull requests on GitHub:
:issue:
1167.v6.4.4Compare Source
=====
(2025-05-19)
Bug fixes
Fixed a segmentation fault when calling :py:meth:
multidict.MultiDict.setdefaultwith 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:
TypeErrorwith 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.MultiDictProxywas refactored to rely only on:class:
multidict.MultiDictpublic 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.MultiDictAPI and don't touch any implementationdetails.
Related issues and pull requests on GitHub:
:issue:
1152.Dropped internal
_Implclass 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.3Compare 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_BUILDin the environment -- by :user:bdraco.Related issues and pull requests on GitHub:
:issue:
1145.v6.4.2Compare Source
=====
(2025-04-09)
Bug fixes
Fixed a segmentation fault when creating subclassed :py:class:
~multidict.MultiDictobjects 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.1Compare Source
=====
(2025-04-09)
No significant changes.
v6.4.0Compare Source
=====
(2025-04-09)
Bug fixes
Fixed a memory leak creating new :class:
~multidict.istrobjects -- 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.2Compare Source
=====
(2025-04-03)
Bug fixes
Resolved a memory leak by ensuring proper reference count decrementation -- by :user:
asvetlovand :user:bdraco.Related issues and pull requests on GitHub:
:issue:
1121.v6.3.1Compare Source
=====
(2025-04-01)
Bug fixes
Fixed keys not becoming case-insensitive when :class:
multidict.CIMultiDictis 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.MultiDictwhen creating a new :class:multidict.CIMultiDictfrom 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:
repris called for recursive multidicts and their proxies and views.Related issues and pull requests on GitHub:
:issue:
1115.v6.3.0Compare Source
=====
(2025-03-31)
Bug fixes
Set operations for
KeysViewandItemsViewof case-insensitive multidicts and their proxies are processed in case-insensitive manner.Related issues and pull requests on GitHub:
:issue:
965.Rewrote :class:
multidict.CIMultiDictand it proxy to always return:class:
multidict.istrkeys.istris 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_KEYWORDSprotocol-- by :user:
asvetlov.The patch re-enables fast call protocol in the :py:mod:
multidictC 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.MultiDictwhen 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.MultiDictcomparison 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.istrpickleable.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.popitemis changed to removethe latest entry instead of the first.
It gives O(1) amortized complexity.
The standard :meth:
dict.popitemremoves 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:
webknjazRelated issues and pull requests on GitHub:
:issue:
1093.Miscellaneous internal changes
Synchronized :file:
pythoncapi_compat.hwith 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_listimplementation.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.1Compare Source
=====
(2025-10-08)
Bug fixes
Fixed reference leak caused by
Py_INCREFbecause 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
osparameter in
reusable-build-wheel.ymlto be
ubuntu-latestinstead ofubuntu.Related issues and pull requests on GitHub:
:issue:
155.v0.4.0Compare Source
=====
(2025-10-04)
Features
Optimized propcache by replacing sentinel :py:class:
objectfor checking ifthe :py:class:
objectisNULLand changed :py:class:dictAPI 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.ymlworkflow has been modified to allow for
an OS value (
windows-11-arm) whichdoes not include the
-latestpostfix-- 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.2Compare Source
=====
(2025-06-09)
Improved documentation
Fixed incorrect decorator usage in the :func:
~propcache.api.under_cached_propertyexample 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-tracingbuild 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=trueor by setting thePROPCACHE_CYTHON_TRACINGenvironment variable.Related issues and pull requests on GitHub:
:issue:
118.eliben/pycparser (pycparser)
v2.23Compare Source
theskumar/python-dotenv (python-dotenv)
v1.2.1Compare Source
pyproject.toml, removedsetup.cfg.envfrom FIFOs (Unix) by [@sidharth-sudhir] in [#586]v1.2.0Compare Source
buildandpyproject.tomlby [@EpicWink] in [#583]load_dotenv()usingPYTHON_DOTENV_DISABLEDenv var. by [@matthewfranglen] in [#569]v1.1.1Compare Source
Fixed
find_dotenvwork reliably on python 3.13 by [@theskumar] in #563psf/requests (requests)
v2.32.5Compare 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.4Compare Source
Security
environment will retrieve credentials for the wrong hostname/machine from a
netrc file.
Improvements
Deprecations
python/typing_extensions (typing_extensions)
v4.15.0Compare Source
No user-facing changes since 4.15.0rc1.
v4.14.1Compare Source
typing_extensions.TypedDictnested 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.0Compare Source
Changes since 4.14.0rc1:
__or__and__ror__methods fromtyping_extensions.Sentinelon Python versions <3.10. PEP 604 was introduced in Python 3.10, and
typing_extensionsdoes not generally attempt to backport PEP-604 methodsto prior versions.
typing_extensions.evaluate_forward_refwith changes in Python 3.14.v4.13.2Compare Source
TypeErrorwhen taking the union oftyping_extensions.TypeAliasTypeand atyping.TypeAliasTypeon 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.1Compare Source
Bugfixes:
TypeErrorwhen usingConcatenate.Patch by Daraan.
TypeErrorwhen usingevaluate_forward_refon Python 3.10.1-2 and 3.9.8-10.Patch by Daraan.
urllib3/urllib3 (urllib3)
v2.5.0Compare Source
==================
Features
compression.zstdmodule 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.PoolManagerlevel via theretriesparameterdid not work.
retriesand
redirects.HTTPResponse.shutdownon a connection already released to the pool. (#​3581 <https://github.com/urllib3/urllib3/issues/3581>__)CONNECTstatement when using an IPv6 proxy withconnection_from_host. Previously would not be wrapped in[]. (#​3615 <https://github.com/urllib3/urllib3/issues/3615>__)v2.4.0Compare Source
==================
Features
#​3522 <https://github.com/urllib3/urllib3/issues/3522>__)#​3567 <https://github.com/urllib3/urllib3/issues/3567>__)verify_flagsoption tocreate_urllib3_contextwith a default ofVERIFY_X509_PARTIAL_CHAINandVERIFY_X509_STRICTfor 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.jsonlasset 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)
v2.0.1: wrapt-2.0.1Compare Source
See the project page on the Python Package Index at https://pypi.org/project/wrapt/2.0.1/ for more information.
v2.0.0: wrapt-2.0.0Compare Source
See the project page on the Python Package Index at https://pypi.org/project/wrapt/2.0.0/ for more information.
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.0Compare Source
======
(2025-10-05)
Features
Added arm64 Windows wheel builds
-- by :user:
finnagin.Related issues and pull requests on GitHub:
:issue:
1516.v1.21.0Compare Source
======
(2025-10-05)
Contributor-facing changes
The :file:
reusable-cibuildwheel.ymlworkflow has been refactored tobe more generic and :file:
ci-cd.ymlnow 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
cibuildwheelinvocation -- 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.1Compare Source
======
(2025-06-09)
Bug fixes
Started raising a :exc:
ValueErrorexception raised for corruptedIPv6 URL values.
These fixes the issue where exception :exc:
IndexErrorwasleaking 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-tracingbuild 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=trueor by setting theYARL_CYTHON_TRACINGenvironment variable.Related issues and pull requests on GitHub:
:issue:
1521.v1.20.0Compare 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.0Compare 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:
webknjazthat 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
norecursedirsto 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.
54a99b43f8to6bb13ad3706bb13ad370to50f5c2c8aa50f5c2c8aato7c1d8cc1577c1d8cc157to352bb2c6ad352bb2c6adtobf32eb7fe6bf32eb7fe6tob6a3ec7707b6a3ec7707to88e9f56eea88e9f56eeatoa1509d2cd4a1509d2cd4to9d255fea099d255fea09to7699f695327699f69532to512a9beb9b512a9beb9btoec27e34cb9View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.