pydot / pydot-ng

Python interface to Graphviz's Dot language compatible with Python 2 nad Python 3
MIT License
23 stars 10 forks source link

[85] Multiple styles not correctly rendered ("style=S1, S2=true") #21

Open prmtl opened 9 years ago

prmtl commented 9 years ago

Reported by gerg.w...@gmail.com, 2013-09-20T20:02:10Z

What steps will reproduce the problem?
  1. add a node constructed like pydot.Node('A', shape='box', style='rounded,dotted')
  2. use graph.write_raw() to emit the dot equivalent
    What is the expected output? What do you see instead?

expected output: A [style="rounded,dotted", shape=box];

actual output: A [style=rounded,dotted, shape=box];

Note the lack of quoting. dot sees only "rounded" and ignores "dotted".

What version of the product are you using? On what operating system?

svn r29 from http://pydot.googlecode.com/svn/trunk

Please provide any additional information below.

Here is my complete test script:

import pydot

graph = pydot.Dot(graph_type='digraph')
graph.add_node(pydot.Node('A', shape='box', style='rounded,dotted'))

graph.write_raw('twostyles.dot')

and here is the complete dot file that I expect from that script:

digraph G {
A [style="rounded,dotted", shape=box];
}

From: https://code.google.com/p/pydot/issues/detail?id=85

prmtl commented 9 years ago

Comment by gerg.w...@gmail.com, 2013-09-20T11:04:20Z

Oops, issue title is slightly misleading. I'm pretty sure this is a quoting bug. I got confused because using write_dot() creates output like

A [style=rounded, dotted=true, shape=box, ...];

I assume that's because dot interprets ",dotted" as an attribute with no value, so gives it the default value true. Issue title should be

Multiple styles not correctly rendered (quotes missing)