refac: add decorator to create cache folder
This commit is contained in:
parent
37925c275f
commit
41c2ba9639
1 changed files with 17 additions and 3 deletions
20
src/backend/langflow/cache/utils.py
vendored
20
src/backend/langflow/cache/utils.py
vendored
|
|
@ -11,6 +11,19 @@ from pathlib import Path
|
||||||
import dill # type: ignore
|
import dill # type: ignore
|
||||||
|
|
||||||
|
|
||||||
|
def create_cache_folder(func):
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
# Get the destination folder
|
||||||
|
cache_path = Path(tempfile.gettempdir()) / PREFIX
|
||||||
|
|
||||||
|
# Create the destination folder if it doesn't exist
|
||||||
|
os.makedirs(cache_path, exist_ok=True)
|
||||||
|
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
|
||||||
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
def memoize_dict(maxsize=128):
|
def memoize_dict(maxsize=128):
|
||||||
cache = OrderedDict()
|
cache = OrderedDict()
|
||||||
|
|
||||||
|
|
@ -40,6 +53,7 @@ def memoize_dict(maxsize=128):
|
||||||
PREFIX = "langflow_cache"
|
PREFIX = "langflow_cache"
|
||||||
|
|
||||||
|
|
||||||
|
@create_cache_folder
|
||||||
def clear_old_cache_files(max_cache_size: int = 3):
|
def clear_old_cache_files(max_cache_size: int = 3):
|
||||||
cache_dir = Path(tempfile.gettempdir()) / PREFIX
|
cache_dir = Path(tempfile.gettempdir()) / PREFIX
|
||||||
cache_files = list(cache_dir.glob("*.dill"))
|
cache_files = list(cache_dir.glob("*.dill"))
|
||||||
|
|
@ -85,6 +99,7 @@ def filter_json(json_data):
|
||||||
return filtered_data
|
return filtered_data
|
||||||
|
|
||||||
|
|
||||||
|
@create_cache_folder
|
||||||
def save_binary_file(content: str, file_name: str, accepted_types: list[str]) -> str:
|
def save_binary_file(content: str, file_name: str, accepted_types: list[str]) -> str:
|
||||||
"""
|
"""
|
||||||
Save a binary file to the specified folder.
|
Save a binary file to the specified folder.
|
||||||
|
|
@ -105,9 +120,6 @@ def save_binary_file(content: str, file_name: str, accepted_types: list[str]) ->
|
||||||
data = content.split(",")[1]
|
data = content.split(",")[1]
|
||||||
decoded_bytes = base64.b64decode(data)
|
decoded_bytes = base64.b64decode(data)
|
||||||
|
|
||||||
# Create the destination folder if it doesn't exist
|
|
||||||
os.makedirs(cache_path, exist_ok=True)
|
|
||||||
|
|
||||||
# Create the full file path
|
# Create the full file path
|
||||||
file_path = os.path.join(cache_path, file_name)
|
file_path = os.path.join(cache_path, file_name)
|
||||||
|
|
||||||
|
|
@ -118,6 +130,7 @@ def save_binary_file(content: str, file_name: str, accepted_types: list[str]) ->
|
||||||
return file_path
|
return file_path
|
||||||
|
|
||||||
|
|
||||||
|
@create_cache_folder
|
||||||
def save_cache(hash_val: str, chat_data, clean_old_cache_files: bool):
|
def save_cache(hash_val: str, chat_data, clean_old_cache_files: bool):
|
||||||
cache_path = Path(tempfile.gettempdir()) / PREFIX / f"{hash_val}.dill"
|
cache_path = Path(tempfile.gettempdir()) / PREFIX / f"{hash_val}.dill"
|
||||||
with cache_path.open("wb") as cache_file:
|
with cache_path.open("wb") as cache_file:
|
||||||
|
|
@ -127,6 +140,7 @@ def save_cache(hash_val: str, chat_data, clean_old_cache_files: bool):
|
||||||
clear_old_cache_files()
|
clear_old_cache_files()
|
||||||
|
|
||||||
|
|
||||||
|
@create_cache_folder
|
||||||
def load_cache(hash_val):
|
def load_cache(hash_val):
|
||||||
cache_path = Path(tempfile.gettempdir()) / PREFIX / f"{hash_val}.dill"
|
cache_path = Path(tempfile.gettempdir()) / PREFIX / f"{hash_val}.dill"
|
||||||
if cache_path.exists():
|
if cache_path.exists():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue