Skip to content

Instantly share code, notes, and snippets.

@afonasev
Created June 6, 2019 08:09
Show Gist options
  • Save afonasev/7e1470dcba42cda980eb621a417b8e3d to your computer and use it in GitHub Desktop.
Save afonasev/7e1470dcba42cda980eb621a417b8e3d to your computer and use it in GitHub Desktop.
Sqlalchemy session as contextmanager
@contextmanager
def session(*args: Any, **kwargs: Any) -> Iterator[sa.orm.Session]:
with closing(session_factory(*args, **kwargs)) as _session:
try:
yield _session
except Exception:
_session.rollback()
raise
else:
_session.commit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment