renew
Gives a reproducible manner to your objects and can serialize them in 100% pythonic format.
Decision gist · record as of 2026-08-14
No. The package is abandoned (last release 2019-06-03) with no ongoing maintenance. While it has no known vulnerabilities and low install friction, the lack of updates means it will not receive bug fixes or compatibility patches for newer Python versions. For new projects, consider maintained alternatives.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Class must store all constructor arguments as instance attributes with identical names; variadic args must be stored as list/tuple/set/OrderedDict, keyword args as dict/OrderedDict.
- Low friction installation with a single dependency (six).
- However, the package is abandoned—last release was 2019-06-03 with no subsequent maintenance or updates.
License · maintenance · safety
MIT license (permissive) — MIT license (permissive). You can use, modify, and distribute this package freely with minimal restrictions.
last release 2019-06-03 (2629 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 141,200 downloads/mo, #11,247 on PyPI
Alternatives
Verify before relying
import renew
class MyClass(renew.Mold):
def __init__(self, a, b):
self.a, self.b = a, b
obj = MyClass(1, 2)
print(repr(obj)) # MyClass(1, 2)
renew.serialize('/tmp/out.py', obj=obj)- Whether the package works reliably with Python versions beyond 3.7 (latest tested version in classifiers).
- Whether nested object serialization handles circular references or deep graphs without issues.
- Real-world performance on large object graphs or complex class hierarchies.
What it is and what it does
Renew is a serialization library that makes Python objects produce eval-safe repr strings—strings that, when passed to eval(), recreate equivalent objects. Unlike pickle, which produces binary data, renew generates pure Python code that can be read, edited, and imported as a module. You define a class inheriting from renew.Mold, ensure its __init__ arguments are stored as same-named attributes, and renew automatically generates a reproducible __repr__. You can then call renew.serialize() to write object graphs to a Python file with proper imports and formatting.
The main constraint is structural: your class must store constructor arguments as attributes with matching names, and variadic/keyword arguments must be stored in specific container types (tuple, list, set, OrderedDict for args; dict or OrderedDict for kwargs). This design trades flexibility for transparency—the resulting code is human-readable and can serve as a lightweight alternative to pickle for scenarios where you want to inspect or manually edit serialized state.
Use it for
- Store application configuration or cached object state as importable Python files instead of binary formats.
- Serialize test fixtures or example data in a format that's both machine-readable and human-editable.
- Debug object hierarchies by inspecting their eval-safe repr output before deciding whether to persist them.
- Generate Python code that reconstructs complex object graphs without requiring pickle at load time.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No.
The package is abandoned (last release 2019-06-03) with no ongoing maintenance. While it has no known vulnerabilities and low install friction, the lack of updates means it will not receive bug fixes or compatibility patches for newer Python versions. For new projects, consider maintained alternatives.
Install
renew on PyPI
Before you install
Low friction installation with a single dependency (six). However, the package is abandoned—last release was 2019-06-03 with no subsequent maintenance or updates.
Class must store all constructor arguments as instance attributes with identical names; variadic args must be stored as list/tuple/set/OrderedDict, keyword args as dict/OrderedDict.
License in practice
MIT license (permissive). You can use, modify, and distribute this package freely with minimal restrictions.
Quickstart
import renew
class MyClass(renew.Mold):
def __init__(self, a, b):
self.a, self.b = a, b
obj = MyClass(1, 2)
print(repr(obj)) # MyClass(1, 2)
renew.serialize('/tmp/out.py', obj=obj)
Verify before relying
- Whether the package works reliably with Python versions beyond 3.7 (latest tested version in classifiers).
- Whether nested object serialization handles circular references or deep graphs without issues.
- Real-world performance on large object graphs or complex class hierarchies.
Package facts
| License | MIT license permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagesix |
| Maintenance | Abandoned 2,629 days since the last release |
| First released | |
| Downloads | 141,200 / month, #11,247 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: Implementation :: PyPyTopic :: Software DevelopmentTopic :: Software Development :: Code Generators |
Evidence: renew-0.5.4-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “reproducible object repr”
- renewGenerates reproducible string representations of Python objects that…
- cheap-reprProvides short, fast, configurable string representations as an…
- sqlalchemy-reprAdds automatic, human-readable repr() output to SQLAlchemy model…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also cheap-repr · serpent · slicerator · dill · cobble · desert · sqlalchemy-repr · tblib · re-assert · magicattr