def _render_node(self, node):
"""
Renders a node. Recursive callee for node rendering.
:param node: the representation of a node (dependent of rendered data structure)
:return: node id of created node
"""
if isinstance(node, (str, numbers.Number)) or node is None:
node_id = uuid()
else:
node_id = id(node)
node_id = str(node_id)
if node_id not in self._rendered:
self._rendered.add(node_id)
if isinstance(node, dict):
self._render_dict(node, node_id)
elif isinstance(node, list):
self._render_list(node, node_id)
else:
self._graph.node(node_id, label=self._escape_label(self._shorten_label(repr(node))))
return node_id
评论列表
文章目录