aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gn_auth/auth/db/__init__.py2
-rw-r--r--gn_auth/auth/db/mariadb.py16
-rw-r--r--gn_auth/auth/db/protocols.py14
-rw-r--r--gn_auth/auth/db/sqlite3.py18
-rw-r--r--mypy.ini71
5 files changed, 102 insertions, 19 deletions
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]:
diff --git a/mypy.ini b/mypy.ini
new file mode 100644
index 0000000..f75be5b
--- /dev/null
+++ b/mypy.ini
@@ -0,0 +1,71 @@
+[mypy]
+mypy_path = stubs
+
+[mypy-scipy.*]
+ignore_missing_imports = True
+
+[mypy-numpy.*]
+ignore_missing_imports = True
+
+[mypy-MySQLdb.*]
+ignore_missing_imports = True
+
+[mypy-ipfshttpclient.*]
+ignore_missing_imports = True
+
+[mypy-lmdb.*]
+ignore_missing_imports = True
+
+[mypy-pingouin.*]
+ignore_missing_imports = True
+
+[mypy-redis.*]
+ignore_missing_imports = True
+
+[mypy-requests.*]
+ignore_missing_imports = True
+
+[mypy-flask.*]
+ignore_missing_imports = True
+
+[mypy-werkzeug.*]
+ignore_missing_imports = True
+
+[mypy-SPARQLWrapper.*]
+ignore_missing_imports = True
+
+[mypy-pandas.*]
+ignore_missing_imports = True
+
+[mypy-pytest.*]
+ignore_missing_imports = True
+
+[mypy-sklearn.*]
+ignore_missing_imports = True
+
+[mypy-scripts.argparse_actions.*]
+ignore_missing_imports = True
+
+[mypy-xapian.*]
+ignore_missing_imports = True
+
+[mypy-yoyo.*]
+ignore_missing_imports = True
+
+[mypy-authlib.*]
+ignore_missing_imports = True
+
+[mypy-pymonad.*]
+ignore_missing_imports = True
+
+[mypy-email_validator]
+ignore_missing_imports = True
+
+[mypy-argon2]
+ignore_missing_imports = True
+
+[mypy-argon2.*]
+ignore_missing_imports = True
+
+[mypy-setuptools.*]
+ignore_missing_imports = True \ No newline at end of file