--- id: pydeprecate version: "0.11.0" license: Apache-2.0 license_treatment: permissive maintenance: active --- # pyDeprecate — Python deprecation decorator: call forwarding, argument mapping, class proxying, CI audit. Zero deps. License: permissive · Maintenance: active · Downloads: 911.6K/mo ## What it is and what it does pyDeprecate is a decorator library that lets you keep old function and class names working while you migrate to new ones. When someone calls a deprecated function, the library automatically forwards the call to its replacement, emits a warning (once per function by default to avoid spam), and optionally remaps old argument names to new ones. It works with regular functions, async coroutines, generators, properties, classes, Enums, dataclasses, and module-level constants. The package is built for API migration workflows: you rename a function, move a class, or retire an argument, but old user code must keep working during a transition window. pyDeprecate handles the forwarding transparently, preserves function signatures for introspection, and includes CI audit tools to enforce removal deadlines and detect deprecation chains that linger too long. It has zero runtime dependencies and supports Python 3.9 through 3.14. Use it for: - Rename a function across your codebase while keeping the old name working for external callers during a grace period. - Move a class to a new module and expose it at the old location with a deprecation warning. - Change function argument names and automatically remap old call sites to the new names. - Deprecate an entire class or Enum with a transparent proxy that warns on access. - Enforce in CI that deprecated APIs are removed by their deadline using audit metadata helpers. - Wrap constants or singleton objects as read-only deprecated instances to prevent accidental mutation. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Deprecate Python functions, methods, classes, and constants with transparent call forwarding, argument remapping, and CI audit support—all with zero runtime dependencies. Yes. pyDeprecate is actively maintained, has zero dependencies, supports modern Python versions, and solves a real problem in API evolution. Use it when you need to rename or move code without breaking existing callers. The audit tools make it practical to enforce removal deadlines in CI. No security issues reported. ## Install pip install pydeprecate uv add pydeprecate poetry add pydeprecate ## Installing pyDeprecate Before you install: Installs cleanly with no runtime dependencies. Active maintenance: last commit 2026-08-13, released 2026-07-17 (28 days ago). Supports Python 3.9 through 3.14. License in practice: Apache-2.0 (permissive): you can use, modify, and distribute this package freely in commercial and open-source projects with minimal restrictions. Quickstart: pip install pyDeprecate from deprecate import deprecated def new_func(x: int) -> int: return x * 2 @deprecated(target=new_func, deprecated_in="1.0", remove_in="2.0") def old_func(x: int) -> int: pass result = old_func(5) Requires Python 3.9 or later. Verify before relying: - Performance overhead of the deprecation wrapper at scale in tight loops or high-frequency call sites. - Interaction with type checkers (mypy, pyright) when using deprecated decorators on overloaded functions. ## Package facts - License: Apache-2.0 (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 911.6K/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags deprecation decorator python, function call forwarding, argument renaming backwards compatibility, api migration tool, deprecation audit ci, class proxy deprecation, warning forwarding decorator, api-migration, backwards-compatibility, ci-audit [View on SkillFed](https://skillfed.io/packages/pydeprecate) · [View on PyPI](https://pypi.org/project/pydeprecate/)