Comments (3)
pydantic-settigns
only loads the config for the models you are initializing(Config
in your example) and collect values for the model fields. so it only consider the parent model configs
from pydantic-settings.
Couple of points:
- Sub model has to inherit from
pydantic.BaseModel
- You need to use
env_nested_delimiter
on parent model
Here is the working example:
from pydantic import BaseModel
from pydantic_settings import BaseSettings, SettingsConfigDict
class NestedConfig(BaseModel):
foo: str = ""
class Config(BaseSettings):
nested: NestedConfig = NestedConfig()
bar: str = ""
model_config = SettingsConfigDict(
env_file=".env", env_file_encoding="utf-8", extra="ignore", case_sensitive=False, env_nested_delimiter="__"
)
print(Config())
from pydantic-settings.
@hramezani Thanks, that makes sense. Is it possible then to override model config for submodels somehow?
from pydantic-settings.
Related Issues (20)
- Typing JsonValue field HOT 2
- env source: superflous deep env conflicts with non-dict model
- BaseSettings fails to load nested models overridden by ENV with case_senitivity=False HOT 6
- Unable to create config with submodel named "api" HOT 2
- Unable to override loading of .env with .env.testing HOT 5
- Discriminated unions with callable discriminator don't work correctly. HOT 2
- Create default templates (feature request) HOT 2
- case_sensitive doesn't work in optional nested Settings models HOT 5
- Example from docs doesn't work can't import from pydantic.env_settings import SettingsSourceCallable HOT 1
- Can my custom PydanticBaseSettingsSource get values already retrieved from other PydanticBaseSettingsSources? HOT 2
- Comma delimited string as list of strings HOT 1
- Easily list the names of the env var required to set a field HOT 2
- Environment Variable Overrides Init Arguments in BaseSettings with Aliases HOT 5
- environment variables case sensitivity on windows HOT 3
- Can't read Pydantic Settings from stdin HOT 2
- Python 3.9 (and earlier I guess), and non PEP-484 type definitions with injector HOT 5
- Typing for multiple PathTypes (and support Traversable) for SettingsConfigDict json_file, toml_file, yaml_file, etc HOT 2
- Validation error for 3 levels of nested dicts in v2.3.0 HOT 7
- Field alias AttributeError: 'AliasChoices' object has no attribute 'lower' - CliSettingsSource HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pydantic-settings.