Skip to content

Make a change. Undo it. Redo it.

YIDL Undoable generates Python model classes with transactional managed fields and frame-based history. A committed edit becomes one history step across your managed object graph. You choose which fields participate; management state can remain outside history.

Begin with your first undo. You need ordinary Python classes and a with statement; no YIDL or Lifecycle knowledge is required.

You want to… Read
Try a complete example Getting started
Understand what undo restores Frames, fields and views
Append or remove collection items Collections
Group edits and reject invalid candidates Transactions
Add children, remove roots, retain handles Object graphs
Compute initial values from other fields Initialization
Keep values after navigation or branching Snapshots
Choose value equality or identity Comparisons
Control class-generation caching Cache
Look up every operation and field rule API reference

A transaction's rollback discards pending managed changes. Undo selects an older committed frame. Neither reverses external I/O, closes resources, nor restores ordinary nonversioned fields. This is an in-memory model facility, not a database or a persistence system.