22 lines
575 B
Python
22 lines
575 B
Python
from dataclasses import dataclass
|
|
import networkx as nx
|
|
|
|
|
|
@dataclass
|
|
class RoadmapStage:
|
|
title: str
|
|
concepts: list[str]
|
|
mastery_goal: str
|
|
|
|
|
|
def generate_stages_from_learning_graph(graph: nx.DiGraph) -> list[RoadmapStage]:
|
|
sequence = list(nx.topological_sort(graph))
|
|
return [
|
|
RoadmapStage(
|
|
title=f"Stage {i+1}: {concept.split('::')[-1].replace('-', ' ').title()}",
|
|
concepts=[concept],
|
|
mastery_goal=f"Demonstrate applied understanding of {concept}.",
|
|
)
|
|
for i, concept in enumerate(sequence)
|
|
]
|