diff options
author | Arun Isaac | 2022-10-26 14:21:55 +0530 |
---|---|---|
committer | Arun Isaac | 2022-10-26 14:21:55 +0530 |
commit | 6a9db0c1734a22e792f2204c029810ca1cea7f86 (patch) | |
tree | c3c4062d368a1302179f174e8ba59f65686febe8 /gn3/db_utils.py | |
parent | 03852be20b7e554a7b228e08ab369bfba51fbde2 (diff) | |
download | genenetwork3-6a9db0c1734a22e792f2204c029810ca1cea7f86.tar.gz |
Add xapian database connection context manager.
* gn3/settings.py (XAPIAN_DB_PATH): New variable.
* gn3/db_utils.py: Import xapian and XAPIAN_DB_PATH from gn3.settings.
(xapian_database): New function.
Diffstat (limited to 'gn3/db_utils.py')
-rw-r--r-- | gn3/db_utils.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gn3/db_utils.py b/gn3/db_utils.py index 69e88a5..ead0c5b 100644 --- a/gn3/db_utils.py +++ b/gn3/db_utils.py @@ -3,7 +3,8 @@ import contextlib from typing import Any, Iterator, Protocol, Tuple from urllib.parse import urlparse import MySQLdb as mdb -from gn3.settings import SQL_URI +import xapian +from gn3.settings import SQL_URI, XAPIAN_DB_PATH def parse_db_url() -> Tuple: @@ -42,3 +43,14 @@ def database_connection() -> Iterator[Connection]: yield connection finally: connection.close() + + +@contextlib.contextmanager +def xapian_database(): + """Open xapian database read-only.""" + # pylint: disable-next=invalid-name + db = xapian.Database(XAPIAN_DB_PATH) + try: + yield db + finally: + db.close() |