35 lines
706 B
Python
35 lines
706 B
Python
|
from pydantic_settings import BaseSettings
|
||
|
from pydantic import BaseModel
|
||
|
from pathlib import Path
|
||
|
|
||
|
import logging
|
||
|
|
||
|
BASE_DIR = Path(__file__).parent.parent
|
||
|
|
||
|
DB_PATH = BASE_DIR / "db.sqlite3"
|
||
|
|
||
|
|
||
|
class DbSettings(BaseModel):
|
||
|
url: str = f"sqlite+aiosqlite:///{DB_PATH}"
|
||
|
echo: bool = False
|
||
|
|
||
|
|
||
|
class Settings(BaseSettings):
|
||
|
api_v1_prefix: str = "/api/v1"
|
||
|
|
||
|
db: DbSettings = DbSettings()
|
||
|
|
||
|
|
||
|
settings = Settings()
|
||
|
|
||
|
|
||
|
def config_logging(level=logging.INFO):
|
||
|
logging.basicConfig(
|
||
|
level=level,
|
||
|
datefmt="%Y-%m-%d %H:%M:%S",
|
||
|
format="[%(asctime)s.%(msecs)03d] %(module)-15s:%(lineno)4d | %(funcName)-20s| %(levelname)-8s | %(message)s",
|
||
|
)
|
||
|
|
||
|
|
||
|
config_logging(level=logging.INFO)
|