diff --git a/src/icmtoolchain/cli.py b/src/icmtoolchain/cli.py index be133d3..96f0db7 100644 --- a/src/icmtoolchain/cli.py +++ b/src/icmtoolchain/cli.py @@ -115,8 +115,6 @@ def run(argv: Optional[list[str]] = None): startup_millis = time() - startup_millis debug(f"* Tasks successfully completed in {startup_millis:.2f}s!") -from random import random - from .language import AbobaConfig project_config = AbobaConfig("1") @@ -128,8 +126,7 @@ node3 = graph.obtain_edge(AbobaConfig("3")) graph.depend_on(node2, node3) node4 = graph.obtain_edge(AbobaConfig("4")) graph.depend_on(node3, node4) -if random() < 0.5: - graph.depend_on(node4, node2) +graph.depend_on(node4, node2) node5 = graph.obtain_edge(AbobaConfig("5")) graph.depend_on(node1, node5) node6 = graph.obtain_edge(AbobaConfig("6")) @@ -142,15 +139,18 @@ graph.depend_on(node1, node8) graph.depend_on(node6, node8) print("Cross references") -print(f"Node 1: {graph.get_cross_references(node1)}") -print(f"Node 2: {graph.get_cross_references(node2)}") -print(f"Node 3: {graph.get_cross_references(node3)}") -print(f"Node 4: {graph.get_cross_references(node4)}") -print(f"Node 5: {graph.get_cross_references(node5)}") -print(f"Node 6: {graph.get_cross_references(node6)}") -print(f"Node 7: {graph.get_cross_references(node7)}") -print(f"Node 8: {graph.get_cross_references(node8)}") -print(f"Looped by cross references? {'No' if not graph.get_cross_references() else 'Yes'}") +print(f"Node 1: {graph.find_circular_reference(node1)}") +print(f"Node 2: {graph.find_circular_reference(node2)}") +print(f"Node 3: {graph.find_circular_reference(node3)}") +print(f"Node 4: {graph.find_circular_reference(node4)}") +print(f"Node 5: {graph.find_circular_reference(node5)}") +print(f"Node 6: {graph.find_circular_reference(node6)}") +print(f"Node 7: {graph.find_circular_reference(node7)}") +print(f"Node 8: {graph.find_circular_reference(node8)}") +print(f"Looped by cross references? {'No' if not graph.find_circular_reference() else 'Yes'}") +unresolved_artifacts = graph.resolve_dependencies() +show_unresolved_dependencies(unresolved_artifacts) +resolve_circular_references(graph) print(f"Order: {', '.join([edge.project.key if isinstance(edge.project, AbobaConfig) else str(edge) for edge in graph.traverse_dependencies()])}") def run_test():