# Copyright (c) 2023 Egor Tensin # This file is part of the "cimple" project. # For details, see https://github.com/egor-tensin/cimple. # Distributed under the MIT License. from contextlib import closing, contextmanager import logging import sqlite3 class Database: def __init__(self, path): logging.info('Opening SQLite database: %s', path) self.conn = sqlite3.connect(f'file:{path}?mode=ro', uri=True) def __enter__(self): return self def __exit__(*args): self.conn.close() @contextmanager def get_cursor(self): with closing(self.conn.cursor()) as cur: yield cur def get_all_runs(self): with self.get_cursor() as cur: cur.execute('SELECT * FROM cimple_runs_readable') return cur.fetchall()