Create generator.py

This commit is contained in:
Lorenzo Venerandi
2025-01-29 00:45:01 +01:00
parent 1e3109d901
commit 0743db516f

View File

@@ -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)