-
Tomáš Orviský authored3dce63fd
main.py 1.24 KiB
import argparse
import pathlib
from manim import *
from pyplaml.diagram_layout import DotLayout
from pyplaml import PUMLParser
class MainScene(ZoomedScene):
file: str
scale_x: float
scale_y: float
def construct(self):
self.camera.background_color = WHITE
Text.set_default(font_size=16)
diagram = PUMLParser(debug=False).parse_file(self.file)
diagram.layout = DotLayout()
diagram.apply_layout(self.scale_x, self.scale_y)
self.add(diagram)
self.camera.auto_zoom(self.mobjects, margin=0.5, animate=False)
if __name__ == "__main__":
argparser = argparse.ArgumentParser(prog="pyplaml")
argparser.add_argument("file", help="Path to .puml file")
argparser.add_argument("-sx", "--scale-x", default=1, type=float, help="Scale for x-axis")
argparser.add_argument("-sy", "--scale-y", default=1, type=float, help="Scale for y-axis")
args = argparser.parse_args()
src_file = pathlib.Path(args.file)
if not src_file.is_file():
raise FileNotFoundError(f"File not found: {args.file}")
config.output_file = src_file.stem
scene = MainScene()
scene.file = args.file
scene.scale_x = args.scale_x
scene.scale_y = args.scale_y
scene.render()