From e210fc316ad86764d8e46ef7b7d061adee9fc8e8 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 17 Aug 2023 08:23:50 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(=5F=5Fmain=5F=5F.py):=20impo?= =?UTF-8?q?rt=20and=20call=20initialize=5Fsettings=5Fmanager()=20to=20ensu?= =?UTF-8?q?re=20settings=20manager=20is=20initialized=20=E2=9C=A8=20feat(m?= =?UTF-8?q?anager.py):=20add=20check=20to=20prevent=20duplicate=20registra?= =?UTF-8?q?tion=20of=20service=20factories=20in=20ServiceManager=20class?= =?UTF-8?q?=20=E2=9C=A8=20feat(manager.py):=20add=20initialize=5Fsettings?= =?UTF-8?q?=5Fmanager()=20function=20to=20initialize=20the=20settings=20ma?= =?UTF-8?q?nager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/__main__.py | 2 ++ src/backend/langflow/services/manager.py | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 43247b10f..c86e9863f 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -1,6 +1,7 @@ import sys import time import httpx +from langflow.services.manager import initialize_settings_manager from langflow.services.utils import get_settings_manager from langflow.utils.util import get_number_of_workers from multiprocess import Process # type: ignore @@ -30,6 +31,7 @@ def update_settings( """Update the settings from a config file.""" # Check for database_url in the environment variables + initialize_settings_manager() settings_manager = get_settings_manager() if config: logger.debug(f"Loading settings from {config}") diff --git a/src/backend/langflow/services/manager.py b/src/backend/langflow/services/manager.py index 1606b3a82..f05102d0e 100644 --- a/src/backend/langflow/services/manager.py +++ b/src/backend/langflow/services/manager.py @@ -18,7 +18,8 @@ class ServiceManager: """ Registers a new factory. """ - self.factories[service_factory.service_class.name] = service_factory + if service_factory.service_class.name not in self.factories: + self.factories[service_factory.service_class.name] = service_factory def get(self, service_name: ServiceType): """ @@ -85,3 +86,12 @@ def initialize_services(): service_manager.register_factory(database_factory.DatabaseManagerFactory()) service_manager.register_factory(cache_factory.CacheManagerFactory()) service_manager.register_factory(chat_factory.ChatManagerFactory()) + + +def initialize_settings_manager(): + """ + Initialize the settings manager. + """ + from langflow.services.settings import factory as settings_factory + + service_manager.register_factory(settings_factory.SettingsManagerFactory())