diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 282ff4ad3..edd9b2b89 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,7 +6,8 @@ "image": "mcr.microsoft.com/devcontainers/universal:2-linux", "features": { "ghcr.io/devcontainers/features/aws-cli:1": {}, - "ghcr.io/devcontainers/features/docker-in-docker": {} + "ghcr.io/devcontainers/features/docker-in-docker": {}, + "ghcr.io/devcontainers-contrib/features/poetry": {} }, "customizations": { "vscode": {"extensions": [ @@ -18,6 +19,10 @@ ]} }, + "containerEnv": { + "POETRY_VIRTUALENVS_IN_PROJECT": "true" + }, + // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, 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 1f7e4b2bd..1fc87ac7d 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): """ @@ -90,3 +91,12 @@ def initialize_services(): service_manager.get(ServiceType.CACHE_MANAGER) # Test database connection service_manager.get(ServiceType.DATABASE_MANAGER) + + +def initialize_settings_manager(): + """ + Initialize the settings manager. + """ + from langflow.services.settings import factory as settings_factory + + service_manager.register_factory(settings_factory.SettingsManagerFactory())