From 0743db516f1193dccd19cda3dac80cb2643d6fec Mon Sep 17 00:00:00 2001 From: Lorenzo Venerandi <68255980+Lore09@users.noreply.github.com> Date: Wed, 29 Jan 2025 00:45:01 +0100 Subject: [PATCH] Create generator.py --- src/code_generator/generator.py | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/code_generator/generator.py diff --git a/src/code_generator/generator.py b/src/code_generator/generator.py new file mode 100644 index 0000000..2776828 --- /dev/null +++ b/src/code_generator/generator.py @@ -0,0 +1,40 @@ +import yaml +import shutil +import logging +import os +import src.code_generator.template_compiler as template_compiler + +def __parse_yaml(yaml_file): + with open(yaml_file, 'r') as stream: + try: + return yaml.safe_load(stream) + except yaml.YAMLError as exc: + print(exc) + return None + +def __remove_dir_if_exists(dir_path): + + if os.path.exists(dir_path): + if os.path.isdir(dir_path): + shutil.rmtree(dir_path) + +def generate(project_dir): + + # Parsing del file di configurazione + config = __parse_yaml(f"{project_dir}/workflow.yaml") + + if config is None: + logging.error("Error parsing workflow.yaml") + return + + # Rimozione della cartella di output + output_dir = f"{project_dir}/gen" + __remove_dir_if_exists(output_dir) + + # Creazione della cartella di output + os.makedirs(output_dir, exist_ok=True) + + # for each task in the workflow + for task in config['tasks']: + template_compiler.handle_task(task, output_dir) + \ No newline at end of file