aboutsummaryrefslogtreecommitdiff
path: root/wqflask/utility/monads.py
diff options
context:
space:
mode:
authorArun Isaac2022-09-28 18:39:54 +0530
committerArun Isaac2022-09-29 16:15:47 +0530
commitb23c36a8c7b66296cf972ac7b3dedfe8d427690c (patch)
treecd81f1621248bd4c2dea45a2ef5ca73a3b713595 /wqflask/utility/monads.py
parent38a87ff73c64f5e6bbfb6d1aefdad8d6e06a1d46 (diff)
downloadgenenetwork2-b23c36a8c7b66296cf972ac7b3dedfe8d427690c.tar.gz
Replace MonadicDictCursor with generator function.
* wqflask/utility/monads.py (MonadicDictCursor): Delete class. (sql_query_mdict): New function. * wqflask/scripts/index.py: Import sql_query_mdict instead of MonadicDictCursor. (main): Use sql_query_mdict.
Diffstat (limited to 'wqflask/utility/monads.py')
-rw-r--r--wqflask/utility/monads.py26
1 files changed, 7 insertions, 19 deletions
diff --git a/wqflask/utility/monads.py b/wqflask/utility/monads.py
index 3360fad2..2d708261 100644
--- a/wqflask/utility/monads.py
+++ b/wqflask/utility/monads.py
@@ -105,22 +105,10 @@ class MonadicDict(UserDict):
except KeyError:
pass
-class MonadicDictCursor(DictCursor):
- """Monadic version of MySQLdb.cursors.DictCursor.
-
- Monadic version of MySQLdb.cursors.DictCursor that returns a
- MonadicDict instead of the built-in dictionary.
-
- Execute a SQL query and retrieve results as MonadicDict
- objects. Each row object in the following code is a MonadicDict.
- >>> with conn.cursor(MonadicDictCursor) as cursor:
- ... cursor.execute("SELECT foo FROM bar")
- ... for row in cursor.fetchall():
- ... print(row)
- """
- def fetchone(self):
- return Just(MonadicDict(row)) if (row := super().fetchone()) else Nothing
- def fetchmany(self, size=None):
- return [MonadicDict(row) for row in super().fetchmany(size=size)]
- def fetchall(self):
- return [MonadicDict(row) for row in super().fetchall()]
+
+def sql_query_mdict(conn, query):
+ """Execute SQL query and return a generator of MonadicDict objects."""
+ with conn.cursor(DictCursor) as cursor:
+ cursor.execute(query)
+ while (row := cursor.fetchone()):
+ yield MonadicDict(row)