starplast.spaces
Shared validation for building one organism's data space without silent data loss.
def
validate_nodes( space, nodes: pandas.DataFrame, previous: pandas.DataFrame | None = None) -> None:
Require canonical unique IDs; refuse lost old IDs, columns or measured cells.
def
validate_graph(nodes: pandas.DataFrame, graph_path) -> None:
Require finite display coordinates, exact gene order and in-range edge indices.
def
build_pack( space, directory, version: str, column_licenses: dict, destination, previous=None) -> str:
Validate a prepared space and create its distributable pack; return the archive SHA256.
Callers supply the per-column license decisions. Unreviewed (V) and local-only (X) sources cannot enter a distributed pack. Raw-source acquisition remains the organism builder's job.