CRUDKit update.

This commit is contained in:
Yaro Kasear 2025-09-08 11:56:29 -05:00
parent de29d45106
commit f1fa1f2407
8 changed files with 391 additions and 44 deletions

View file

@ -0,0 +1,20 @@
from __future__ import annotations
from flask import Flask
from sqlalchemy.orm import scoped_session
from ..engines import CRUDKitRuntime
from ..config import Config
def init_app(app: Flask, *, runtime: CRUDKitRuntime | None = None, config: type[Config] | None == None):
"""
Initializes CRUDKit for a Flask app. Provies `app.extensions['crudkit']`
with a runtime (engine + session_factory). Caller manages session lifecycle.
"""
runtime = runtime or CRUDKitRuntime(config=config)
app.extensions.setdefault("crudkit", {})
app.extensions["crudkit"]["runtime"] = runtime
Session = runtime.session_factory
if Session is not None:
app.extensions["crudkit"]["Session"] = scoped_session(Session)
return runtime