From 66a6593daf4580f3056c96ccfc658b556ea619fc Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 1 Sep 2022 15:51:43 +0530 Subject: Add xapian database connection utilities. * etc/default_settings.py (XAPIAN_DB_PATH): New variable. * wqflask/wqflask/database.py: Import xapian. (xapian_database, xapian_writable_database): New functions. --- wqflask/wqflask/database.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'wqflask') diff --git a/wqflask/wqflask/database.py b/wqflask/wqflask/database.py index 505f4bd2..d392f1d1 100644 --- a/wqflask/wqflask/database.py +++ b/wqflask/wqflask/database.py @@ -8,6 +8,7 @@ import contextlib #: type: ignore import MySQLdb +import xapian class Connection(Protocol): @@ -65,3 +66,21 @@ def database_connection() -> Iterator[Connection]: connection.commit() finally: connection.close() + + +@contextlib.contextmanager +def xapian_database(): + """Open xapian database read-only.""" + # pylint: disable-next=invalid-name + db = xapian.Database(get_setting("XAPIAN_DB_PATH")) + yield db + db.close() + + +@contextlib.contextmanager +def xapian_writable_database(): + """Open xapian database for writing.""" + # pylint: disable-next=invalid-name + db = xapian.WritableDatabase(get_setting("XAPIAN_DB_PATH")) + yield db + db.close() -- cgit v1.2.3