From 37bb0843fda7d6ded45cd76a4c29956bbf0dcc33 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Tue, 20 May 2025 09:25:20 -0700 Subject: [PATCH] clean up some comments Signed-off-by: Todd Gamblin --- lib/spack/spack/spec.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 6b6b9cf870d..fb64bd5c794 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -3847,11 +3847,13 @@ def nodes(): nonlocal edge_list nonlocal node_ids + # Level 0: root node yield self._cmp_node # always yield the root (this node) if not self._dependencies: # done if there are no dependencies return - # first level: yield sorted direct dependencies (inlines first level of BFS) + # Level 1: direct dependencies + # we can yield these in sorted order without tracking visited nodes deps_have_deps = False sorted_l1_edges = self.edges_to_dependencies(depflag=dt.ALL) if len(sorted_l1_edges) > 1: @@ -3865,10 +3867,12 @@ def nodes(): if not deps_have_deps: # done if level 1 specs have no dependencies return - # second level: now it's general; we need full traverse() to track visited nodes + # Level 2: dependencies of direct dependencies + # now it's general; we need full traverse() to track visited nodes l1_specs = [edge.spec for edge in sorted_l1_edges] - # node_ids generates consistent node ids based on BFS traversal order. + # the node_ids dict generates consistent ids based on BFS traversal order + # these are used to identify edges later node_ids = collections.defaultdict(lambda: len(node_ids)) node_ids[id(self)] # self is 0 for spec in l1_specs: