()
| 32 | |
| 33 | |
| 34 | def _get_connection() -> sqlite3.Connection: |
| 35 | if not hasattr(_local, "conn") or _local.conn is None: |
| 36 | _DB_PATH.parent.mkdir(parents=True, exist_ok=True) |
| 37 | conn = sqlite3.connect(str(_DB_PATH), check_same_thread=False) |
| 38 | conn.row_factory = sqlite3.Row |
| 39 | conn.execute("PRAGMA journal_mode=WAL") |
| 40 | conn.execute("PRAGMA foreign_keys=ON") |
| 41 | _local.conn = conn |
| 42 | return _local.conn |
| 43 | |
| 44 | |
| 45 | @contextmanager |