Back to snippets
pydantic_settings_env_config_with_aliases_and_dsn_validation.py
pythonDefines a configuration model that automatically reads settings from e
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)