From 7e88bac83aa9279a4bdc347078c8301778f85d2f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 9 Jul 2025 08:23:15 +0530 Subject: [PATCH] Expose sqlite transaction via db.new_api --- src/calibre/db/backend.py | 6 ++++++ src/calibre/db/cache.py | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index 74942f6831..d6c7298e26 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -1476,6 +1476,12 @@ class DB: self.user_version = 1 # }}} + def __enter__(self): + self.conn.__enter__() + + def __exit__(self, exc_type, exc_value, tb): + self.conn.__exit__(exc_type, exc_value, tb) + def clone_for_readonly_access(self, dest_dir: str) -> str: dbpath = os.path.abspath(self.conn.db_filename('main')) clone_db_path = os.path.join(dest_dir, os.path.basename(dbpath)) diff --git a/src/calibre/db/cache.py b/src/calibre/db/cache.py index 7ec82f9c2b..3c599c6f9d 100644 --- a/src/calibre/db/cache.py +++ b/src/calibre/db/cache.py @@ -294,6 +294,12 @@ class Cache: def last_modified(self): return self.backend.last_modified() + def __enter__(self): + self.backend.__enter__() + + def __exit__(self, exc_type, exc_value, tb): + self.backend.__exit__(exc_type, exc_value, tb) + @write_api def clear_caches(self, book_ids=None, template_cache=True, search_cache=True): if template_cache: