From c7b02f17a26dbeee1f81a1a9f77338a0d58d18d2 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Thu, 26 Jun 2025 08:28:16 -0400 Subject: [PATCH] fix: unnecessary fields check alias --- joj3_config_generator/loader.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/joj3_config_generator/loader.py b/joj3_config_generator/loader.py index 5da86bf..eff0c83 100644 --- a/joj3_config_generator/loader.py +++ b/joj3_config_generator/loader.py @@ -5,7 +5,7 @@ from typing import Any, Dict, Tuple, Type, cast import inquirer import tomli import yaml -from pydantic import BaseModel +from pydantic import AliasChoices, BaseModel from joj3_config_generator.models import answer, joj1, repo, task from joj3_config_generator.models.common import Memory, Time @@ -83,8 +83,16 @@ def load_joj3_toml( f"{current_path}.{field_name}" if current_path else field_name ) toml_field_name = field_name - if field_info.alias in input_dict: - toml_field_name = field_info.alias + if field_info.validation_alias: + if isinstance(field_info.validation_alias, str): + if field_info.validation_alias in input_dict: + toml_field_name = field_info.validation_alias + elif isinstance(field_info.validation_alias, AliasChoices): + for choice in field_info.validation_alias.choices: + if choice in input_dict: + if isinstance(choice, str): + toml_field_name = choice + break if toml_field_name not in input_dict: continue toml_value = input_dict[toml_field_name]