@@ -197,12 +197,11 @@ def print_attrs(outfile, pkg, pkg_type, pkg_version, depth, colors):
outfile.write("%s [color=%s,style=filled]\n" % (name, color))
-done_deps = []
-
-
# Print the dependency graph of a package
def print_pkg_deps(outfile, dict_deps, dict_types, dict_versions, stop_list, exclude_list,
- arrow_dir, draw_graph, depth, max_depth, pkg, colors):
+ arrow_dir, draw_graph, depth, max_depth, pkg, colors, done_deps=None):
+ if done_deps is None:
+ done_deps = []
if pkg in done_deps:
return
done_deps.append(pkg)
@@ -234,7 +233,7 @@ def print_pkg_deps(outfile, dict_deps, dict_types, dict_versions, stop_list, exc
if draw_graph:
outfile.write("%s -> %s [dir=%s]\n" % (pkg_node_name(pkg), pkg_node_name(d), arrow_dir))
print_pkg_deps(outfile, dict_deps, dict_types, dict_versions, stop_list, exclude_list,
- arrow_dir, draw_graph, depth + 1, max_depth, d, colors)
+ arrow_dir, draw_graph, depth + 1, max_depth, d, colors, done_deps)
def parse_args():
This commit is cleanup to remove the global done_deps to allow multiple function calls to the DFS search. Signed-off-by: Steve Hay <me@stevenhay.com> --- Changes v1 -> v2: - Revised author to be full name. (Suggested by Yann) - Added a more detailed description of the patch. (Suggested by Yann) - Resolution of Yann's comment is that specificying [] (mutable) as default will create a static list associated with the function instead of creating a new empty list at each function invocation. The existing implementation of specifying None (immutable) and handling default case (None) in the function body is idiomatically correct for Python. --- support/scripts/graph-depends | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)