only cache object_info for now

This commit is contained in:
Alex "mcmonkey" Goodwin 2024-09-19 16:39:18 +09:00
parent a5c50253b2
commit cd71722b11
2 changed files with 7 additions and 1 deletions

View File

@ -52,12 +52,16 @@ class CacheHelper:
""" """
def __init__(self): def __init__(self):
self.cache: dict[str, tuple[list[str], dict[str, float], float]] = {} self.cache: dict[str, tuple[list[str], dict[str, float], float]] = {}
self.active = False
def get(self, key: str, default=None) -> tuple[list[str], dict[str, float], float]: def get(self, key: str, default=None) -> tuple[list[str], dict[str, float], float]:
if not self.active:
return default
return self.cache.get(key, default) return self.cache.get(key, default)
def set(self, key: str, value: tuple[list[str], dict[str, float], float]) -> None: def set(self, key: str, value: tuple[list[str], dict[str, float], float]) -> None:
self.cache[key] = value if self.active:
self.cache[key] = value
def clear(self): def clear(self):
self.cache.clear() self.cache.clear()

View File

@ -553,6 +553,7 @@ class PromptServer():
@routes.get("/object_info") @routes.get("/object_info")
async def get_object_info(request): async def get_object_info(request):
folder_paths.cache_helper.clear() folder_paths.cache_helper.clear()
folder_paths.cache_helper.active = True
out = {} out = {}
for x in nodes.NODE_CLASS_MAPPINGS: for x in nodes.NODE_CLASS_MAPPINGS:
try: try:
@ -560,6 +561,7 @@ class PromptServer():
except Exception as e: except Exception as e:
logging.error(f"[ERROR] An error occurred while retrieving information for the '{x}' node.") logging.error(f"[ERROR] An error occurred while retrieving information for the '{x}' node.")
logging.error(traceback.format_exc()) logging.error(traceback.format_exc())
folder_paths.cache_helper.active = False
return web.json_response(out) return web.json_response(out)
@routes.get("/object_info/{node_class}") @routes.get("/object_info/{node_class}")