Files
folkugat-web/folkugat_web/dal/sql/_connection.py
2025-03-22 23:06:34 +01:00

24 lines
512 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: Connection | None = 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()