Skip to main content

YIDL Undoable

Make an edit to a Python model, undo it, and redo it. Declare which fields belong to history; Undoable supplies guarded transactions and a shared history for the root objects and their managed descendants. You do not need to write YIDL.

from yidl_undoable import UndoRedoManager, managed, undoable

@undoable
class Document:
    title: str = managed(default="Draft")

history = UndoRedoManager()
document = Document(transaction_manager=history)
history.initialize(document)
with history.begin():
    document.title = "Ready"
assert history.undo() and document.title == "Draft"
assert history.redo() and document.title == "Ready"

Install with python -m pip install yidl-undoable. The package targets CPython 3.12–3.15; see the installation qualification for platform/dependency limits.

Start with your first undo, then learn frames and views, collections, and nested objects. The public API gives the complete contract. The searchable documentation site is owebeeone.github.io/yidl-undoable.

History is in memory and linear. A new commit after undo discards redo. Only managed data is restored; caches, ordinary fields and external resources are not rewound. Live handles follow the selected frame; use a snapshot to retain old committed managed values.

Version 0.1.2 adds field-specific generated accessors and optional compiled-builder caching. Version 0.1.1 does not include these additions; the transaction API remains the same. The original experiment, accessor experiment and cache probe preserve separate evidence and measurement limits. Contributor details live in CONTRIBUTING.md; releases use Gearu.

Metadata

Release files for yidl-undoable 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yidl-undoable 0.1.2
File Size Uploaded Provenance Actions
yidl_undoable-0.1.2.tar.gz 370.2 kB With provenance Details for yidl_undoable-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for yidl-undoable 0.1.2
File Interpreter ABI Platform Actions
yidl_undoable-0.1.2-py3-none-any.whl Python 3 none any Details for yidl_undoable-0.1.2-py3-none-any.whl

Total release size: 458.7 kB

Release files / yidl_undoable-0.1.2.tar.gz

Download URL yidl_undoable-0.1.2.tar.gz
Size 370.2 kB
Tags Source
SHA-256 checksum
How to use checksums
919bc914883b00cd8812b090b887c4e6c4bc8e4200fcbac00a5c040ebc045fed
BLAKE2b-256 checksum
How to use checksums
965f3a23d3504ac85dfc0246be50121b4fc7974cc20e6727c100738bce4a647f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / yidl_undoable-0.1.2-py3-none-any.whl

Download URL yidl_undoable-0.1.2-py3-none-any.whl
Size 88.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
701efdf945f5c0e7278fc09d849812daca325255bab6d6b52ff31703d0b530a2
BLAKE2b-256 checksum
How to use checksums
84acc100203cf4d88d084a769a44f7443d847f2d868580b1ee1452e47261ea17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Security for yidl-undoable 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for yidl_undoable-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page