Files
folkugat-web/folkugat_web/dal/sql/_connection.py
2025-03-09 20:00:54 +01:00

24 lines
515 B
Python

import sqlite3
from contextlib import contextmanager
from typing import Iterator, Optional
from folkugat_web.config.db import DB_FILE
Connection = sqlite3.Connection
@contextmanager
def get_connection(con: Optional[Connection] = None) -> Iterator[Connection]:
if con:
yield con
else:
con = sqlite3.connect(DB_FILE)
try:
yield con
con.commit()
except Exception:
con.rollback()
raise
finally:
con.close()