From 500826f629ba822b5806e6f81ad642c43606c32d Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Sun, 26 Jan 2025 09:05:16 -0600 Subject: Use gn-libs' `database_connection` function. --- gn3/db_utils.py | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) (limited to 'gn3/db_utils.py') 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.""" -- cgit 1.4.1