Skip to content
Back to top
View this page

# CommitStore

class dsviper.CommitStore

  Bases: `object`

  A high-level application class used to implement the store, dispatch, undo/redo and notification concepts inspired by the redux approach.

  The implementation used a Commit database for the persistence layer.

  attachment_getting() → AttachmentGetting

    Return the AttachmentGetting interface of the current state or raise.

  can_redo() → bool

    Return True if the store can redo.

  can_undo() → bool

    Return True if the store can undo.

  clear_undo_redo() → None

    clear the undo redo stack.

  close() → None

    Close the database.

  commit_mutations(label: str, commit_mutable_state: CommitMutableState) → None

    Commit the mutations tracked by the mutable state.

  database() → CommitDatabase

    Return the database or raise.

  definitions() → DefinitionsConst

    Return the definitions.

  delete_commit(commit_id: ValueCommitId) → None

    Delete a commit.

    WARNING: It’s not a feature!, it’s a trick used during interactive presentation.

  disable_commit(commit_id: ValueCommitId) → None

    Disable a commit.

  dispatch(label: str, callable: Callable, *args) → None

    Dispatch a callable.

  dispatch_diff(label: str, attachment: Attachment, key: ValueKey, value: _InputValues, *, recursive: bool = False) → None

    Dispatch a mutating diff(…).

  dispatch_enable_commit(commit_id: ValueCommitId, enabled: bool) → None

    Dispatch the act of enabling/disabling a commit.

  dispatch_set(label: str, attachment: Attachment, key: ValueKey, value: _InputValues) → None

    Dispatch a mutating set(…).

  dispatch_update(label: str, attachment: Attachment, key: ValueKey, path: PathConst, value: _InputValues) → None

    Dispatch a mutating update(…).

  enable_commit(commit_id: ValueCommitId) → None

    Enable a commit.

  extend_definitions(definitions: DefinitionsConst) → DefinitionsExtendInfo

    Extend the database definitions and notify.

  forward() → None

    Move to the most plausible head.

  has_database() → bool

    Return true there is a database.

  has_state() → bool

    Return true there is a state.

  static instance() → CommitStore

    Return the singleton.

  merge_commit(commit_id: ValueCommitId) → None

    Merge a commit.

  mutable_state() → CommitMutableState

    Return a new mutable state for the current state.

  notifier() → CommitStoreNotifying | None

    Return the notifier or None.

  notify_database_did_close() → None

    Send a notification to inform that the database was closed.

  notify_database_did_open() → None

    Send a notification to inform that the database was opened.

  notify_database_did_reset() → None

    Send a notification to inform that the database did reset.

  notify_database_will_reset() → None

    Send a notification to inform that the database will reset.

  notify_definitions_did_change() → None

    Send a notification to inform that the definitions has changed.

  notify_dispatch_error(error: Error) → None

    Send a notification to inform that an error occurred during a dispatch.

  notify_reset_database() → None

    Send a notification to reset the database.

  notify_state_did_change() → None

    Send a notification to inform that the current state has changed.

  notify_stop_live() → None

    Send a notification to stop the live mode.

  redo() → None

    Implement the undo idiom for a Commit database.

  reduce_heads() → None

    Reduce to a single head by iteratively merging heads, starting from the last_commit_id.

  reset() → None

    Remove all commits except the first one.

    WARNING: It’s not a feature!, it’s a trick used during interactive presentation.

  reset_undo_redo() → None

    Reset the undo redo stack.

  set_database(commit_database: CommitDatabase) → None

    set the database.

  set_notifier(notifier: CommitStoreNotifying) → None

    Set the notifier.

  set_state(commit_state: CommitState) → None

    set the state.

  state() → CommitState | None

    Return the current state or raise.

  undo() → None

    Implement the undo idiom for a Commit database.

  undo_stack_ids() → tuple[list[ValueCommitId], int | None]

    Return (commit_ids, current_commit_id).

  use(commit_database: CommitDatabase) → None

    Use a Commit database.

  use_commit(commit_id: ValueCommitId) → None

    Use a commit.