Back to Explore

GrahamDumpleton/wrapt

GitHub
16 updates · last 90 days1 watchersOpen source

Last release:

wrapt is a Python module for building decorators, function and object wrappers, and runtime monkey patching. It focuses on preserving decorator introspection and signatures, and uses a C extension for performance-critical parts with a pure Python fallback when needed.

Project status

  • Actively maintained: Upstream activity is recent (last push 2026-08-21) and there have been multiple updates for the 2.4.0 line in August 2026.
  • Update cadence: Several 2.4.0 candidate updates landed within about two weeks (roughly 2026-08-06 through 2026-08-21), following prior activity in late July (2.3.0 on 2026-07-28).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 2.4.0rc5

    This release is a release candidate for wrapt 2.4.0 (version updated to 2.4.0rc5). The provided release notes are generic and do not enumerate functional changes.

  • 2.4.0rc4

    This release candidate (2.4.0rc4) updates version metadata and introduces significant runtime validation for the async_to_sync and sync_to_async adapters. The release notes provided are minimal and do not describe these behavioral changes, but the code and tests clearly add new error and warning cases plus altered introspection behavior.

    BreakingFeatures
  • 2.4.0rc3

    This release is a release candidate bump for wrapt 2.4.0, updating the package version string to 2.4.0rc3. While the published release notes for the RC are essentially empty, the code diff includes a behavioral change to the mark_as_async marker and expanded test coverage around call semantics.

  • 2.4.0rc2

    This release candidate (2.4.0rc2) introduces substantial new monkey-patching and wrapper-introspection APIs, including facilities to remove installed wrappers and to traverse wrapper chains. The provided release notes are essentially a pointer to the 2.4.0 final change log, so the actual behavioral and API changes are not meaningfully documented here.

    Features
  • 2.4.0rc1

    This release is a wrapt 2.4.0 release candidate (2.4.0rc1). The release notes are minimal and mainly describe how to install the candidate from PyPI or from the provided source/wheels, with verification via SHA256SUMS.

  • 2.4.0.dev3

    This is a development snapshot release (wrapt 2.4.0.dev3) with no specific functional changes described in the provided release notes. The actual code diff, however, includes a substantial C extension update focused on free-threading memory safety and reference lifetime management across proxy and wrapper operations.

  • 2.4.0.dev2

    This release is a development snapshot (wrapt 2.4.0.dev2) intended to exercise the build and release pipeline. The provided release notes focus on installation from the attached wheel and source archives, plus SHA256 verification, but do not describe any build-matrix or wheel-building behavior changes.

  • 2.4.0.dev1

    wrapt 2.4.0.dev1 is a development snapshot and is not normally published to PyPI. The provided release notes do not describe any specific functional changes beyond distribution/testing instructions.

  • 2.3.0

    wrapt 2.3.0 is published with updated distribution artifacts (wheels and sdist). The provided release notes do not describe any functional code changes.

  • 2.3.0rc2

    This is a release candidate for wrapt 2.3.0 final (rc2). The provided release notes only cover installation and do not enumerate functional changes. The code diff shows a behavioral fix in the C extension for how wrapt.ObjectProxy implements the bytes() conversion.

  • 2.3.0rc1

    This release is a release candidate tag for wrapt 2.3.0rc1, intended to become the upcoming 2.3.0 final. The provided release notes mainly describe packaging and how to install the candidate, not functional changes.

  • 2.3.0.dev1

    The provided release notes for wrapt 2.3.0.dev1 are minimal, describing this as a development snapshot for pipeline testing and showing how to install the attached wheel or source archive. They do not enumerate any functional or API changes. The repository code diff, however, includes substantive runtime and type-stub updates that are not covered by these notes.

    Features
  • 2.2.2

    Release 2.2.2 of wrapt was published with general installation and packaging notes, but no functional changes are described in the provided release notes excerpt. The actual code diff from 2.2.2rc3 to 2.2.2 shows only an update to version metadata in the package initializer.

  • 2.2.2rc3

    wrapt 2.2.2rc3 is published as a release candidate for the upcoming 2.2.2 final. The release notes themselves only explain how to install the RC and verify archives, without listing any functional changes.

  • 2.2.2rc2

    This release is a 2.2.2 release candidate, with the provided GitHub release notes being informational only and not listing specific code changes. The actual diff shows a targeted behavior fix in wrapt's per-instance LRU cache handling for ObjectProxy instances.

  • 2.2.2rc1

    This release candidate primarily bumps the package version to 2.2.2rc1. The actual code change is in the lru_cache implementation, where the per-instance cache attribute name was altered to prevent infinite recursion scenarios when using @wrapt.lru_cache on overridden instance methods that call super().

  • 2.2.1

    The release notes for wrapt 2.2.1 provide only general installation and distribution information, without describing specific code changes. The actual diff compared to 2.2.1rc1 shows a single change to the package version metadata.

  • 2.2.1rc1

    This release candidate primarily bumps the package version to 2.2.1rc1 and updates documentation (adding an API reference page and related docs navigation). The code change of substance is in the C extension’s descriptor handling logic for FunctionWrapper-based wrappers. It adjusts how NULL versus Py_None is handled when invoking a wrapped descriptor’s tp_descr_get, addressing a regression in class attribute access behavior.

  • 2.2.0

    The release notes for wrapt 2.2.0 are minimal and do not enumerate any functional changes. Code diff between 2.2.0rc12 and 2.2.0 shows only a version tuple adjustment in src/wrapt/__init__.py.

  • 2.2.0rc12

    The release notes for wrapt 2.2.0rc12 are minimal, describing this as a release candidate and pointing to the upcoming 2.2.0 final changes page. The provided code diff only updates the package version metadata from 2.2.0 dev1 to 2.2.0 rc12.