Skip to content
Back to top
View this page

# CommitDatabase

class dsviper.CommitDatabase(commit_databasing)

  Bases: `object`

  A Commit database keeps the history of mutations in a DAG of commit.

  Use the static factory method create_in_memory(), create(…), open(…), connect(…) or connect_local(…).

  blob(blob_id: ValueBlobId) → ValueBlob

    Return a blob or None.

  blob_getting() → BlobGetting

    Return the BlobGetting interface.

  blob_ids() → set[ValueBlobId]

    Return the set of blob_id of all available blobs.

  blob_info(blob_id: ValueBlobId) → BlobInfo

    Return the information of the blob.

  blob_infos(blob_ids: set[ValueBlobId]) → list[BlobInfo]

    Return a list of BlobInfo.

  blob_statistics() → BlobStatistics

    Return the statistics for blobs.

  blob_stream_append(blob_stream: BlobStream, blob: ValueBlob) → None

    Append the blob to the stream.

  blob_stream_close(blob_stream: BlobStream) → ValueBlobId

    Return the computed blob_id and close the stream.

  blob_stream_create(blob_layout: BlobLayout, size: int) → BlobStream

    Return a stream to fill a blob.

  children_commit_ids(commit_id: ValueCommitId) → set[ValueCommitId]

    Return a set of commit_id for the children of the commit.

  close() → None

    Close the database.

  codec_name() → str

    Return the name of the codec.

  commit(commit_id: ValueCommitId) → Commit

    Return the commit.

  commit_databasing() → CommitDatabasing

    Return the CommitDatabasing interface.

  commit_exists(commit_id: ValueCommitId) → bool

    Return True if the commit exists.

  commit_header(commit_id: ValueCommitId) → CommitHeader

    Return the header associated with the commit.

  commit_ids() → set[ValueCommitId]

    Return a set of commit_id for all available commits.

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

    Create a new commit and return the commit_id.

  static connect(host: str, service: str = '54321') → CommitDatabase

    Connect to a remote commit server.

  static connect_local(socket_path: str) → CommitDatabase

    Connect to a socket located at socket_path.

  static create(file_path: str, *, documentation: str | None = None) → CommitDatabase

    Create a database.

  create_blob(blob_layout: BlobLayout, blob: ValueBlob) → ValueBlobId

    Compute and return the blob_id for a blob and the layout.

  create_blob_from_buffer(buffer) → ValueBlobId

    create_blob_buffer($self, buffer) –

    Compute and return the blob_id for a object implementing the buffer protocol.

  static create_in_memory() → CommitDatabase

    Create a database in memory.

  definitions() → DefinitionsConst

    Return the definitions.

  definitions_hexdigest() → str

    Return the hexdigest of 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(label: str, parent_commit_id: ValueCommitId, disabled_commit_id: ValueCommitId) → ValueCommitId

    Return the commit_id of a new commit that disables another commit.

  documentation() → str

    Return the documentation.

  enable_commit(label: str, parent_commit_id: ValueCommitId, enabled_commit_id: ValueCommitId) → ValueCommitId

    Return the commit_id of the new commit that enables another commit.

  enabled_by_commit_id(commit_id: ValueCommitId) → dict[ValueCommitId, bool]

    Return a dict[ValueCommitId, bool].

  extend_definitions(other: DefinitionsConst) → DefinitionsExtendInfo

    Extend the definitions.

  fast_forward(commit_id: ValueCommitId) → ValueCommitId

    Return the commit_id of the most plausible head.

  first_commit_id() → ValueCommitId | None

    Return the commit_id of the first commit or None.

  forward(commit_id: ValueCommitId) → ValueCommitId

    Return the commit_id of the uniq head or fast_forward.

  head_commit_ids() → set[ValueCommitId]

    Return a set of commit_id for the available heads.

  in_memory() → bool

    Return True if the database is in memory.

  initial_state() → CommitState

    Return the initial state without any mutations.

  is_ancestor(commit_id: ValueCommitId, descendant_id: ValueCommitId) → bool

    Return True if commit_id is a descendant of descendant_id.

  is_closed() → bool

    Return True is the database is closed.

  static is_compatible(file_path: str) → bool

    Return True if the SQL schema contains the required tables.

  is_mergeable(parent_commit_id: ValueCommitId, merged_commit_id: ValueCommitId) → bool

    Return True if a merge is valid.

  last_commit_id() → ValueCommitId | None

    Return the commit_id of the last commit or None.

  merge_commit(label: str, parent_commit_id: ValueCommitId, merged_commit_id: ValueCommitId) → ValueCommitId

    Return the commit_id of the new commit that merges another commit.

  nephew_commit_ids(commit_id: ValueCommitId) → set[ValueCommitId]

    Return a set of commit_id for the nephew of the commit.

  static open(file_path: str, readonly: bool = False) → CommitDatabase

    Open a database.

  path() → str

    Return the path.

  read_blob(blob_id: ValueBlobId, size: int, offset: int) → ValueBlob

    Return a region of the blob.

  reduce_heads() → ValueCommitId | None

    Reduce to a single head by iteratively merging heads, starting from the last_commit_id and return the new commit_id or None.

  reset_commits() → None

    Remove all commits except the first one.

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

  state(commit_id: ValueCommitId) → CommitState

    Return a new state for a commit.

  stream_codec_instancing() → StreamCodecInstancing

    Return the StreamCodecInstancing interface used to encode the binary data.

  uuid() → ValueUUId

    Return the uuid.