Source code for pyensae.graphhelper.graphviz_helper

# -*- coding: utf-8 -*-
"""
Various functions about graphviz.

.. versionadded:: 1.1


:githublink:`%|py|8`
"""

import os
from pyquickhelper.helpgen.conf_path_tools import find_graphviz_dot
from pyquickhelper.loghelper import run_cmd


[docs]def dot_exe(): """ retrieve graphivz executable :return: filename .. versionadded:: 1.1 :githublink:`%|py|21` """ r = find_graphviz_dot() if r is None: raise FileNotFoundError("unable to find graphviz") return r
[docs]def run_dot(dot_file, outimg): """ calls graphivz on a dot file and produces an image :param dot_file: file, format `DOT <http://www.graphviz.org/doc/info/lang.html>`_ :param outimg: output image :return: out, err (stdout, stderr from graphviz) .. versionadded:: 1.1 :githublink:`%|py|37` """ ext = os.path.splitext(outimg)[-1].strip(".") exe = dot_exe() cmd = "\"{0}\" -T{1} -o{2} {3}".format(exe, ext, outimg, dot_file) out, err = run_cmd(cmd, wait=True) if len(err) > 0: raise Exception("unable to run graphviz on {0}.\nCMD:\n{1}\nOUT:\n{2}\nERR:\n{3}".format( dot_file, cmd, out, err)) return out, err