]> git.mxchange.org Git - fba.git/blobdiff - fba/helpers/cache.py
Continued:
[fba.git] / fba / helpers / cache.py
index 05d3a809a64cb94666149e7390b3e6b30810e940..325e58337649ed543344d2f0706f81c7360f9344 100644 (file)
@@ -15,6 +15,7 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 import logging
+import sqlite3
 
 logging.basicConfig(level=logging.INFO)
 logger = logging.getLogger(__name__)
@@ -25,19 +26,25 @@ _cache = {}
 ##### Cache #####
 
 def key_exists(key: str) -> bool:
-    return key in _cache
+    logger.debug("key='%s' - CALLED!", key)
+    exists = key in _cache
+
+    logger.debug("exists='%s' - EXIT!", exists)
+    return exists
 
 def set_all(key: str, rows: list, value: any):
     logger.debug("key='%s',rows()=%d,value[]='%s' - CALLED!", key, len(rows), type(value))
+
     if not isinstance(key, str):
-        raise ValueError(f"Parameter key[]='{type(key)}' is not 'str'")
+        raise ValueError(f"Parameter key[]='{type(key)}' is not of type 'str'")
     elif not key_exists(key):
         logger.debug("Cache for key='%s' not initialized.", key)
         _cache[key] = dict()
 
+    logger.debug("Setting %d row(s) for key='%s',value[%s]='%s' ...", len(rows), key, type(value), value)
     for sub in rows:
         logger.debug("Setting key='%s',sub[%s]='%s'", key, type(sub), sub)
-        if isinstance(sub, tuple):
+        if isinstance(sub, sqlite3.Row):
             logger.debug("Setting key='%s',sub[%s]='%s',value[]='%s'", key, type(sub), sub, type(value))
             _cache[key][sub[0]] = value
         else:
@@ -47,24 +54,26 @@ def set_all(key: str, rows: list, value: any):
 
 def set_sub_key(key: str, sub: str, value: any):
     logger.debug("key='%s',sub='%s',value[]='%s' - CALLED!", key, sub, type(value))
+
     if not isinstance(key, str):
-        raise ValueError(f"Parameter key[]='{type(key)}' is not 'str'")
+        raise ValueError(f"Parameter key[]='{type(key)}' is not of type 'str'")
     elif not isinstance(sub, str):
-        raise ValueError(f"Parameter sub[]='{type(sub)}' is not 'str'")
+        raise ValueError(f"Parameter sub[]='{type(sub)}' is not of type 'str'")
     elif not key_exists(key):
         raise Exception(f"Cache for key='{key}' is not initialized, but function invoked")
 
-    logger.debug("Setting key='%s',sub='%s',value[]='%s' ...", key, sub, type(value))
+    logger.debug("Setting key='%s',sub='%s',value[%s]='%s' ...", key, sub, type(value), value)
     _cache[key][sub] = value
 
     logger.debug("EXIT!")
 
 def sub_key_exists(key: str, sub: str) -> bool:
     logger.debug("key='%s',sub='%s' - CALLED!", key, sub)
+
     if not isinstance(key, str):
-        raise ValueError(f"Parameter key[]='{type(key)}' is not 'str'")
+        raise ValueError(f"Parameter key[]='{type(key)}' is not of type 'str'")
     elif not isinstance(sub, str):
-        raise ValueError(f"Parameter sub[]='{type(sub)}' is not 'str'")
+        raise ValueError(f"Parameter sub[]='{type(sub)}' is not of type 'str'")
     elif not key_exists(key):
         raise Exception(f"Cache for key='{key}' is not initialized, but function invoked")