From d508a1407cd2728d1a385ea5b8b2c2a42e351d1b Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 1 Sep 2023 17:21:40 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20refactor(base.py):=20remove=20in?= =?UTF-8?q?heritance=20of=20Service=20class=20from=20BaseCacheManager=20to?= =?UTF-8?q?=20simplify=20class=20hierarchy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🔨 refactor(factory.py): add type hinting for settings_manager parameter in create method of CacheManagerFactory 🔨 refactor(manager.py): remove inheritance of Service class from InMemoryCache and RedisCache to simplify class hierarchy --- src/backend/langflow/services/cache/base.py | 4 +--- src/backend/langflow/services/cache/factory.py | 6 +++++- src/backend/langflow/services/cache/manager.py | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) 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.