pjkm.core.engine.dag¶
DAG resolver using Kahn’s algorithm for topological sorting.
Exceptions¶
Raised when tasks have circular dependencies within a phase. |
Classes¶
Resolves task execution order within each phase using topological sort. |
Module Contents¶
- exception pjkm.core.engine.dag.CyclicDependencyError(phase, remaining_tasks)[source]¶
Bases:
ExceptionRaised when tasks have circular dependencies within a phase.
- Parameters:
phase (pjkm.core.models.task.Phase)
- class pjkm.core.engine.dag.DAGResolver[source]¶
Resolves task execution order within each phase using topological sort.
- resolve(tasks)[source]¶
Sort tasks respecting phase order and intra-phase dependencies.
Returns a flat list of TaskDefinitions in execution order: all SCAFFOLD tasks first (topologically sorted), then CONFIGURE, etc.
Raises CyclicDependencyError if a cycle is detected within any phase.
- Parameters:
tasks (list[pjkm.core.models.task.TaskDefinition])
- Return type: