Source code for neofoam.framework.initialization.execution.validation

# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2026 NeoFOAM authors

"""Pre-execution validation of an :class:`InitStep` dependency graph."""

from ...graph import GraphValidationReport, validate_dependency_graph
from ..init_step import InitStep


[docs] class InitializationGraphError(ValueError): """Raised when an initialization dependency graph fails validation.""" def __init__(self, report: GraphValidationReport): self.report = report message = report.diagnostics[0].message if report.diagnostics else "" super().__init__(message)
[docs] def validate(lazy_inits: list[InitStep]) -> GraphValidationReport: """Run the graph validators against ``lazy_inits``.""" node_names = [li.name for li in lazy_inits] dependencies_by_node = {li.name: li.depends_on for li in lazy_inits} return validate_dependency_graph(node_names, dependencies_by_node)