mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-10 06:40:39 -08:00
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import logging
|
|
import sqlite3
|
|
import time
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class SqliteDB:
|
|
def __init__(self, db_path: str) -> None:
|
|
self.db_path = db_path
|
|
self.connection = sqlite3.connect(self.db_path)
|
|
logger.debug("Enabling WAL mode for concurrent access")
|
|
self.connection.execute("PRAGMA journal_mode=WAL;")
|
|
self.connection.close()
|
|
self.connection = None
|
|
|
|
def __enter__(self):
|
|
logger.debug("Starting new connection...")
|
|
start_time = time.time()
|
|
self.connection = sqlite3.connect(self.db_path)
|
|
logger.debug(
|
|
"Successfully got a new connection in {} seconds".format(
|
|
time.time() - start_time
|
|
)
|
|
)
|
|
return self.connection
|
|
|
|
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
if self.connection:
|
|
logger.debug("Closing connection to cache db")
|
|
self.connection.commit()
|
|
self.connection.close()
|
|
self.connection = None
|
|
logger.debug("Successfully closed connection to cache db")
|