Added an error handling when the sql session crashes in process on network connection lost. (#352)

This commit is contained in:
Philipp Horstenkamp 2023-11-09 18:38:04 +01:00 committed by GitHub
parent ed08ffbfe1
commit fe02b0f6c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,9 @@
"""Data elements for Dash.""" """Data elements for Dash."""
import pandas as pd import pandas as pd
import sqlalchemy as sa
from cachetools import TTLCache, cached from cachetools import TTLCache, cached
from loguru import logger
from sqlalchemy.engine import Engine from sqlalchemy.engine import Engine
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
@ -74,11 +76,15 @@ def get_finance_data_of_one_company(session: Session, company_id: int) -> pd.Dat
Returns: Returns:
A dataframe containing all financial data of the selected company. A dataframe containing all financial data of the selected company.
""" """
annual_finance_data = ( query = session.query(entities.AnnualFinanceStatement).filter(
session.query(entities.AnnualFinanceStatement) entities.AnnualFinanceStatement.company_id == company_id # type: ignore
.filter(entities.AnnualFinanceStatement.company_id == company_id) # type: ignore
.all()
) )
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 engine = session.bind
if not isinstance(engine, Engine): if not isinstance(engine, Engine):