Path 1: 11 calls (1.0)

'classes.dot' (2) 'packages_No_Name.dot' (2) 'classes_No_Name.dot' (2) 'packages_colorized.dot' (2) 'classes_colorized.dot' (2) '/private/var/folders/...

1def generate(self, outputfile: str) -> None:
2        self._close_graph()
3        graphviz_extensions = ("dot", "gv")
4        name = self.title
5        if outputfile is None:
6            target = "png"
7            pdot, dot_sourcepath = tempfile.mkstemp(".gv", name)
8            ppng, outputfile = tempfile.mkstemp(".png", name)
9            os.close(pdot)
10            os.close(ppng)
11        else:
12            target = Path(outputfile).suffix.lstrip(".")
13            if not target:
14                target = "png"
15                outputfile = outputfile + "." + target
16            if target not in graphviz_extensions:
17                pdot, dot_sourcepath = tempfile.mkstemp(".gv", name)
18                os.close(pdot)
19            else:
20                dot_sourcepath = outputfile
21        with open(dot_sourcepath, "w", encoding="utf8") as outfile:
22            outfile.writelines(self.lines)
23        if target not in graphviz_extensions:
24            subprocess.run(
25                ["dot", "-T", target, dot_sourcepath, "-o", outputfile], check=True
26            )
27            os.unlink(dot_sourcepath)