Files
home-automation/app/main.py
T

46 lines
1.1 KiB
Python

from contextlib import asynccontextmanager
from pathlib import Path
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from app.api.routes import pages, status
from app.config import get_settings
def ensure_runtime_dirs() -> None:
settings = get_settings()
if settings.sqlite_path is not None:
settings.sqlite_path.parent.mkdir(parents=True, exist_ok=True)
@asynccontextmanager
async def lifespan(_: FastAPI):
ensure_runtime_dirs()
yield
def create_app() -> FastAPI:
settings = get_settings()
app = FastAPI(
title=settings.app_name,
debug=settings.app_debug,
version="0.1.0",
lifespan=lifespan,
description=(
"Python rewrite skeleton for the home automation backend. "
"This stage provides only the foundation for future module migration."
),
)
static_dir = Path(__file__).parent / "static"
app.mount("/static", StaticFiles(directory=static_dir), name="static")
app.include_router(status.router)
app.include_router(pages.router)
return app
app = create_app()