From e4b8116c98590f7e38383227eede537a1fdc44ed Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Tue, 8 Aug 2023 05:17:42 +0300 Subject: Fix type-checking errors --- gn_auth/auth/db/__init__.py | 2 +- gn_auth/auth/db/mariadb.py | 16 ++++++++++++++-- gn_auth/auth/db/protocols.py | 14 -------------- gn_auth/auth/db/sqlite3.py | 18 ++++++++++++++++-- 4 files changed, 31 insertions(+), 19 deletions(-) (limited to 'gn_auth') diff --git a/gn_auth/auth/db/__init__.py b/gn_auth/auth/db/__init__.py index 7bdb38a..4d56804 100644 --- a/gn_auth/auth/db/__init__.py +++ b/gn_auth/auth/db/__init__.py @@ -1,2 +1,2 @@ """Unified database connections module.""" -from .protocols import DbCursor, DbConnection +from .protocols import DbCursor diff --git a/gn_auth/auth/db/mariadb.py b/gn_auth/auth/db/mariadb.py index 69c1d8e..35f6947 100644 --- a/gn_auth/auth/db/mariadb.py +++ b/gn_auth/auth/db/mariadb.py @@ -3,11 +3,23 @@ import logging import traceback import contextlib from urllib.parse import urlparse -from typing import Tuple, Iterator +from typing import Any, Tuple, Protocol, Iterator import MySQLdb as mdb -from .protocols import DbConnection +class DbConnection(Protocol): + """Type annotation for a generic database connection object.""" + def cursor(self, *args, **kwargs) -> Any: + """A cursor object""" + ... + + def commit(self, *args, **kwargs) -> Any: + """Commit the transaction.""" + ... + + def rollback(self) -> Any: + """Rollback the transaction.""" + ... def parse_db_url(sql_uri: str) -> Tuple: """Parse SQL_URI env variable note:there is a default value for SQL_URI so a diff --git a/gn_auth/auth/db/protocols.py b/gn_auth/auth/db/protocols.py index c089cfe..e1c408d 100644 --- a/gn_auth/auth/db/protocols.py +++ b/gn_auth/auth/db/protocols.py @@ -1,20 +1,6 @@ """Common Database connection protocols.""" from typing import Any, Protocol -class DbConnection(Protocol): - """Type annotation for a generic database connection object.""" - def cursor(self, *args, **kwargs) -> Any: - """A cursor object""" - ... - - def commit(self) -> Any: - """Commit the transaction.""" - ... - - def rollback(self) -> Any: - """Rollback the transaction.""" - ... - class DbCursor(Protocol): """Type annotation for a generic database cursor object.""" def execute(self, *args, **kwargs) -> Any: diff --git a/gn_auth/auth/db/sqlite3.py b/gn_auth/auth/db/sqlite3.py index be9eb2f..66b74c9 100644 --- a/gn_auth/auth/db/sqlite3.py +++ b/gn_auth/auth/db/sqlite3.py @@ -2,13 +2,27 @@ import sqlite3 import logging import contextlib -from typing import Any, Callable, Iterator +from typing import Any, Protocol, Callable, Iterator import traceback from flask import current_app -from .protocols import DbCursor, DbConnection +from .protocols import DbCursor + +class DbConnection(Protocol): + """Type annotation for a generic database connection object.""" + def cursor(self) -> Any: + """A cursor object""" + ... + + def commit(self) -> Any: + """Commit the transaction.""" + ... + + def rollback(self) -> Any: + """Rollback the transaction.""" + ... @contextlib.contextmanager def connection(db_path: str, row_factory: Callable = sqlite3.Row) -> Iterator[DbConnection]: -- cgit v1.2.3