Skip to content

Config Generation


Utils for generating yaml files based on given Pydantic model

ConfigEnum

Bases: Enum

Enumerate pydantic configurations based on usage

Source code in conftrainer/confgen/utils.py
class ConfigEnum(Enum):
    """Enumerate pydantic configurations based on usage"""
    byol = [BYOLTrainConfig, InferConfig]
    classifier = [ClassifierTrainConfig, EvalConfig, InferConfig]
    multibranch = [MultiBranchTrainConfig, MultiBranchEvalConfig, InferConfig]
    modification = [MultipleNetModifyConfig]

save_dummy_config(option, save_dir)

Generate and save a dummy config with null values to given directory

Source code in conftrainer/confgen/utils.py
def save_dummy_config(option: str, save_dir: str) -> None:
    """Generate and save a dummy config with null values to given directory"""
    models = getattr(ConfigEnum, option).value
    os.makedirs(save_dir, exist_ok=True)
    for model in models:
        filename = model.__name__.lower() + '.yaml'
        save_path = os.path.join(save_dir, filename)
        obj = model.generate_dummy_model()
        save_yaml(obj, save_path)

parse_generate_args()

Parse arguments to generate and save configs

Source code in conftrainer/confgen/utils.py
def parse_generate_args() -> argparse.Namespace:
    """Parse arguments to generate and save configs"""
    option_choices = [e.name for e in ConfigEnum]
    parser = argparse.ArgumentParser()
    parser.add_argument("--option", "--for", type=str, choices=option_choices,
                        help=f"Config type to generate: {option_choices}")
    parser.add_argument("--save_dir", type=str, required=True,
                        help="Path to save the generated config")
    argcomplete.autocomplete(parser)
    args = parser.parse_args()

    return args