def print_dependents(graph, preamble_list, imports):
"""
Print the immediate dependencies (imports/includes), and for each
immediate dependency print its dependencies
:param graph: Dictionary containing the subgraph of dependencies that
we are about to print
:param preamble_list: Preamble list, list of string to print out before each
dependency (Provides the offset for higher order dependencies)
:param imports: List of immediate imports/includes
:return:
"""
# Create the preamble string for the current level
preamble = ''
for preamble_string in preamble_list:
preamble += preamble_string
# Print a newline for the current level
print(preamble + ' |')
for i in range(len(imports)):
print(augment_format_string(imports[i], preamble + ' +--> %s') % imports[i])
# Determine if a dependency has dependencies on its own; if yes,
# print them out before moving onto the next dependency
try:
imp_imports = graph[imports[i]]
if i < (len(imports) - 1):
preamble_list.append(' | ')
else:
preamble_list.append(' ')
print_dependents(graph, preamble_list, imp_imports)
preamble_list.pop(-1)
# Only print a newline if we're NOT the last processed module
if i < (len(imports) - 1):
print(preamble + ' |')
except KeyError:
pass
评论列表
文章目录