You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
484 B
17 lines
484 B
1 year ago
|
from __future__ import annotations
|
||
|
|
||
|
import typing as t
|
||
|
|
||
|
from flask import current_app
|
||
|
|
||
|
|
||
|
def add_models_to_shell() -> dict[str, t.Any]:
|
||
|
"""Registered with :meth:`~flask.Flask.shell_context_processor` if
|
||
|
``add_models_to_shell`` is enabled. Adds the ``db`` instance and all model classes
|
||
|
to ``flask shell``.
|
||
|
"""
|
||
|
db = current_app.extensions["sqlalchemy"]
|
||
|
out = {m.class_.__name__: m.class_ for m in db.Model._sa_registry.mappers}
|
||
|
out["db"] = db
|
||
|
return out
|