pjkm.core.engine.dag

DAG resolver using Kahn’s algorithm for topological sorting.

Exceptions

CyclicDependencyError

Raised when tasks have circular dependencies within a phase.

Classes

DAGResolver

Resolves task execution order within each phase using topological sort.

Module Contents

exception pjkm.core.engine.dag.CyclicDependencyError(phase, remaining_tasks)[source]

Bases: Exception

Raised when tasks have circular dependencies within a phase.

Parameters:
phase[source]
remaining_tasks[source]
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:

list[pjkm.core.models.task.TaskDefinition]