You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
994 B
36 lines
994 B
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
from pydantic import BaseModel
|
|
|
|
class UvicornSettings(BaseModel):
|
|
host: str = "0.0.0.0"
|
|
port: int = 8000
|
|
reload: bool = True
|
|
|
|
class DatabaseSettings(BaseModel):
|
|
url: str
|
|
echo:bool=False
|
|
echo_pool:bool=False
|
|
pool_size: int = 50
|
|
max_overflow: int =10
|
|
convention:dict = {
|
|
"ix": "ix_%(column_0_label)s",
|
|
"uq": "uq_%(table_name)s_%(column_0_name)s",
|
|
"ck": "ck_%(table_name)s_%(constraint_name)s",
|
|
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
|
|
"pk": "pk_%(table_name)s",
|
|
}
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(
|
|
env_file=".env",
|
|
case_sensitive=False,
|
|
env_nested_delimiter="__",
|
|
env_prefix="APP_CONFIG__"
|
|
)
|
|
database: DatabaseSettings
|
|
uvicorn: UvicornSettings = UvicornSettings()
|
|
|
|
|
|
|
|
settings = Settings()
|
|
print(settings.database.url)
|