Dropped support for Python 3.8 (as #698 cannot be resolved without cancel message support)
Fixed 100% CPU use on asyncio while waiting for an exiting task group to finish while said task group is within a cancelled cancel scope (#695)
Fixed cancel scopes on asyncio not propagating CancelledError on exit when the enclosing cancel scope has been effectively cancelled (#698)
Fixed asyncio task groups not yielding control to the event loop at exit if there were no child tasks to wait on
Fixed inconsistent task uncancellation with asyncio cancel scopes belonging to a task group when said task group has child tasks running
4.5.0
Improved the performance of anyio.Lock and anyio.Semaphore on asyncio (even up to 50 %)
Added the fast_acquire parameter to anyio.Lock and anyio.Semaphore to further boost performance at the expense of safety (acquire() will not yield control back if there is no contention)
Added support for the from_uri(), full_match(), parser methods/properties in anyio.Path, newly added in Python 3.13 (#737)
Added support for more keyword arguments for run_process() and open_process(): startupinfo, creationflags, pass_fds, user, group, extra_groups and umask (#742)
Improved the type annotations and support for PathLike in run_process() and open_process() to allow for path-like arguments, just like subprocess.Popen
Changed the ResourceWarning from an unclosed memory object stream to include its address for easier identification
Changed start_blocking_portal() to always use daemonic threads, to accommodate the "loitering event loop" use case
Bumped the minimum version of Trio to v0.26.1
Fixed __repr__() of MemoryObjectItemReceiver, when item is not defined (#767; PR by @Danipulok)
Fixed to_process.run_sync() failing to initialize if __main__.__file__ pointed to a file in a nonexistent directory (#696)
Fixed AssertionError: feed_data after feed_eof on asyncio when a subprocess is closed early, before its output has been read (#490)
Fixed TaskInfo.has_pending_cancellation() on asyncio not respecting shielded scopes (#771; PR by @gschaffner)
Fixed SocketStream.receive() returning bytearray instead of bytes when using asyncio with ProactorEventLoop (Windows) (#776)
Fixed quitting the debugger in a pytest test session while in an active task group failing the test instead of exiting the test session (because the exit exception arrives in an exception group)
This library adheres to Semantic Versioning 2.0 <http://semver.org/>_.
4.6.0
Dropped support for Python 3.8
(as [#698](https://github.com/agronholm/anyio/issues/698) <https://github.com/agronholm/anyio/issues/698>_ cannot be resolved
without cancel message support)
Fixed 100% CPU use on asyncio while waiting for an exiting task group to finish while
said task group is within a cancelled cancel scope
([#695](https://github.com/agronholm/anyio/issues/695) <https://github.com/agronholm/anyio/issues/695>_)
Fixed cancel scopes on asyncio not propagating CancelledError on exit when the
enclosing cancel scope has been effectively cancelled
([#698](https://github.com/agronholm/anyio/issues/698) <https://github.com/agronholm/anyio/issues/698>_)
Fixed asyncio task groups not yielding control to the event loop at exit if there were
no child tasks to wait on
Fixed inconsistent task uncancellation with asyncio cancel scopes belonging to a
task group when said task group has child tasks running
4.5.0
Improved the performance of anyio.Lock and anyio.Semaphore on asyncio (even up
to 50 %)
Added the fast_acquire parameter to anyio.Lock and anyio.Semaphore to
further boost performance at the expense of safety (acquire() will not yield
control back if there is no contention)
Added support for the from_uri(), full_match(), parser methods/properties
in anyio.Path, newly added in Python 3.13
([#737](https://github.com/agronholm/anyio/issues/737) <https://github.com/agronholm/anyio/issues/737>_)
Added support for more keyword arguments for run_process() and open_process():
startupinfo, creationflags, pass_fds, user, group,
extra_groups and umask
([#742](https://github.com/agronholm/anyio/issues/742) <https://github.com/agronholm/anyio/issues/742>_)
Improved the type annotations and support for PathLike in run_process() and
open_process() to allow for path-like arguments, just like subprocess.Popen
Changed the ResourceWarning from an unclosed memory object stream to include its
address for easier identification
Changed start_blocking_portal() to always use daemonic threads, to accommodate the
"loitering event loop" use case
Bumped the minimum version of Trio to v0.26.1
Fixed __repr__() of MemoryObjectItemReceiver, when item is not defined
([#767](https://github.com/agronholm/anyio/issues/767) <https://github.com/agronholm/anyio/pull/767>_; PR by @Danipulok)
Fixed to_process.run_sync() failing to initialize if __main__.__file__ pointed
to a file in a nonexistent directory
([#696](https://github.com/agronholm/anyio/issues/696) <https://github.com/agronholm/anyio/issues/696>_)
Fixed AssertionError: feed_data after feed_eof on asyncio when a subprocess is
closed early, before its output has been read
([#490](https://github.com/agronholm/anyio/issues/490) <https://github.com/agronholm/anyio/issues/490>_)
urllib3 is raising ~$40,000 USD to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects please consider contributing financially to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.
Fixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1. All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. (#3053)
Added support for Python 3.13. ([#3473](https://github.com/urllib3/urllib3/issues/3473) <https://github.com/urllib3/urllib3/issues/3473>__)
Bugfixes
Fixed the default encoding of chunked request bodies to be UTF-8 instead of ISO-8859-1.
All other methods of supplying a request body already use UTF-8 starting in urllib3 v2.0. ([#3053](https://github.com/urllib3/urllib3/issues/3053) <https://github.com/urllib3/urllib3/issues/3053>__)
Fixed ResourceWarning on CONNECT with Python `__)
Adjust tolerance for floating-point comparison on Windows to avoid flakiness in CI ([#3413](https://github.com/urllib3/urllib3/issues/3413) <https://github.com/urllib3/urllib3/issues/3413>__)
Fixed a crash where certain standard library hash functions were absent in restricted environments. ([#3432](https://github.com/urllib3/urllib3/issues/3432) <https://github.com/urllib3/urllib3/issues/3432>__)
Fixed mypy error when adding to HTTPConnection.default_socket_options. ([#3448](https://github.com/urllib3/urllib3/issues/3448) <https://github.com/urllib3/urllib3/issues/3448>__)
HTTP/2 (experimental)
HTTP/2 support is still in early development.
Excluded Transfer-Encoding: chunked from HTTP/2 request body ([#3425](https://github.com/urllib3/urllib3/issues/3425) <https://github.com/urllib3/urllib3/issues/3425>__)
Now only accepting supported h2 major version 4.x.x. ([#3290](https://github.com/urllib3/urllib3/issues/3290) <https://github.com/urllib3/urllib3/issues/3290>__)
Added a probing mechanism for determining whether a given target origin
supports HTTP/2 via ALPN. ([#3301](https://github.com/urllib3/urllib3/issues/3301) <https://github.com/urllib3/urllib3/issues/3301>__)
Add support for sending a request body with HTTP/2 ([#3302](https://github.com/urllib3/urllib3/issues/3302) <https://github.com/urllib3/urllib3/issues/3302>__)
Deprecations and Removals
Note for downstream distributors: the _version.py file has been removed and is now created at build time by hatch-vcs. ([#3412](https://github.com/urllib3/urllib3/issues/3412) <https://github.com/urllib3/urllib3/issues/3412>__)
Drop support for end-of-life PyPy3.8 and PyPy3.9. ([#3475](https://github.com/urllib3/urllib3/issues/3475) <https://github.com/urllib3/urllib3/issues/3475>__)
Improve ProxyHeadersMiddleware (#2468) and (#2231):
Fix the host for requests from clients running on the proxy server itself.
Fallback to host that was already set for empty x-forwarded-for headers.
Also allow specifying IP Networks as trusted hosts. This greatly simplifies deployments
on docker swarm/Kubernetes, where the reverse proxy might have a dynamic IP.
Improve ProxyHeadersMiddleware (#2468) and (#2231):
Fix the host for requests from clients running on the proxy server itself.
Fallback to host that was already set for empty x-forwarded-for headers.
Also allow to specify IP Networks as trusted hosts. This greatly simplifies deployments
on docker swarm/kubernetes, where the reverse proxy might have a dynamic IP.
Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions |
| --- | --- |
| sphinx-autobuild | [>= 2024.4.13.a, < 2024.4.14] |
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the dependencies group with 7 updates in the / directory:
2024.4.16
2024.9.19
4.4.0
4.6.0
3.8
3.10
0.38.4
0.39.2
2.2.2
2.2.3
0.30.6
0.31.0
13.0.1
13.1
Updates
sphinx-autobuild
from 2024.4.16 to 2024.9.19Release notes
Sourced from sphinx-autobuild's releases.
Changelog
Sourced from sphinx-autobuild's changelog.
... (truncated)
Commits
4552a5f
Release 2024.09.192e9dec0
Serve the correct directory when using make mode0f2f2f1
Filter various directories by default3fab261
Fix path filtering on Windowsb134d97
Release 2024.09.187b10420
Runpython -m sphinx
rather thansphinx-build
(#180)4dbe80d
Release 2024.09.176c0752f
Bump GitHub Actions (#176)3e702d8
Relax path checks (#175)7d199ed
Release 2024.09.03Updates
anyio
from 4.4.0 to 4.6.0Release notes
Sourced from anyio's releases.
Changelog
Sourced from anyio's changelog.
... (truncated)
Commits
8cce749
Bumped up the version01a37c6
Fixed TaskGroup and CancelScope exit issues on asyncio (#774)7f35ce7
Bumped up the version108cc83
[pre-commit.ci] pre-commit autoupdate (#788)d1aea98
Fixed KeyboardInterrupt hanging the asyncio test runner (#779)c1aff53
[pre-commit.ci] pre-commit autoupdate (#785)89d8b4c
Use sphinx_rtd_theme also as an extension4e9f18d
Enabled uvloop to be used in the test suite on Python 3.137de6441
Pin Sphinx to a compatible version with sphinx-rtd-theme41647f4
Fixed feed_data after feed_eof assertion errors on asyncio (#752)Updates
idna
from 3.8 to 3.10Changelog
Sourced from idna's changelog.
Commits
729225d
Release v3.103eef168
Merge pull request #194 from kjd/revert-unicode-16ceca619
Revert Unicode 16.0.0 data updatesc43ac75
Merge pull request #191 from kjd/release-3.91b8800a
Release v3.9a1fd168
Merge pull request #190 from kjd/unicode-167732c61
Merge branch 'master' into unicode-164ed183d
Refactor membership test762216b
Format with ruff580ece9
Implement changes to UTS46 algorithmUpdates
starlette
from 0.38.4 to 0.39.2Release notes
Sourced from starlette's releases.
Changelog
Sourced from starlette's changelog.
Commits
0b50b9c
Version 0.39.2 (#2710)fe46d99
Supportrequest.url_for
when only "app" scope is avaialable (#2672)1a6018e
Support python-multipart 0.0.12 (#2708)fa7b382
Version 0.39.1 (#2706)075efd0
generate boundary with token_hex (#2702)b8139f9
ConsiderFileResponse.chunk_size
when handling multiple ranges (#2703)4fbf766
test: add tests intest_requests
(#2677)d289ac7
perf: stop usere
onget_route_path
(#2701)9d4d5a5
perf: avoid regex re-compile (#2700)65bfd74
Version 0.39.0 (#2699)Updates
urllib3
from 2.2.2 to 2.2.3Release notes
Sourced from urllib3's releases.
Changelog
Sourced from urllib3's changelog.
Commits
2458bfc
Release 2.2.39b25db6
Only attempt to publish for upstreamb9adeef
Drop support for EOL PyPy3.8 and PyPy3.9b1d4649
Add explicit support for Python 3.13cc42860
Bump cryptography from 42.0.4 to 43.0.1 (#3470)3dae2e9
Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.1 (#3469)1e94feb
Revert "Add TLS settings for HTTP/2 (#3456)" (#3466)aa73abc
Bump actions/setup-python from 5.1.0 to 5.2.0 (#3468)abbfbcb
Add 1.26.20 to changelog and make the publish workflow the same (#3464)d480615
Add TLS settings for HTTP/2 (#3456)Updates
uvicorn
from 0.30.6 to 0.31.0Release notes
Sourced from uvicorn's releases.
Changelog
Sourced from uvicorn's changelog.
Commits
a507532
Version 0.31.0 (#2469)84dd2c4
Improve ProxyHeadersMiddleware (#2468)3d26ab4
Bump cryptography from 42.0.8 to 43.0.1 (#2453)47304d9
Add tests and requirements.txt to sdist (#2438)1cb0c32
Add missing init files in the test suite (#2432)Updates
websockets
from 13.0.1 to 13.1Release notes
Sourced from websockets's releases.
Commits
4d229bf
Release version 13.1.0afccc9
Clarify comment.3640923
Wait until state is CLOSED to acces close_exc.20739e0
Improve exception handling during handshake.206624a
Standard spelling on "an HTTP".98f236f
Run handler only when opening handshake succeeds.d19ed26
Run spellcheck.070ff1a
Add dedicated ConcurrencyError exception.f9cea9c
Improve isolation of tests of sync implementation.14d9d40
Fix typo in convenience imports.Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | sphinx-autobuild | [>= 2024.4.13.a, < 2024.4.14] |Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show