diff --git a/joj3_config_generator/loader.py b/joj3_config_generator/loader.py index 1678a31..26369dc 100644 --- a/joj3_config_generator/loader.py +++ b/joj3_config_generator/loader.py @@ -12,6 +12,16 @@ from joj3_config_generator.models.common import Memory, Time from joj3_config_generator.utils.logger import logger +def is_toml_empty(toml_path: Path) -> bool: + if toml_path.stat().st_size == 0: + return True + try: + data = tomli.loads(toml_path.read_text()) + return not data + except tomli.TOMLDecodeError: + return False + + def load_joj3_task_toml_answers() -> answer.Answers: name = inquirer.text("What's the task name?", default="hw0") language = inquirer.list_input( diff --git a/joj3_config_generator/main.py b/joj3_config_generator/main.py index a14c2ad..a75dfc5 100644 --- a/joj3_config_generator/main.py +++ b/joj3_config_generator/main.py @@ -13,6 +13,7 @@ from joj3_config_generator.generator import ( create_joj3_task_conf, ) from joj3_config_generator.loader import ( + is_toml_empty, load_joj1_yaml, load_joj3_task_toml_answers, load_joj3_toml, @@ -106,7 +107,7 @@ def convert( for task_toml_path in repo_toml_path.parent.glob("**/*.toml"): if repo_toml_path == task_toml_path: continue - if len(task_toml_path.read_bytes()) == 0: + if is_toml_empty(task_toml_path): logger.info(f"Skipping empty task toml file {task_toml_path}") continue toml_name = task_toml_path.name.removesuffix(".toml")