From 946bf0319064b0d52d0bfb3c64ec7b0e0603d479 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 23 Nov 2023 10:57:11 -0300 Subject: [PATCH] Add cache functionality to Component class --- src/backend/langflow/interface/custom/component.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/langflow/interface/custom/component.py b/src/backend/langflow/interface/custom/component.py index 5a476ff58..0f503accb 100644 --- a/src/backend/langflow/interface/custom/component.py +++ b/src/backend/langflow/interface/custom/component.py @@ -1,6 +1,8 @@ import ast +import operator from typing import Any, ClassVar, Optional +from cachetools import TTLCache, cachedmethod from fastapi import HTTPException from langflow.interface.custom.code_parser import CodeParser @@ -24,9 +26,11 @@ class Component: field_config: dict = {} def __init__(self, **data): + self.cache = TTLCache(maxsize=1024, ttl=60) for key, value in data.items(): setattr(self, key, value) + @cachedmethod(operator.attrgetter("cache")) def get_code_tree(self, code: str): parser = CodeParser(code) return parser.parse_code()