%cd -q ..
import graphviz
graphviz.__version__, graphviz.version()
('0.20.dev0', (2, 40, 1))
def make_graph(node_label=None, graph_name=None, **node_kwargs):
result = graphviz.Digraph(name=graph_name)
result.node('A', label=node_label, **node_kwargs)
print(result)
return result
make_graph(node_label='"')
digraph { A [label="\""] }
make_graph(node_label='\\"')
digraph { A [label="\""] }
try:
make_graph(node_label='\\').pipe(format='svg', encoding='utf-8');
except graphviz.CalledProcessError as e:
assert 'syntax error' in e.stderr
/home/jovyan/graphviz/quoting.py:88: DotSyntaxWarning: expect syntax error scanning invalid quoted string: '\\' category=exceptions.DotSyntaxWarning) Error: <stdin>: syntax error in line 2 scanning a quoted string (missing endquote? longer than 16384?) String starting:""] }
digraph { A [label="\"] }
make_graph(node_label=r'\\')
digraph { A [label="\\"] }
make_graph(node_label=r'\\"')
digraph { A [label="\\\""] }
make_graph(node_label=r'node: \N')
digraph { A [label="node: \N"] }
make_graph(node_label=r'graph: \G', graph_name='spam')
digraph spam { A [label="graph: \G"] }
make_graph(node_label='spam', URL=r'https://example.org/\L')
digraph { A [label=spam URL="https://example.org/\L"] }
make_graph(node_label=r'centered\nleft\lright\r')
digraph { A [label="centered\nleft\lright\r"] }