def to_dot(self, external_name = None, hierarchical = False, subgraph = False): if not external_name: external_name = "trivial" def header(): return "digraph " + external_name + "{\n rankdir=LR;\n" def ender(): return "}" pattern = """ %s [shape=Mrecord, label="%s"];\n""" inputs = " | ".join(ports_dot(self.inputs)) outputs = " | ".join(ports_dot(self.outputs)) ports_l = " | ".join((["{%s}" % inputs] if inputs else []) + (["{%s}" % outputs] if outputs else [])) label = "%s | {%s}" % (external_name, ports_l) if subgraph: return pattern % (external_name, label) else: return header() + pattern % (external_name, label) + ender()
def to_dot(self, external_name, hierarchical = False, subgraph = False): pattern = """ {rank = %s; %s [shape=Mrecord, label="%s"];}\n""" label = "|".join(ports_dot(self._inputs)) return pattern % ("sink", external_name, label)