-
- Notifications
You must be signed in to change notification settings - Fork 108
Closed
Description
@hramezani, is the below case expected or a bug? I would have thought them to be equivalent. I came across this when updating the CLI handling of defaults. I'll work to resolve it if it's a bug but wanted to confirm first before proceeding forward.
I added a potential fix if it is an issue.
import os from pydantic import BaseModel, ValidationError from pydantic_settings import BaseSettings class NestedA(BaseModel): v0: bool v1: bool class NestedB(BaseModel): v0: bool = False v1: bool = True class SettingsGood(BaseSettings, env_nested_delimiter='__'): nested: NestedB = NestedB() class SettingsBad(BaseSettings, env_nested_delimiter='__'): nested: NestedA = NestedA(v0=False, v1=True) os.environ['NESTED__V0'] = 'True' print(SettingsGood().model_dump()) """ {'nested': {'v0': True, 'v1': True}} """ try: print(SettingsBad().model_dump()) except ValidationError as e: print(e) """ 1 validation error for SettingsBad nested.v1 Field required [type=missing, input_value={'v0': 'True'}, input_type=dict] """braindevicesbraindevices
Metadata
Metadata
Assignees
Labels
No labels