55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
from pydantic import BaseModel
|
|
from pydantic import PostgresDsn
|
|
from pydantic import MariaDBDsn
|
|
from pydantic import MySQLDsn
|
|
from pydantic_settings import (
|
|
BaseSettings,
|
|
SettingsConfigDict,
|
|
)
|
|
|
|
|
|
class RunConfig(BaseModel):
|
|
host: str = '0.0.0.0'
|
|
port: int = 8000
|
|
reload: bool = True
|
|
|
|
|
|
class ApiV1Prefix(BaseModel):
|
|
prefix: str = '/v1'
|
|
users: str = '/users'
|
|
|
|
|
|
class ApiPrefix(BaseModel):
|
|
prefix: str = '/api'
|
|
v1: ApiV1Prefix = ApiV1Prefix()
|
|
|
|
|
|
class DatabaseConfig(BaseModel):
|
|
url: PostgresDsn
|
|
echo: bool = False
|
|
echo_pool: bool = False
|
|
pool_size: int = 50
|
|
max_overflow: int = 10
|
|
|
|
naming_convention: dict[str, str] = {
|
|
'ix': 'ix_%(column_0_label)s',
|
|
'uq': 'uq_%(table_name)s_%(column_0_N_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=('D:\PythonScripts\sipi-web\sipi-app\.env', 'sipi-app/.env'),
|
|
case_sensitive=False,
|
|
env_nested_delimiter='__',
|
|
env_prefix='SIPI_CONFIG__',
|
|
)
|
|
run: RunConfig = RunConfig()
|
|
api: ApiPrefix = ApiPrefix()
|
|
db: DatabaseConfig
|
|
|
|
|
|
settings = Settings() |