def session_scope(): """Provide a transactional scope around a series of operations.""" try: yield session session.commit() except: session.rollback() raise finally: session.close()
def quit(self): try: if self.background_worker.is_alive(): logger.info('Stopping background worker') self.background_worker.stop() try: user = session.query(User).filter(User.logged_in).one() except NoResultFound: pass else: logger.info('Saving user data') save(session, user) session.close() finally: logger.info('Quitting application') QApplication.instance().quit()