phenotypic.gui.builder._state._DagBuilderScope#
- class phenotypic.gui.builder._state._DagBuilderScope(blocks: ~typing.List[~phenotypic.gui.builder._state.BlockNode] = <factory>, edges: ~typing.List[~phenotypic.gui.builder._state.Edge] = <factory>, name: str = 'Pipeline', desc: str = '', nrows: int | None = None, ncols: int | None = None)[source]#
Bases:
objectA DAG of blocks + edges (per scope).
A scope corresponds to one
ImagePipelineonce converted via the DAG conversion path (_conversion_dag.py). Stage (ops/meas/post) is inferred per block from its class via the operation registry at convert time; the canvas does not constrain block ordering by stage.Every scope (root and every nested container scope) auto-seeds an
BlockNodewithclass_name == INPUT_IMAGE_CLASS_NAMEat construction time via_seed_input_image()(called from__post_init__()). The Rule 6 idempotency invariant is therefore established eagerly.- Parameters:
- blocks#
Ordered
BlockNodelist. The order is not execution order — the DAG’s image-flow edges dictate execution order during conversion. The first block is (post-seed) always theInputImagesentinel.- Type:
- nrows#
Optional grid row preset (forwarded to
ImagePipelineon the root scope; ignored for nested container scopes).- Type:
int | None
Methods
__init__Attributes