Files
MyManagingTools/src/utils/Datahelper.py

27 lines
829 B
Python

from dataclasses import is_dataclass
from components.datagrid_new.db_management import DataGridDbManager
from core.Expando import Expando
class DataHelper:
@staticmethod
def get(session, settings_manager, repository_name, table_name, object_type=None):
key = repository_name, table_name
datagrid_db = DataGridDbManager(session, settings_manager, key)
dataframe = datagrid_db.load_dataframe()
if dataframe is None:
return []
if object_type:
if is_dataclass(object_type):
return [object_type(**row) for row in dataframe.to_dict(orient="records")]
elif object_type is Expando:
return [Expando(row) for row in dataframe.to_dict(orient="records")]
else:
raise ValueError("object_type must be a dataclass type")
else:
return dataframe