pyDeprecate plugin
A plugin that deprecates Python APIs with call forwarding and removes wrappers whose deadline passed by a given release.
- 64 ★ on the repository
- Last commit
- Apache-2.0
Extended access
Why this level
- The agent imports project modules and runs their top-level code.
- The skills edit sources and fetch a guide from an external site.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add plugins/pydeprecateDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent imports project modules and runs their top-level code.
- The skills edit sources and fetch a guide from an external site.
This is third-party code. Review the repository files before installing.
What it does
pyDeprecate plugin adds two skills to Claude Code and Codex. `sunset` scans a Python project for hand-written warnings (`warnings.warn`, `DeprecationWarning`, aliases, argument-renaming shims) and proposes converting them to pyDeprecate decorators, or introduces a new deprecation with explicit `deprecated_in` and `remove_in` versions. `prune` finds wrappers whose deadline passed by a given package release and removes them along with obsolete exports and compatibility tests. Both skills list their edits first and wait for confirmation. Versions for `sunset` come from the `[tool.pydeprecate.policy]` table in `pyproject.toml` when it exists. `prune` needs an explicit target release: the agent never substitutes today's date or the installed package version.
Who it is for. Python library maintainers who rename functions and classes and need old callers to keep working.
Good fit when
- A function was renamed and the old name must keep working for a few more releases.
- An argument changes its name, and calls with the old name must be forwarded to the new signature.
- The project accumulated hand-written `warnings.warn` calls and aliases that should be unified.
- A release is due that carries the removal deadline of a deprecated API, so its wrappers should go.
Not a fit when
- The package is not written in Python: the plugin only works with pyDeprecate decorators.
- You only need to upgrade a dependency and your own API is not affected.
- Project modules cannot be imported without side effects: the skills run their top-level code.
Example request
Find hand-written deprecation warnings in this project and show a table of which ones are worth converting to pyDeprecate.Limitations
The plugin is early, pre-1.0, and installs separately from the library: `pip` does not install it. It targets pyDeprecate `>=0.12`, and some commands, such as `python -m deprecate status` and the policy check, need the `pyDeprecate[audit,cli]` extras. To find wrappers the agent imports project modules and runs their top-level code, so run the skills in an ordinary test environment. The skills fetch the agent guide from the maintainer's site and treat it as reference data without authority to give commands: the installed package source wins. Manual warnings and other deprecation libraries are analysed separately and never included in removal automatically.
How to disable. Disable or remove the `pydeprecate` plugin in the Claude Code or Codex plugin manager. The pyDeprecate library stays in the project dependencies and is removed separately.
FAQ
How do I install the pyDeprecate plugin in Claude Code?
Run `claude plugin marketplace add Borda/pyDeprecate`, then `claude plugin install pydeprecate@pydeprecate`. The skills are called as `/pydeprecate:sunset` and `/pydeprecate:prune`.
How does `sunset` differ from `prune`?
`sunset` introduces or proposes deprecation: it scans the project and adds decorators with versions. `prune` works at the end of the window and removes compatibility that expires by the given release version.
Does the plugin install the pyDeprecate library itself?
No. The plugin is a separate artifact and `pip` does not install it. If the library is absent, a scan only reports that adopting it adds a dependency.
Do the skills change code without confirmation?
No. Both skills present the candidate or edit list and stop before the first edit. A request to preview or assess grants no right to change anything.
Where do the deprecation versions come from?
The user names them, or the agent reads the `[tool.pydeprecate.policy]` table in `pyproject.toml`. Without a table the defaults `min-grace = "0.3"` and `message-required = true` apply. If a choice stays open, the agent asks.
Discussion
No questions or reviews yet.
Related
PluginsRefurb analyzes Python code and suggests focused improvements with rule identifiers, explanations and target-version awareness.
Plugin that teaches an agent to strip source comments by syntax tree and lint TODO tags for a real issue key.
A plugin that readies a project for Claude Code: guidance, tests, review, TDD, refactoring and a resumable fix loop
A marketplace of 23 plugins for Claude Code: git and pull requests, code review, TDD, specs and delegation to other models
A Python-to-Rust transpiler with an MCP server: agents estimate migration effort, translate modules and verify the output.
Plugins for git, Python and accessibility in one place: 400+ skills, subagents and hooks against dangerous agent commands.
README in short
The library README presents pyDeprecate as a one-decorator way to deprecate: a warning, call forwarding, argument renaming and metadata for CI checks. The agent section describes the plugin as a separate early part of the repository and points to recipes on the project site.