undecorated
Undecorate python functions, methods or classes
What it is and what it does
undecorated is a small utility that extracts the original, undecorated implementation from a Python function, method, or class. It works by unwrapping the decorator layers that have been applied, returning the core callable underneath. The library supports both function and class decorators.
The package has no runtime dependencies and installs easily, but it has been abandoned since 2017 with no active maintenance. It was tested on Python 2.6 through 3.6 at the time of its last release. If your codebase needs to introspect or access the original function beneath decorators—for testing, debugging, or metaprogramming—this package provides a straightforward way to do so, though you should be aware of its inactive status.
Use it for:
- Testing decorated functions by accessing their undecorated versions to verify core logic independently
- Debugging by temporarily bypassing decorator side effects to isolate function behavior
- Metaprogramming that requires inspecting or calling the original implementation hidden by decorators
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Strips decorators from Python functions, methods, or classes to access the original undecorated implementation.
Yes, if you specifically need to strip decorators and are comfortable with an abandoned package. The utility is simple, has zero dependencies, and no known vulnerabilities. However, verify it works on your Python version (last tested on 3.6) and consider forking if you need future maintenance.
Install
undecorated on PyPI
pip
pip install undecorateduv
uv add undecoratedpoetry
poetry add undecoratedInstalling undecorated
Before you install
Installation is frictionless with no runtime dependencies, but the project is abandoned—last release was in 2017 and last commit in 2020. Use only if you need this specific utility and are comfortable maintaining a fork if issues arise.
License in practice
Licensed under Apache License 2.0 (permissive), which allows commercial and private use with minimal restrictions, though you must include a copy of the license and state significant changes.
Quickstart
pip install undecorated
from undecorated import undecorated
@decorator
def my_function():
pass
original = undecorated(my_function)
Verify before relying
- Whether the package works reliably on Python versions beyond 3.6 (last tested version mentioned in description)
- Whether edge cases with complex or nested decorator chains are fully handled
Package facts
| License | not declared (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 3,436 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 88,735/month — #13,707 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: undecorated-0.3.0-py2-none-any.whl; undecorated-0.3.0-py3-none-any.whl
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
botoinatorBotoinator lets you attach decorators to boto3…
permissive · top 15,000 on PyPI
venusianVenusian defers decorator actions from import…
permissive · top 5,000 on PyPI
wraptwrapt provides a Python module for building…
permissive · top 100 on PyPI
logdecoratorLogdecorator provides Python decorators to add…
permissive · top 15,000 on PyPI
decopatchDecopatch simplifies writing decorators in…
permissive · top 5,000 on PyPI
singleton-decoratorProvides a decorator that enforces singleton…
copyleft · top 15,000 on PyPI
sigtoolsSigtools provides utilities to inspect and…
permissive · top 5,000 on PyPI
decoratorProvides utilities for writing function…
permissive · top 1,000 on PyPI
tightwrapA drop-in replacement for `functools.wraps`…
permissive · top 15,000 on PyPI
makefunDynamically creates Python functions at runtime…
permissive · top 5,000 on PyPI