Skip to content

Bump wrapt from 2.3.0 to 2.4.0 - #2707

Merged
Evan-CTL merged 1 commit into
masterfrom
dependabot/pip/wrapt-2.4.0
Sep 2, 2026
Merged

Bump wrapt from 2.3.0 to 2.4.0#2707
Evan-CTL merged 1 commit into
masterfrom
dependabot/pip/wrapt-2.4.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bumps wrapt from 2.3.0 to 2.4.0.

Release notes

Sourced from wrapt's releases.

wrapt 2.4.0

Full release notes: https://wrapt.readthedocs.io/en/latest/changes.html#version-2-4-0

Install from PyPi (recommended):

pip install wrapt==2.4.0

PyPi uploads follow each GitHub release; if pip reports the version is unavailable, the matching PyPi upload may not have happened yet.

Pre-built wheels are provided for a range of Python versions and platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and arm64, Windows x86_64 and arm64, plus PyPy and free-threaded builds). The source distribution is also attached together with SHA256SUMS for verification.

wrapt 2.4.0rc5

Release candidate. Release notes for the upcoming 2.4.0 final (work in progress): https://wrapt.readthedocs.io/en/latest/changes.html#version-2-4-0

May be installable from PyPi:

pip install wrapt==2.4.0rc5

If pip reports the version is unavailable, this candidate either has not been uploaded yet or is not being published to PyPi. Use the attached wheels or build from the source distribution instead:

tar xf wrapt-2.4.0rc5.tar.gz
cd wrapt-2.4.0rc5
pip install .

SHA256SUMS is attached for verification of the archives.

wrapt 2.4.0rc4

Release candidate. Release notes for the upcoming 2.4.0 final (work in progress): https://wrapt.readthedocs.io/en/latest/changes.html#version-2-4-0

May be installable from PyPi:

pip install wrapt==2.4.0rc4

If pip reports the version is unavailable, this candidate either has not been uploaded yet or is not being published to PyPi. Use the attached wheels or build from the source distribution instead:

tar xf wrapt-2.4.0rc4.tar.gz

... (truncated)

Changelog

Sourced from wrapt's changelog.

Version 2.4.0

New Features

  • Binary wheels for Python 3.15, including the free threaded variant, are now built and published to PyPi. This was enabled by updating the version of cibuildwheel used by the release workflow. The newer cibuildwheel builds free threaded variants of CPython by default, so they no longer need to be explicitly enabled and the free threaded wheels for Python 3.13 and 3.14 continue to be provided as before. The Python 3.15 trove classifier has also been added to the package metadata.

  • New wrapper_chain() and unwrapped() functions for introspecting chains of wrappers. wrapper_chain() returns an iterator yielding the supplied object, then each successive object found by following the __wrapped__ attribute, outermost wrapper first, with the final item being the innermost object of the chain. It relies only on the __wrapped__ convention, so it sees through wrapt proxies and wrappers, functions decorated using functools.wraps(), and anything else honouring the protocol. unwrapped() returns the innermost object directly, providing the ergonomic way of recovering the original object from a proxy without writing the loop. Traversal ends cleanly at an object with no __wrapped__ attribute or upon a cycle, and is bounded by a limit keyword argument defaulting to 64 levels as a backstop against pathological cases such as a __wrapped__ property which manufactures a fresh object on every read. Reaching the limit with a further chain link still pending raises the new WrapperChainTooDeepError exception rather than silently truncating, since a truncated scan would be indistinguishable from a complete one. The exception inherits from RuntimeError, following the precedent of RecursionError for exhaustion of a depth limit, and is exported from the top-level wrapt package along with both functions. Note that traversing a chain containing a lazy object proxy will cause it to materialize, and that an exception raised by a broken proxy or a lazy object factory propagates to the caller rather than being treated as the end of the chain.

  • New unwrap_object() function for removing a wrapper installed by wrap_object(), wrap_function_wrapper() or wrap_object_attribute(), completing the monkey patching lifecycle: the wrap functions return the installed wrapper as a handle, the new detection functions answer whether it is still in place, and unwrap_object() removes it. The wrapper to remove is identified by its handle, matched by object identity, and the removed wrapper is returned. When the wrapper is outermost, the attribute is restored to the object it wrapped, at the location where the attribute is actually defined per resolve_owner(), so removal through a subclass restores the defining base class rather than leaving a shadowing copy;

... (truncated)

Commits
  • 77dd98e Merge branch 'release/2.4.0'
  • a100d48 Update to 2.4.0.
  • a094952 Run tox via uvx with tox-uv so tox need not be installed.
  • 5376128 Update to 2.4.0rc5.
  • c27d859 Use importlib.import_module() when resolving string targets.
  • b429fd0 Validate adapter inputs in async_to_sync and sync_to_async.
  • 21ca678 Update to 2.4.0rc4.
  • 08f3007 Make mark_as_async a pass-through wrapper as documented.
  • f4a08b2 Update to 2.4.0rc3.
  • d51f935 Update to 2.4.0rc2.
  • Additional commits viewable in compare view

Dependabot compatibility score

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 show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [wrapt](https://github.com/GrahamDumpleton/wrapt) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/GrahamDumpleton/wrapt/releases)
- [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst)
- [Commits](GrahamDumpleton/wrapt@2.3.0...2.4.0)

---
updated-dependencies:
- dependency-name: wrapt
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Sep 2, 2026
@Evan-CTL
Evan-CTL merged commit 86ea8e4 into master Sep 2, 2026
4 checks passed
@Evan-CTL
Evan-CTL deleted the dependabot/pip/wrapt-2.4.0 branch September 2, 2026 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant