From 246448c222bdc2c1fd1af702cf61a1dfbe50db1d Mon Sep 17 00:00:00 2001 From: foreignmeloman Date: Sun, 11 Oct 2020 19:06:29 +0400 Subject: [PATCH] Shield newline symbol when generating labels for graphviz Python converts '\n' to actual newline before putting it into dot format. Although the previous approach somehow works it's better to pass '\n' explicitly. --- pipdeptree.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pipdeptree.py b/pipdeptree.py index 540ca7a..eccab33 100644 --- a/pipdeptree.py +++ b/pipdeptree.py @@ -594,19 +594,19 @@ def dump_graphviz(tree, output_format='dot', is_reverse=False): if not is_reverse: for pkg, deps in tree.items(): - pkg_label = '{0}\n{1}'.format(pkg.project_name, pkg.version) + pkg_label = '{0}\\n{1}'.format(pkg.project_name, pkg.version) graph.node(pkg.key, label=pkg_label) for dep in deps: edge_label = dep.version_spec or 'any' if dep.is_missing: - dep_label = '{0}\n(missing)'.format(dep.project_name) + dep_label = '{0}\\n(missing)'.format(dep.project_name) graph.node(dep.key, label=dep_label, style='dashed') graph.edge(pkg.key, dep.key, style='dashed') else: graph.edge(pkg.key, dep.key, label=edge_label) else: for dep, parents in tree.items(): - dep_label = '{0}\n{1}'.format(dep.project_name, + dep_label = '{0}\\n{1}'.format(dep.project_name, dep.installed_version) graph.node(dep.key, label=dep_label) for parent in parents: