]> git.mxchange.org Git - fba.git/blobdiff - fba/helpers/cache.py
Continued:
[fba.git] / fba / helpers / cache.py
index 97d5a7d9bc4050673a96a6278e150aa5e08eb400..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,50 +26,58 @@ _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(f"key='{key}',rows()={len(rows)},value[]='{type(value)}' - CALLED!")
+    logger.debug("key='%s',rows()=%d,value[]='%s' - CALLED!", key, len(rows), type(value))
+
     if not isinstance(key, str):
-        raise ValueError("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(f"Cache for key='{key}' not initialized.")
-        _cache[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(f"Setting key='{key}',sub[{type(sub)}]='{sub}'")
-        if isinstance(sub, tuple):
-            logger.debug(f"Setting key='{key}',sub[{type(sub)}]='{sub}',value[]='{type(value)}'")
+        logger.debug("Setting key='%s',sub[%s]='%s'", key, type(sub), sub)
+        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:
-            logger.warning(f"Unsupported type sub[]='{type(sub)}'")
+            logger.warning("Unsupported type sub[]='%s'", type(sub))
 
     logger.debug("EXIT!")
 
 def set_sub_key(key: str, sub: str, value: any):
-    logger.debug(f"key='{key}',sub='{sub}',value[]='{type(value)}' - CALLED!")
+    logger.debug("key='%s',sub='%s',value[]='%s' - CALLED!", key, sub, type(value))
+
     if not isinstance(key, str):
-        raise ValueError("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("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(f"Setting key='{key}',sub='{sub}',value[]='{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(f"key='{key}',sub='{sub}' - CALLED!")
+    logger.debug("key='%s',sub='%s' - CALLED!", key, sub)
+
     if not isinstance(key, str):
-        raise ValueError("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("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")
 
     exists = sub in _cache[key]
 
-    logger.debug(f"exists='{exists}' - EXIT!")
+    logger.debug("exists='%s' - EXIT!", exists)
     return exists