from dataclasses import dataclass from typing import Callable UNDO_REDO_INSTANCE_ID = "__UndoRedo__" ROUTE_ROOT = "/undo" class Routes: Undo = "/undo" Redo = "/redo" @dataclass class UndoRedoAttrs: name: str desc: str = None update_tab: bool = True on_undo: Callable = None on_redo: Callable = None def __post_init__(self): if self.on_redo is None: self.on_redo = self.on_undo