diff options
author | Frederick Muriuki Muriithi | 2023-08-07 07:47:01 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2023-08-07 09:26:12 +0300 |
commit | 6ab6d46ab4b1611ed72bdbce85cf9324ce69b305 (patch) | |
tree | 3d10ba6514e594cf3add2086c6668c891b8cedae /gn_auth/auth/db/protocols.py | |
parent | e5cf3178743260e5003f3a9becf025c154204ccd (diff) | |
download | gn-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.py | 41 |
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`.""" + ... |