Source code for edisgo.tools
import os
from contextlib import contextmanager
from sqlalchemy.orm import sessionmaker
if "READTHEDOCS" not in os.environ:
from egoio.tools.db import connection
Session = sessionmaker(bind=connection(readonly=True))
[docs]@contextmanager
def session_scope():
"""Function to ensure that sessions are closed properly."""
session = Session()
try:
yield session
except Exception:
session.rollback()
raise
finally:
session.close()