def print_impacted_modules(single_node=None, json_out=None):
"""
For each module, print a list of modules that depend on the module, i.e.
modules that would be impacted by a change in this module. The function
shows all levels of dependency, not just the immediately impacted
modules. If the json_out argument is not None, then the output will be
recorded there rather than printed on stdout.
:return:
"""
if json_out is None:
print('\n===Impacted Modules===')
else:
json_out['impacted_modules'] = {}
for node_name in G.nodes_iter():
if single_node and (node_name!=single_node):
continue
ancestors = nx.ancestors(G, node_name)
if len(ancestors) > 0:
if json_out is None:
print(augment_format_string(node_name, '\n%s:') % node_name)
else:
json_out['impacted_modules'][node_name] = []
for a in ancestors:
if json_out is None:
print(augment_format_string(a, ' %s') % a)
else:
json_out['impacted_modules'][node_name].append(a)
评论列表
文章目录