YAML Configuration ================== Load configurations from YAML files with full validation. Loading via CLI --------------- Use the ``--config`` flag to load from YAML:: python train.py --config config.yaml YAML file (config.yaml):: model: "efficientnet" learning_rate: 0.01 batch_size: 64 CLI arguments can override YAML values:: python train.py --config config.yaml --batch_size 128 Nested Configs -------------- :: # config.yaml name: "MyApp" database: host: "db.example.com" port: 5432 Polymorphic Configs ------------------- Use the ``type`` field to select variants:: # scheduler.yaml type: "priority" timeout: 60 levels: 10 Programmatic Loading -------------------- For direct YAML loading without CLI:: from vidhi import load_yaml_config, create_class_from_dict config_dict = load_yaml_config("config.yaml") config = create_class_from_dict(Config, config_dict) Serialization ------------- Convert configs to dictionaries for YAML/JSON output:: from vidhi import dataclass_to_dict config = AppConfig(name="test") config_dict = dataclass_to_dict(config) # {'name': 'test', 'port': 8080, 'debug': False} Polymorphic configs include the ``type`` field automatically.