Context manager for database sessions with automatic commit/rollback. Includes retry logic for SQLite busy database errors. Yields: SQLAlchemy session
()
| 199 | |
| 200 | @contextmanager |
| 201 | def _get_session(): |
| 202 | """ |
| 203 | Context manager for database sessions with automatic commit/rollback. |
| 204 | |
| 205 | Includes retry logic for SQLite busy database errors. |
| 206 | |
| 207 | Yields: |
| 208 | SQLAlchemy session |
| 209 | """ |
| 210 | _, SessionLocal = _get_engine() |
| 211 | session = SessionLocal() |
| 212 | try: |
| 213 | yield session |
| 214 | session.commit() |
| 215 | except Exception: |
| 216 | session.rollback() |
| 217 | raise |
| 218 | finally: |
| 219 | session.close() |
| 220 | |
| 221 | |
| 222 | def _with_retry(func, *args, **kwargs): |
no test coverage detected