about summary refs log tree commit diff
path: root/gn3/db_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/db_utils.py')
-rw-r--r--gn3/db_utils.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/gn3/db_utils.py b/gn3/db_utils.py
index 81e930e..7004590 100644
--- a/gn3/db_utils.py
+++ b/gn3/db_utils.py
@@ -2,7 +2,7 @@
 import logging
 import contextlib
 from urllib.parse import urlparse
-from typing import Any, Iterator, Protocol
+from typing import Any, Iterator, Protocol, Callable
 
 import xapian
 import MySQLdb as mdb
@@ -26,7 +26,7 @@ def __parse_db_opts__(opts: str) -> dict:
         "cursorclass", "use_unicode", "charset", "collation", "auth_plugin",
         "sql_mode", "client_flag", "multi_statements", "ssl_mode", "ssl",
         "local_infile", "autocommit", "binary_prefix")
-    conversion_fns = {
+    conversion_fns: dict[str, Callable] = {
         **{opt: str for opt in allowed_opts},
         "connect_timeout": int,
         "compress": __check_true__,
@@ -39,9 +39,11 @@ def __parse_db_opts__(opts: str) -> dict:
         "autocommit": __check_true__,
         "binary_prefix": __check_true__
     }
-    keyvals = tuple(filter(bool, opts.split("&")))
-    if len(keyvals) > 0:
-        keyvals = tuple(tuple(item.strip() for item in keyval.split("=")) for keyval in keyvals)
+    queries = tuple(filter(bool, opts.split("&")))
+    if len(queries) > 0:
+        keyvals: tuple[tuple[str, ...], ...] = tuple(
+            tuple(item.strip() for item in query.split("="))
+            for query in queries)
         def __check_opt__(opt):
             assert opt in allowed_opts, (
                 f"Invalid database connection option ({opt}) provided.")