about summary refs log tree commit diff
path: root/gn_auth/auth/db/protocols.py
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-08-07 07:47:01 +0300
committerFrederick Muriuki Muriithi2023-08-07 09:26:12 +0300
commit6ab6d46ab4b1611ed72bdbce85cf9324ce69b305 (patch)
tree3d10ba6514e594cf3add2086c6668c891b8cedae /gn_auth/auth/db/protocols.py
parente5cf3178743260e5003f3a9becf025c154204ccd (diff)
downloadgn-auth-6ab6d46ab4b1611ed72bdbce85cf9324ce69b305.tar.gz
Collect db-connections function in single module.
Diffstat (limited to 'gn_auth/auth/db/protocols.py')
-rw-r--r--gn_auth/auth/db/protocols.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/gn_auth/auth/db/protocols.py b/gn_auth/auth/db/protocols.py
new file mode 100644
index 0000000..c089cfe
--- /dev/null
+++ b/gn_auth/auth/db/protocols.py
@@ -0,0 +1,41 @@
+"""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:
+        """Execute a single query"""
+        ...
+
+    def executemany(self, *args, **kwargs) -> Any:
+        """
+        Execute parameterized SQL statement sql against all parameter sequences
+        or mappings found in the sequence parameters.
+        """
+        ...
+
+    def fetchone(self, *args, **kwargs):
+        """Fetch single result if present, or `None`."""
+        ...
+
+    def fetchmany(self, *args, **kwargs):
+        """Fetch many results if present or `None`."""
+        ...
+
+    def fetchall(self, *args, **kwargs):
+        """Fetch all results if present or `None`."""
+        ...