diff options
Diffstat (limited to 'gn_auth/auth/db/sqlite3.py')
-rw-r--r-- | gn_auth/auth/db/sqlite3.py | 18 |
1 files changed, 16 insertions, 2 deletions
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]: |