48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
from errors.custom import NoPathError
|
|
from interpreter.NassiShneidermann import NassiShneidermanDiagram, Overwrite_behaviour, OB
|
|
|
|
from typing import Optional
|
|
import os
|
|
import logging
|
|
|
|
|
|
def nassi(input_path: str, output_path: str, outputname: str, gui, behaviour: Overwrite_behaviour, font_filepath: Optional[str]=None):
|
|
NSD = NassiShneidermanDiagram(gui.debug_mode)
|
|
directory = output_path + '/' + outputname
|
|
|
|
if font_filepath != None:
|
|
NSD.set_font(font_filepath)
|
|
|
|
try:
|
|
if not os.path.exists(directory):
|
|
os.makedirs(directory)
|
|
except OSError:
|
|
logging.error('Error: Creating directory. ' + directory)
|
|
except:
|
|
raise
|
|
|
|
NSD.load_from_file(input_path)
|
|
NSD.convert_to_image(directory, on_conflict=behaviour, x_size=750)
|
|
|
|
return directory
|
|
|
|
|
|
def output(folder):
|
|
if folder:
|
|
output_path = folder
|
|
else:
|
|
raise
|
|
|
|
if output_path == '':
|
|
raise NoPathError
|
|
try:
|
|
file_list = os.listdir(output_path)
|
|
except:
|
|
file_list = []
|
|
fnames = [
|
|
f
|
|
for f in file_list
|
|
if os.path.isfile(os.path.join(output_path, f))
|
|
and f.lower().endswith(('.png', '.gif'))
|
|
]
|
|
return fnames |