Skip to main content

nodes.Group

Nodes refreshed together; see group.

Usage

Source

nodes.Group(nodes)

Attributes

nodes
The nodes, in the order given.

Methods

Name Description
refresh() Refresh every node against the same source versions (each
status() Where each node stands (Node.status).

refresh()

Refresh every node against the same source versions (each

Usage

Source

refresh(
    *,
    engine=None,
    audit=False,
    route="auto",
    unverified=False,
    reproducible=None
)

source’s latest when the refresh starts), sharing the stored nodes they read: each is refreshed and written once. See Node.refresh.

Parameters
engine: Any = None

What runs the plans: "duckdb", "polars", "datafusion", "spark" or a Spark session. Default None: DuckDB, in memory.

audit: bool = False

Whether to compare every batch with recomputation before applying it. Default False.

route: RouteKind | Literal["auto"] = "auto"

How each node’s proof reaches engine; see Node.refresh.

unverified: bool = False

Refresh nodes whose contract is not proved anyway; see Node.refresh.

reproducible: Observation | None = None
What a rerun must reproduce; see Node.refresh.
Returns
Refresh

A Refresh with an entry for every node refreshed: the nodes and

the stored nodes they read, each once, upstream first.
Raises
sverify.errors.PreconditionError

A precondition on a source does not hold on its rows.

sverify.errors.SchemaError

A source’s schema changed in a way a contract cannot follow.

sverify.errors.AuditError

With audit, a batch disagrees with recomputation; nothing was applied.

sverify.errors.UnverifiedRunError

A node’s contract is not proved; nothing was refreshed.

sverify.errors.RouteError
A stored node is not determined up to row order, or no route takes a node’s proof to engine; nothing was refreshed.

status()

Where each node stands (Node.status).

Usage

Source

status()
Returns
Status

A Status with one NodeStatus per node of the group (not the

stored nodes they read, unless they are in the group).