diff options
| author | Frederick Muriuki Muriithi | 2025-01-26 09:05:16 -0600 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2025-01-26 09:06:30 -0600 |
| commit | 500826f629ba822b5806e6f81ad642c43606c32d (patch) | |
| tree | 9b3091af868ab5815853604f457e24210c46949a /gn3/db_utils.py | |
| parent | a5095460a2ea2c2d9ec9e26930acd79edbea3679 (diff) | |
| download | genenetwork3-500826f629ba822b5806e6f81ad642c43606c32d.tar.gz | |
Use gn-libs' `database_connection` function.
Diffstat (limited to 'gn3/db_utils.py')
| -rw-r--r-- | gn3/db_utils.py | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/gn3/db_utils.py b/gn3/db_utils.py index 7004590..5ce5f00 100644 --- a/gn3/db_utils.py +++ b/gn3/db_utils.py @@ -7,6 +7,8 @@ from typing import Any, Iterator, Protocol, Callable import xapian import MySQLdb as mdb +from gn_libs.mysqldb import Connection, database_connection + LOGGER = logging.getLogger(__file__) @@ -68,27 +70,6 @@ def parse_db_url(sql_uri: str) -> dict: } -# pylint: disable=missing-class-docstring, missing-function-docstring, too-few-public-methods -class Connection(Protocol): - """Type Annotation for MySQLdb's connection object""" - def cursor(self, *args, **kwargs) -> Any: - """A cursor in which queries may be performed""" - - -@contextlib.contextmanager -def database_connection(sql_uri: str, logger: logging.Logger = LOGGER) -> Iterator[Connection]: - """Connect to MySQL database.""" - connection = mdb.connect(**parse_db_url(sql_uri)) - try: - yield connection - except mdb.Error as _mbde: - logger.error("DB error encountered", exc_info=True) - connection.rollback() - finally: - connection.commit() - connection.close() - - @contextlib.contextmanager def xapian_database(path): """Open xapian database read-only.""" |
