Thanks to Joe Marshall (@joemarshall) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from http.client. Please report all bugs to the urllib3 issue tracker.
🚀 urllib3 is fundraising for HTTP/2 support
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.
Thank you for your support.
Changes
Added support for Emscripten and Pyodide, including streaming support in cross-origin isolated browser environments where threading is enabled. (#2951)
Added support for HTTPResponse.read1() method. (#3186)
Fixed issue where requests against urls with trailing dots were failing due to SSL errors
when using proxy. (#2244)
Fixed HTTPConnection.proxy_is_verified and HTTPSConnection.proxy_is_verified to be always set to a boolean after connecting to a proxy. It could be None in some cases previously. (#3130)
Fixed an issue where headers passed in a request with json= would be mutated (#3203)
Fixed HTTPSConnection.is_verified to be set to False when connecting from a HTTPS proxy to an HTTP target. It was set to True previously. (#3267)
Fixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (#3268)
Fixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (#3325)
Note for downstream distributors: To run integration tests, you now need to run the tests a second time with the --integration pytest flag. (#3181)
Added support for Emscripten and Pyodide <https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html>, including streaming support in cross-origin isolated browser environments where threading is enabled. ([#2951](https://github.com/urllib3/urllib3/issues/2951) <https://github.com/urllib3/urllib3/issues/2951>)
Added support for HTTPResponse.read1() method. ([#3186](https://github.com/urllib3/urllib3/issues/3186) <https://github.com/urllib3/urllib3/issues/3186>__)
Added rudimentary support for HTTP/2. ([#3284](https://github.com/urllib3/urllib3/issues/3284) <https://github.com/urllib3/urllib3/issues/3284>__)
Fixed issue where requests against urls with trailing dots were failing due to SSL errors
when using proxy. ([#2244](https://github.com/urllib3/urllib3/issues/2244) <https://github.com/urllib3/urllib3/issues/2244>__)
Fixed HTTPConnection.proxy_is_verified and HTTPSConnection.proxy_is_verified
to be always set to a boolean after connecting to a proxy. It could be
None in some cases previously. ([#3130](https://github.com/urllib3/urllib3/issues/3130) <https://github.com/urllib3/urllib3/issues/3130>__)
Fixed an issue where headers passed in a request with json= would be mutated ([#3203](https://github.com/urllib3/urllib3/issues/3203) <https://github.com/urllib3/urllib3/issues/3203>__)
Fixed HTTPSConnection.is_verified to be set to False when connecting
from a HTTPS proxy to an HTTP target. It was set to True previously. ([#3267](https://github.com/urllib3/urllib3/issues/3267) <https://github.com/urllib3/urllib3/issues/3267>__)
Fixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS ([#3268](https://github.com/urllib3/urllib3/issues/3268) <https://github.com/urllib3/urllib3/issues/3268>__)
Fixed TLS 1.3 post-handshake auth when the server certificate validation is disabled ([#3325](https://github.com/urllib3/urllib3/issues/3325) <https://github.com/urllib3/urllib3/issues/3325>__)
Note for downstream distributors: To run integration tests, you now need to run the tests a second
time with the --integration pytest flag. ([#3181](https://github.com/urllib3/urllib3/issues/3181) <https://github.com/urllib3/urllib3/issues/3181>__)
Updated and removed obsolete Python < 3.8 code and comments. -- by :user:Avasam (#4096)
Updated pkg_resources to use stdlib importlib.machinery instead of importlib_machinery -- by :user:Avasam (#4097)
Bugfixes
In tests, rely on pytest-home for reusable fixture. (#4072)
Explicitely marked as Protocol and fixed missing self argument in interfaces pkg_resources.IMetadataProvider and pkg_resources.IResourceProvider -- by :user:Avasam (#4144)
Restored expectation that egg-link files would be named with dash separators for compatibility with pip prior to version 24. (#4167)
[#463](https://github.com/pytest-dev/pluggy/issues/463) <https://github.com/pytest-dev/pluggy/issues/463>_: A warning :class:~pluggy.PluggyTeardownRaisedWarning is now issued when an old-style hookwrapper raises an exception during teardown.
See the warning documentation for more details.
[#471](https://github.com/pytest-dev/pluggy/issues/471) <https://github.com/pytest-dev/pluggy/issues/471>_: Add :func:PluginManager.unblock <pluggy.PluginManager.unblock> method to unblock a plugin by plugin name.
Bug Fixes
[#441](https://github.com/pytest-dev/pluggy/issues/441) <https://github.com/pytest-dev/pluggy/issues/441>_: Fix :func:~pluggy.HookCaller.call_extra() extra methods getting ordered before everything else in some circumstances. Regressed in pluggy 1.1.0.
[#438](https://github.com/pytest-dev/pluggy/issues/438) <https://github.com/pytest-dev/pluggy/issues/438>_: Fix plugins registering other plugins in a hook when the other plugins implement the same hook itself. Regressed in pluggy 1.1.0.
Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions |
| --- | --- |
| pydantic-core | [>= 2.11.a, < 2.12] |
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 dep-minor-updates group with 9 updates:
2.5.3
2.6.1
2.14.6
2.16.2
2.1.0
2.2.0
69.0.3
69.1.0
4.20.0
4.21.1
4.1.0
4.2.0
1.3.0
1.4.0
0.32.1
0.33.0
0.16.2
0.17.1
Updates
pydantic
from 2.5.3 to 2.6.1Release notes
Sourced from pydantic's releases.
... (truncated)
Changelog
Sourced from pydantic's changelog.
... (truncated)
Commits
cf822bd
prep for 2.6.1 releasefa8acbb
Version bump for pydantic 2.16.2 (#8717)2d812a8
Reverting problematic fix from 2.6 release, fixing schema building bug (#8718)8e790d5
Fix unsupported types bug with plain validator (#8710)aac1069
Fix regression in core schema generation for indirect definition references (...43327d8
Fix inheriting annotations in dataclasses (#8679)f3532ed
FixByteSize
errortype
change (#8681)50259d7
Fix bug with mypy plugin andno_strict_optional = True
(#8666)afd0aa8
Drop pypy-3.8 from CI (#8667)0b2578d
update date for 2.6 releaseUpdates
pydantic-core
from 2.14.6 to 2.16.2Release notes
Sourced from pydantic-core's releases.
... (truncated)
Commits
305a837
Version bump, 2.16.2 (#1188)42394ac
Fix model computed field serializer (json) (#1187)dcaf63e
Fix warning for tuple of wrong size in union (#1174)758bc51
fix(uuid): validation from string (#1172)8be45e6
fix: 8405 pattern serialization (#1168)c670b2b
removeAsLocItem
trait (#1169)4538190
Uprev core to 2.16.1 (#1167)7a5f8e6
Ensure recursion guard is always used as a stack (#1166)4da7192
uprev to jiter v0.0.6, uprev pydantic-core (#1165)29c5419
Add support for dataclass fields init (#1163)Updates
urllib3
from 2.1.0 to 2.2.0Release notes
Sourced from urllib3's releases.
Changelog
Sourced from urllib3's changelog.
Commits
04df048
Release 2.2.02aec09f
Add documentation for Emscripten support6d2f0f6
Annotate response attributelength_remaining
in BaseHTTPResponse (#3317)d7bb83b
Fix TLS 1.3 post-handshake auth8c8e26d
Hide H2Connection inside _LockedObject (#3318)26a07db
Make BaseHTTPResponse a base class of HTTP2Response (#3311)71e7c35
Allow testing HTTP/1.1 and HTTP/2 in the same test (#3310)89ed0d6
Add test-pypy 3.8 3.9 3.10 nox sessions (#3304)fb6cf2d
Pin to pypy-3.9-v7.3.13 to not timeout CI03f7b65
Skip memray on pypy (#3286)Updates
setuptools
from 69.0.3 to 69.1.0Changelog
Sourced from setuptools's changelog.
Commits
bc6b031
Bump version: 69.0.3 → 69.1.0115d381
Merge pull request #4215 from pypa/bugfix/4167-egg-link-manglingac20e42
Add news fragment.0c804aa
Add a test capturing the desired expectation, marked as xfail for now.f61e452
Document the incorrect behavior revealed by #4167.4aa55b8
Rearrange escaping functions to describe them in the order they should be used.58af37c
Replace the incorrect phrase about 'unescaping' and instead clarify that the ...f291ee0
Restore expectation that egg-link files will be named with dashes and not und...9cbe157
Restore exclusion of docs from the build. Closes #4213.c0fd10e
Merge pull request #4212 from pypa/refactor/compat-moduleUpdates
jsonschema
from 4.20.0 to 4.21.1Release notes
Sourced from jsonschema's releases.
Changelog
Sourced from jsonschema's changelog.
Commits
aa53fd0
Slightly speed up the contains keyword.c9e2029
perf -> bench31dec3d
Update the CHANGELOG.8875c2e
Also improve min{Length,Properties}'s error message.74dfd48
Squashed 'json/' changes from 217bf81b..544f7c3d3e46f22
Merge pull request #1208 from otto-ifak/fix_enume45be0b
Update docs requirements.6b4441e
New ruff fixed some bugs.c7a37f2
Merge pull request #1209 from python-jsonschema/pre-commit-ci-update-config1b72180
[pre-commit.ci] pre-commit autoupdateUpdates
platformdirs
from 4.1.0 to 4.2.0Release notes
Sourced from platformdirs's releases.
Changelog
Sourced from platformdirs's changelog.
Commits
bc4d114
Add convenience methods toPlatformDirsAPI
that allow iterating over both u...0d8beea
[pre-commit.ci] pre-commit autoupdate (#260)0dcc051
[pre-commit.ci] pre-commit autoupdate (#257)3ce2035
Fix 2 typos about XDG_DATA_DIR (#256)783376b
[pre-commit.ci] pre-commit autoupdate (#255)f86cfb8
[pre-commit.ci] pre-commit autoupdate (#254)5cbfd8d
[pre-commit.ci] pre-commit autoupdate (#253)9f684a6
[pre-commit.ci] pre-commit autoupdate (#251)1db2522
Bump actions/setup-python from 4 to 5 (#248)4b68392
[pre-commit.ci] pre-commit autoupdate (#247)Updates
pluggy
from 1.3.0 to 1.4.0Changelog
Sourced from pluggy's changelog.
Commits
2efd28e
Preparing release 1.4.0ebeb2f2
Merge pull request #471 from bluetech/unblock3a28b4d
Merge pull request #464 from bluetech/hookwrapper-teardown-warning4331b7a
Merge pull request #473 from bluetech/iterator-invalidation7aef3e6
hooks: fix plugins registering other plugins in a hookcc36605
Merge pull request #472 from bluetech/call-extra-ordering-fix443fee6
hooks: fixcall_extra
extra methods getting ordered before everything else4577b45
hooks: add comment describing_hookimpls
's format/invariants.13b3661
AddPluginManager.unblock
method to unblock a name4b5b2d4
CHANGELOG: fix errors in 1.0.0 entryUpdates
referencing
from 0.32.1 to 0.33.0Release notes
Sourced from referencing's releases.
Changelog
Sourced from referencing's changelog.
Commits
1630506
Add referencing.jsonschema.SchemaResource.9321869
Update requirements.7f13fd2
Merge pull request #120 from python-jsonschema/pre-commit-ci-update-configaa7ff19
[pre-commit.ci] pre-commit autoupdatea80db1d
Merge pull request #117 from python-jsonschema/pre-commit-ci-update-configd1cd7ad
[pre-commit.ci] pre-commit autoupdate442c7a1
Merge pull request #116 from python-jsonschema/pre-commit-ci-update-config6071a18
[pre-commit.ci] pre-commit autoupdate39caab1
Update requirements.Updates
rpds-py
from 0.16.2 to 0.17.1Release notes
Sourced from rpds-py's releases.
Commits
9c07d53
Yet again, same mistake.74a85ed
Remove a non-doc dependency.fb02a65
Reimplement view types for maps.eacc5f1
Start reworking the HashTrieMap methods that should return views.f3d713c
And same for HashTrieMap.579e1ca
And now an iterator for HashTrieSet.e2f2842
Trim down the manual Py wrapping too.d808005
Proper List + Queue iterators.182dfd9
Merge pull request #48 from crate-py/dependabot/cargo/pyo3-0.20.24eea436
Bump pyo3 from 0.20.1 to 0.20.2Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | pydantic-core | [>= 2.11.a, < 2.12] |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