phenotypic.gui.builder._validation.Issue#
- class phenotypic.gui.builder._validation.Issue(kind: ~typing.Literal['fork', 'stub', 'required_aux', 'cycle', 'container_mode', 'missing_input', 'duplicate_input', 'stage_order_hint', 'unknown_class', 'unsupported_linear'], block_id: str | None, detail: str, scope_path: ~typing.List[str] = <factory>, severity: ~typing.Literal['error', 'advisory'] = 'error')[source]#
Bases:
objectA single validation finding for a block or scope.
- Parameters:
- kind#
One of the nine taxonomy entries (see
IssueKind). The first seven are blocking errors that disable preview/save;stage_order_hintis advisory and decorates with a yellow border instead of red.unknown_classandunsupported_linearare blocking because the runtime cannot safely materialize a pipeline from them.- Type:
Literal[‘fork’, ‘stub’, ‘required_aux’, ‘cycle’, ‘container_mode’, ‘missing_input’, ‘duplicate_input’, ‘stage_order_hint’, ‘unknown_class’, ‘unsupported_linear’]
- block_id#
Nonefor scope-level findings (the only one that actually usesNoneismissing_input); otherwise the offender’s block id.- Type:
str | None
- detail#
Free-form human-readable explanation. Used by tooltips and toasts; not part of the test-normalisation key.
- Type:
- scope_path#
List of container block_id values walked from the root scope to the offender’s scope. Empty when the issue lives in the root scope. The UI consumes this to pan/zoom across container boundaries when a badge is clicked.
- Type:
List[str]
- severity#
"error"for the seven blocking rules,"advisory"forstage_order_hint. Populated by the rule that emits the issue; callers gate Run/Save by filtering on this field.- Type:
Literal[‘error’, ‘advisory’]
Methods
__init__Attributes