Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pydantic: env_nested_delimiter for a nested list

Pydantic introduced in version 1.9-ish env_nested_delimiter, a mechanism for parsing env vars in a convenient way.

I have this module in settings:

from pydantic import BaseModel, BaseSettings


class SubModel(BaseModel):
    v1: str
    v2: bytes
    v3: int


class Settings(BaseSettings):
    v0: str
    sub_models: [SubModel]

    class Config:
        env_nested_delimiter = '__'


print(Settings().dict())

Is there a way to define elements of my sub_models (a list of SubModel instances) in the .env file with delimiters? I've already tried:

SUB_MODELS__0__SUB_MODEL__V2=00
SUB_MODELS__0__SUB_MODEL__V3=01
SUB_MODELS__0__SUB_MODEL__DEEP__V4=01

SUB_MODELS__1__SUB_MODEL__V2=nested-10
SUB_MODELS__1__SUB_MODEL__V3=11
SUB_MODELS__1__SUB_MODEL__DEEP__V4=12

but it did not work. I'm not sure if it's possibile with the current version of pydantic. Maybe delimiters are just restricted to dict-like data structures.

like image 439
floatingpurr Avatar asked Oct 24 '25 06:10

floatingpurr


1 Answers

Looking into the source code, it seems not possibile. At least in version 1.9.0.

like image 110
floatingpurr Avatar answered Oct 25 '25 19:10

floatingpurr



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!