from pathlib import Path from flask import Flask from sqlalchemy import create_engine from sqlalchemy.orm import DeclarativeBase, Session, scoped_session, sessionmaker engine = None SessionLocal: scoped_session[Session] class Base(DeclarativeBase): pass def init_db(app: Flask) -> None: # noqa: ARG001 global engine, SessionLocal # noqa: PLW0603 Path("./instance").mkdir(exist_ok=True) engine = create_engine("sqlite:///instance/app.db", echo=True, future=True) session_local = scoped_session(sessionmaker(bind=engine)) if session_local is None: raise RuntimeError SessionLocal = session_local from . import models # noqa: F401, PLC0415 Base.metadata.create_all(bind=engine)