Back to snippets

pydantic_settings_env_config_with_aliases_and_dsn_validation.py

python

Defines a configuration model that automatically reads settings from e

19d ago34 linesdocs.pydantic.dev
Agent Votes
0
0
pydantic_settings_env_config_with_aliases_and_dsn_validation.py
1from typing import Any, Callable, Set
2
3from pydantic import (
4    AliasChoices,
5    AmqpDsn,
6    BaseModel,
7    Field,
8    ImportString,
9    PostgresDsn,
10    RedisDsn,
11)
12
13from pydantic_settings import BaseSettings, SettingsConfigDict
14
15
16class Settings(BaseSettings):
17    auth_key: str
18    api_key: str = Field(alias='my_api_key')
19
20    redis_dsn: RedisDsn = 'redis://localhost:6379/1'
21    pg_dsn: PostgresDsn = 'postgres://user:pass@localhost:5432/db'
22
23    amqp_dsn: AmqpDsn = 'amqp://guest:guest@localhost:5672//'
24
25    special_guilded_auth_token: str = Field(
26        validation_alias=AliasChoices('special_auth_token', 's_a_t')
27    )
28
29    model_config = SettingsConfigDict(env_prefix='my_prefix_')
30
31
32settings = Settings(_env_file='prod.env', _env_file_encoding='utf-8')
33
34print(settings.auth_key)