gcubed.projections.design_files

Public design-file parsing and writing API for projection workflows.

class DesignFileError(builtins.ValueError):

Raised when a design document violates its serialization contract.

@dataclass(frozen=True)
class DesignLayerRecord:

One ordered layer entry before model-specific materialisation.

DesignLayerRecord( name: str, data_file: str, event_year: int, description: str | None = None)
name: str
data_file: str
event_year: int
description: str | None = None
effective_description: str

Return the display description, falling back to the layer name.

def load_design_yaml( filename: pathlib.Path) -> tuple[DesignLayerRecord, ...]:

Strictly parse and validate a version-1 YAML design document.

def render_design_yaml( layers: Iterable[DesignLayerRecord | Mapping[str, object]]) -> str:

Render ordered records or layer mappings as canonical version-1 YAML.

def write_design_yaml( design_path: pathlib.Path, layers: Iterable[DesignLayerRecord | Mapping[str, object]], *, overwrite: bool = False) -> None:

Atomically write and validate a canonical version-1 YAML design.