1#!/usr/bin/env python3 2import sys, subprocess, tempfile, os, networkx as nx 3from pathlib import Path 4from miz_parser import parse_mizar # 解析だけ借用 5 6def main(): 7 if len(sys.argv) != 2: 8 sys.exit("usage: miz2svg.py <file.miz>") 9 miz = Path(sys.argv[1]).resolve() 10 G = parse_mizar(miz) 11 dot = nx.nx_pydot.to_pydot(G).to_string() 12 13 with tempfile.NamedTemporaryFile('w+', delete=False, suffix='.dot') as f: 14 f.write(dot); dot_path = f.name 15 try: 16 svg = subprocess.check_output(['dot', '-Tsvg', dot_path]) 17 sys.stdout.buffer.write(svg) # ← stdout に SVG 18 finally: 19 os.remove(dot_path) 20 21if __name__ == '__main__': main() 22