Source code for msdss_data_api.tools
from msdss_base_database import Database
from .handlers import *
from .managers import *
[docs]def create_data_manager_func(database=None, permitted_tables=[], restricted_tables=DEFAULT_RESTRICTED_TABLES):
"""
Create a function yielding a :class:`msdss_data_api.managers.DataManager`.
Parameters
----------
database : :class:`msdss_base_database:msdss_base_database.core.Database` or None
Database object to use for APIs. If ``None``, a default database will be used.
permitted_tables : list(str)
List of permitted tables in the database that can only be accessed.
restricted_tables : list(str)
List of restricted tables in the database to prevent access to.
Returns
-------
func
A function yielding a preconfigured :class:`msdss_data_api.managers.DataManager`.
Author
------
Richard Wen <rrwen.dev@gmail.com>
Example
-------
.. jupyter-execute::
from msdss_base_database import Database
from msdss_data_api.tools import *
# Setup database
db = Database()
# Create a function yielding the data manager to use as a dependency
get_data_manager = create_data_manager_func(database=db)
"""
database = database if database else Database()
data_handler = DataHandler(database=database, permitted_tables=permitted_tables, restricted_tables=restricted_tables)
data_manager = DataManager(database=database, handler=data_handler)
async def out():
yield data_manager
return out