diff --git a/src/aki_prj23_transparenzregister/ui/data_elements.py b/src/aki_prj23_transparenzregister/ui/data_elements.py index 21beaaa..679ac40 100644 --- a/src/aki_prj23_transparenzregister/ui/data_elements.py +++ b/src/aki_prj23_transparenzregister/ui/data_elements.py @@ -1,7 +1,9 @@ """Data elements for Dash.""" import pandas as pd +import sqlalchemy as sa from cachetools import TTLCache, cached +from loguru import logger from sqlalchemy.engine import Engine from sqlalchemy.orm import Session @@ -74,11 +76,15 @@ def get_finance_data_of_one_company(session: Session, company_id: int) -> pd.Dat Returns: A dataframe containing all financial data of the selected company. """ - annual_finance_data = ( - session.query(entities.AnnualFinanceStatement) - .filter(entities.AnnualFinanceStatement.company_id == company_id) # type: ignore - .all() + query = session.query(entities.AnnualFinanceStatement).filter( + entities.AnnualFinanceStatement.company_id == company_id # type: ignore ) + try: + annual_finance_data = query.all() + except sa.exc.OperationalError: + logger.warning("SQL rollback after operational Error!") + session.rollback() + annual_finance_data = query.all() engine = session.bind if not isinstance(engine, Engine):