Skip to content

Nested Alias Path Environment Variables Not Handled #670

@kschwab

Description

@kschwab

Nested alias paths for environment variables are not handled:

from pydantic import AliasPath, BaseModel, Field
from pydantic_settings import BaseSettings, SettingsConfigDict
import os

class Nested(BaseModel):
    alias_path: str = Field(validation_alias=AliasPath('path', 0))
    alias: str = Field(validation_alias='no_path')


class Cfg(BaseSettings, env_nested_delimiter='__'):
    nest: Nested


os.environ['NEST__PATH'] = '["hello"]'
os.environ['NEST__NO_PATH'] = 'hello'

print(Cfg().model_dump())
"""
pydantic_core._pydantic_core.ValidationError: 1 validation error for Cfg
nest.path.0
  Field required [type=missing, input_value={'no_path': 'hello', 'path': '["hello"]'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.11/v/missing
"""

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions