## nodes.Group


Nodes refreshed together; see [group](group.md#sverify.group).


Usage

``` python
nodes.Group(nodes)
```


## Attributes


`nodes`  
The nodes, in the order given.


## Methods

| Name | Description |
|----|----|
| [refresh()](#refresh) | Refresh every node against the same source versions (each |
| [status()](#status) | Where each node stands ([Node.status](Node.status.md#sverify.Node.status)). |

------------------------------------------------------------------------


#### refresh()


Refresh every node against the same source versions (each


Usage

``` python
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](Node.refresh.md#sverify.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](Node.refresh.md#sverify.Node.refresh).

`unverified: bool = ``False`  
Refresh nodes whose contract is not proved anyway; see [Node.refresh](Node.refresh.md#sverify.Node.refresh).

`reproducible: Observation | None = None`  
What a rerun must reproduce; see [Node.refresh](Node.refresh.md#sverify.Node.refresh).


##### Returns


`Refresh`  
A [Refresh](nodes.Refresh.md#sverify.nodes.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](Node.status.md#sverify.Node.status)).


Usage

``` python
status()
```


##### Returns


`Status`  
A [Status](nodes.Status.md#sverify.nodes.Status) with one [NodeStatus](nodes.NodeStatus.md#sverify.nodes.NodeStatus) per node of the group (not the

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