Можно ли получить вывод графика pydot без промежуточного файла?

у меня очень простой график, который я хочу построить как svg. Например:

# graph.dot
graph { 
        a -- b; 
        b -- c; 
    } 

в настоящее время я использую pydot для чтения файла, а затем генерирую svg-файл следующим образом:

import pydot
graphs = pydot.graph_from_dot_file('graph.dot')
graphs[0].write_svg('graph.svg') # there is only 1 graph so the 0 index.

однако мне нужно сделать это без необходимости промежуточных файлов graph.dot и graph.svg. У меня есть содержимое кода graph.dot в строке, соответствующей которой мне нужен вывод svg в строке.

мне нужно что-то вроде:

graph_dot = "... ..." # string, I have this
graph_svg = convert_dot_to_svg(graph_dot) 
# i need something like convert_dot_to_svg()

мой вопрос не ограничивается только pydot. Если кто-то знает веб-api, с помощью которого я могу это сделать, то и он будет делать.

большое спасибо, заранее.

1 ответов


Потратив еще некоторое время на просмотр доступных методов на pydot объект и graph объект, это можно понять:

работает следующий код:

import pydot    
dot_string = """graph { 
                    a -- b; 
                    b -- c; 
                } """

graphs = pydot.graph_from_dot_data( dot_string )
svg_string = graphs[0].create_svg()