-
Notifications
You must be signed in to change notification settings - Fork 88
Closed
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behavior
Description
Bug Report
Description
pydot
fails given part table naming.
Reproducibility
Include:
- OS: MACOS
- Python Version:
3.10.4
- MySQL Version:
5.7
- MySQL Deployment Strategy:
local-docker
- DataJoint Version:
0.13.6
pydot
Version:1.4.2
Expected Behavior
Draw a diagram.
Minimum number of steps to reliably reproduce the issue
Make a part table.
import datajoint as dj
schema = dj.Schema("my_pipeline")
@schema
class Tabl1(dj.Manual):
definition = """
x: varchar(8)
"""
class Tabl2(dj.Part):
definition = """
-> Tabl1
y: varchar(8)
"""
dj.Diagram(schema)
Complete error stack as a result of evaluating the above steps
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
File ~/opt/conda/envs/element_data_model/lib/python3.10/site-packages/IPython/core/formatters.py:343, in BaseFormatter.__call__(self, obj)
[341](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/IPython/core/formatters.py?line=340) method = get_real_method(obj, self.print_method)
[342](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/IPython/core/formatters.py?line=341) if method is not None:
--> [343](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/IPython/core/formatters.py?line=342) return method()
[344](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/IPython/core/formatters.py?line=343) return None
[345](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/IPython/core/formatters.py?line=344) else:
File ~/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py:440, in Diagram._repr_svg_(self)
[439](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=438) def _repr_svg_(self):
--> [440](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=439) return self.make_svg()._repr_svg_()
File ~/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py:428, in Diagram.make_svg(self)
[425](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=424) def make_svg(self):
[426](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=425) from IPython.display import SVG
--> [428](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=427) return SVG(self.make_dot().create_svg())
File ~/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py:373, in Diagram.make_dot(self)
[310](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=309) label_props = { # http://matplotlib.org/examples/color/named_colors.html
[311](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=310) None: dict(
[312](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=311) shape="circle",
(...)
[366](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=365) ),
[367](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=366) }
[368](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=367) node_props = {
[369](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=368) node: label_props[d["node_type"]]
[370](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=369) for node, d in dict(graph.nodes(data=True)).items()
[371](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=370) }
--> [373](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=372) dot = nx.drawing.nx_pydot.to_pydot(graph)
[374](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=373) for node in dot.get_nodes():
[375](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/datajoint/diagram.py?line=374) node.set_shape("circle")
File ~/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py:220, in to_pydot(N)
[218](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=217) # Explicitly catch all node name parsing errors
[219](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=218) if len(str(n)) != len(p.get_name()):
--> [220](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=219) raise ValueError(
[221](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=220) f"{str(n)} is not a valid node name while using pydot. Please refer https://github.com/pydot/pydot/issues/258"
[222](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=221) )
[223](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=222) P.add_node(p)
[225](file:///Users/joseph/opt/conda/envs/element_data_model/lib/python3.10/site-packages/networkx/drawing/nx_pydot.py?line=224) if N.is_multigraph():
ValueError: Tabl1.Tabl2 is not a valid node name while using pydot. Please refer https://github.com/pydot/pydot/issues/258
<datajoint.diagram.Diagram at 0x127677790>
Metadata
Metadata
Assignees
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behavior