Skip to content

incremental

sqllocks_spindle.incremental

Incremental generation engine for Spindle — C1 continue support + C5 time-travel.

Classes

ContinueConfig dataclass

Configuration for incremental generation.

Attributes:

Name Type Description
insert_count int

Number of new rows to generate per anchor table.

update_fraction float

Fraction of existing rows to update (0.0 - 1.0).

delete_fraction float

Fraction of existing rows to soft-delete (0.0 - 1.0).

state_transitions dict[str, dict[str, dict[str, float]]]

Per-column Markov transition probabilities. Format: {"table.column": {"current_state": {"next_state": probability}}} Example::

{"order.status": {
    "pending": {"shipped": 0.7, "cancelled": 0.3},
    "shipped": {"delivered": 0.9, "returned": 0.1},
}}
timestamp_column str

Name of the delta-timestamp metadata column.

delta_type_column str

Name of the delta-type metadata column.

seed int | None

Optional random seed for reproducibility.

ContinueEngine

Generate incremental deltas (inserts, updates, deletes) from existing data.

Methods:
continue_from(existing, schema=None, config=None)

Generate incremental changes from existing data.

Parameters

existing: Either a GenerationResult (from Spindle.generate()) or a plain dict[str, pd.DataFrame]. schema: Optional SpindleSchema. If existing is a GenerationResult the schema is extracted automatically. config: ContinueConfig controlling insert/update/delete volumes and state-transition rules. Defaults are used when None.

DeltaResult dataclass

Result of incremental generation.

Snapshot dataclass

A point-in-time snapshot of the dataset.

TimeTravelConfig dataclass

Configuration for time-travel snapshot generation.

TimeTravelEngine

Generate monthly point-in-time snapshots showing data evolution.

Methods:
generate(domain, config=None, scale='small')

Generate monthly snapshots of a domain's data.

Month 0 is the initial dataset. Each subsequent month applies: - New entity growth (inserts) at growth_rate * seasonality multiplier - Status transitions (updates) at update_fraction rate - Churn (soft deletes) at churn_rate

Returns a TimeTravelResult with N+1 snapshots (month 0 through month N).

TimeTravelResult dataclass

Result of time-travel generation.

Methods:
get_snapshot(month)

Get snapshot by month index.

to_partitioned_dfs()

Return all snapshots combined with a _snapshot_date column.