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.
 
 

42 lines
1.1 KiB

from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import BaseModel
class RunSettings(BaseModel):
host: str = "0.0.0.0"
port: int = 8000
class APIV1Prefix(BaseModel):
prefix:str = "/v1"
user:str = "/user"
login:str = "/login"
class APIPrefix(BaseModel):
prefix:str = "/api"
v1: APIV1Prefix = APIV1Prefix()
class DatabaseConfig(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__"
)
run: RunSettings = RunSettings()
db: DatabaseConfig
api: APIPrefix = APIPrefix()
settings = Settings()