Skip to content

When a variable has the same two prefixes, the additional environment variable can't allow or forbid. #384

@gbaian10

Description

@gbaian10
from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    model_config = SettingsConfigDict(env_file=".env", extra="allow")

    POSTGRES_USER: str


print(Settings())

.env

POSTGRES_USER=postgres
POSTGRES_USER_2=postgres2  # can't allow or forbid
POSTGRES_NAME=name  # can allow or forbid

output miss POSTGRES_USER_2

POSTGRES_USER='postgres' postgres_name='name'

Replace allow with forbid.

pydantic_core._pydantic_core.ValidationError: 1 validation error for Settings
postgres_name
  Extra inputs are not permitted [type=extra_forbidden, input_value='name', input_type=str]
    For further information visit https://errors.pydantic.dev/2.9/v/extra_forbidden

Missing extra input for POSTGRES_USER_2 raise.


pydantic==2.9.1
pydantic-settings==2.4.0

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions