Comments (5)
Thanks @gsakkis for reporting this.
dotenv setting source consider extra
config. So
Pydantic settings consider extra config in case of dotenv file. It means if you set the extra=forbid (default) on model_config and your dotenv file contains an entry for a field that is not defined in settings model, it will raise ValidationError in settings construction.
This is not the case in env source because it will ignore the extra input.
You can ignore this behavior by adding extra='ignore'
to your config
from pydantic-settings.
Thanks @hramezani for the quick reply! I'm not sure how the quoted docs are relevant here; xxx__bar
does refer to a field defined in the model, it's not an extra
I want to ignore.
from pydantic-settings.
Sorry @gsakkis for misunderstanding. Now, I got your point.
I will prepare a patch to fix this bug
from pydantic-settings.
I've created #221 to fix it. it would be great to take a look or test it if you want
from pydantic-settings.
@gsakkis any chance you could review @hramezani's PR.
Ignore me, I see you already reviewed.
from pydantic-settings.
Related Issues (20)
- env_prefix applies to fields with alias when defined in dotenv file HOT 18
- Feature request: custom complex types
- How to build a cascading settings resolver HOT 2
- Option to create environment variables from .env file while still consuming it in the settings class HOT 2
- Reuse attributes inside settings class, and problem with overwriting them with env-vars HOT 2
- Passing an environment variable that should be parsed as `None` HOT 2
- Nested objects from environmental variables does not support JSON parsing of complex types HOT 3
- Give users the ability to override environment variables using SettingsConfigDict HOT 9
- A clearer `ValidationError` should be provided with `Optional` settings HOT 2
- We should use tomli not tomlkit HOT 1
- apparent breaking change in `DotEnvSettingsSource` when `extra="allow"`
- Field with alias leads to ValidationError in v2.2.0 HOT 4
- 2.2.0 broke support for nested BaseSettings with base type (e.g. using ABC) HOT 5
- Release 2.2 breaks enviroment prefix HOT 16
- .env file values take precedence over environment variables in BaseSettings HOT 2
- Feature request: Add `_init_ignore_none` to BaseSettings HOT 4
- Regression in customizing sources in pydantic V2 HOT 6
- Problems with nested settings in pydantic-settings v2.2.1 HOT 2
- `PyprojectTomlConfigSettingsSource` or extend `TomlConfigSettingsSource` HOT 1
- Default field value priority is not consistent with setting sources priority 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.