diff --git a/src/backend/langflow/services/cache/base.py b/src/backend/langflow/services/cache/base.py index f40cd6663..531f31284 100644 --- a/src/backend/langflow/services/cache/base.py +++ b/src/backend/langflow/services/cache/base.py @@ -1,9 +1,7 @@ import abc -from langflow.services.base import Service - -class BaseCacheManager(abc.ABC, Service): +class BaseCacheManager(abc.ABC): """ Abstract base class for a cache. """ diff --git a/src/backend/langflow/services/cache/factory.py b/src/backend/langflow/services/cache/factory.py index 018c0284a..4e497c5fd 100644 --- a/src/backend/langflow/services/cache/factory.py +++ b/src/backend/langflow/services/cache/factory.py @@ -1,13 +1,17 @@ from langflow.services.cache.manager import InMemoryCache, RedisCache, BaseCacheManager from langflow.services.factory import ServiceFactory from langflow.utils.logger import logger +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from langflow.services.settings.manager import SettingsManager class CacheManagerFactory(ServiceFactory): def __init__(self): super().__init__(BaseCacheManager) - def create(self, settings_manager): + def create(self, settings_manager: "SettingsManager"): # Here you would have logic to create and configure a CacheManager # based on the settings_service diff --git a/src/backend/langflow/services/cache/manager.py b/src/backend/langflow/services/cache/manager.py index a3f04518d..47cb82ecf 100644 --- a/src/backend/langflow/services/cache/manager.py +++ b/src/backend/langflow/services/cache/manager.py @@ -1,13 +1,14 @@ import threading import time from collections import OrderedDict +from langflow.services.base import Service from langflow.services.cache.base import BaseCacheManager import pickle -class InMemoryCache(BaseCacheManager): +class InMemoryCache(BaseCacheManager, Service): """ A simple in-memory cache using an OrderedDict. @@ -175,7 +176,7 @@ class InMemoryCache(BaseCacheManager): return f"InMemoryCache(max_size={self.max_size}, expiration_time={self.expiration_time})" -class RedisCache(BaseCacheManager): +class RedisCache(BaseCacheManager, Service): """ A Redis-based cache implementation.