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."""
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):