From 0a61f389c8acbe0d15aef77b901b41b146f69e1d Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Wed, 4 Oct 2023 10:20:47 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20chore(manager.py):=20remove=20un?= =?UTF-8?q?used=20initialize=5Fservices=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🔧 chore(utils.py): refactor initialize_services function to use a list of factory and dependencies for better readability and maintainability --- src/backend/langflow/services/manager.py | 45 ------------- src/backend/langflow/services/utils.py | 86 +++++++++++++----------- 2 files changed, 46 insertions(+), 85 deletions(-) diff --git a/src/backend/langflow/services/manager.py b/src/backend/langflow/services/manager.py index e74146a20..496544829 100644 --- a/src/backend/langflow/services/manager.py +++ b/src/backend/langflow/services/manager.py @@ -99,51 +99,6 @@ class ServiceManager: service_manager = ServiceManager() -def initialize_services(): - """ - Initialize all the services needed. - """ - from langflow.services.database import factory as database_factory - from langflow.services.cache import factory as cache_factory - from langflow.services.chat import factory as chat_factory - from langflow.services.settings import factory as settings_factory - from langflow.services.session import factory as session_service_factory - from langflow.services.auth import factory as auth_factory - from langflow.services.task import factory as task_factory - - service_manager.register_factory(settings_factory.SettingsServiceFactory()) - service_manager.register_factory( - database_factory.DatabaseServiceFactory(), - dependencies=[ServiceType.SETTINGS_SERVICE], - ) - service_manager.register_factory( - cache_factory.CacheServiceFactory(), dependencies=[ServiceType.SETTINGS_SERVICE] - ) - - service_manager.register_factory( - auth_factory.AuthServiceFactory(), dependencies=[ServiceType.SETTINGS_SERVICE] - ) - - service_manager.register_factory(chat_factory.ChatServiceFactory()) - service_manager.register_factory( - session_service_factory.SessionServiceFactory(), - dependencies=[ServiceType.CACHE_SERVICE], - ) - service_manager.register_factory( - task_factory.TaskServiceFactory(), - ) - - # Test cache connection - service_manager.get(ServiceType.CACHE_SERVICE) - # Test database connection - service_manager.get(ServiceType.DATABASE_SERVICE) - - # Test cache connection - service_manager.get(ServiceType.CACHE_SERVICE) - # Test database connection - service_manager.get(ServiceType.DATABASE_SERVICE) - - def reinitialize_services(): """ Reinitialize all the services needed. diff --git a/src/backend/langflow/services/utils.py b/src/backend/langflow/services/utils.py index b7d93184f..c17963bc3 100644 --- a/src/backend/langflow/services/utils.py +++ b/src/backend/langflow/services/utils.py @@ -11,6 +11,37 @@ from .getters import get_db_service, get_session, get_settings_service from loguru import logger +from langflow.services.database import factory as database_factory +from langflow.services.cache import factory as cache_factory +from langflow.services.chat import factory as chat_factory +from langflow.services.settings import factory as settings_factory +from langflow.services.auth import factory as auth_factory +from langflow.services.task import factory as task_factory +from langflow.services.session import factory as session_service_factory # type: ignore + +FACTORIES_AND_DEPS = [ + (settings_factory.SettingsServiceFactory(), []), + ( + auth_factory.AuthServiceFactory(), + [ServiceType.SETTINGS_SERVICE], + ), + ( + database_factory.DatabaseServiceFactory(), + [ServiceType.SETTINGS_SERVICE], + ), + ( + cache_factory.CacheServiceFactory(), + [ServiceType.SETTINGS_SERVICE], + ), + (chat_factory.ChatServiceFactory(), []), + (task_factory.TaskServiceFactory(), []), + ( + session_service_factory.SessionServiceFactory(), + [ServiceType.CACHE_SERVICE], + ), +] + + def get_or_create_super_user(session: Session, username, password, is_default): from langflow.services.database.models.user.user import User @@ -99,17 +130,21 @@ def teardown_superuser(settings_service, session): # from the database. if settings_service.auth_settings.AUTO_LOGIN: - logger.debug("AUTO_LOGIN is set to True. Removing default superuser.") - username = settings_service.auth_settings.SUPERUSER - from langflow.services.database.models.user.user import User + try: + logger.debug("AUTO_LOGIN is set to True. Removing default superuser.") + username = settings_service.auth_settings.SUPERUSER + from langflow.services.database.models.user.user import User - user = session.query(User).filter(User.username == username).first() - if user and user.is_superuser: - session.delete(user) - session.commit() - logger.debug("Default superuser removed successfully.") - else: - logger.debug("Default superuser not found.") + user = session.query(User).filter(User.username == username).first() + if user and user.is_superuser: + session.delete(user) + session.commit() + logger.debug("Default superuser removed successfully.") + else: + logger.debug("Default superuser not found.") + except Exception as exc: + logger.exception(exc) + raise RuntimeError("Could not remove default superuser.") from exc def teardown_services(): @@ -155,36 +190,7 @@ def initialize_services(): """ Initialize all the services needed. """ - from langflow.services.database import factory as database_factory - from langflow.services.cache import factory as cache_factory - from langflow.services.chat import factory as chat_factory - from langflow.services.settings import factory as settings_factory - from langflow.services.auth import factory as auth_factory - from langflow.services.task import factory as task_factory - from langflow.services.session import factory as session_service_factory # type: ignore - - factory_and_dependencies = [ - (settings_factory.SettingsServiceFactory(), []), - ( - auth_factory.AuthServiceFactory(), - [ServiceType.SETTINGS_SERVICE], - ), - ( - database_factory.DatabaseServiceFactory(), - [ServiceType.SETTINGS_SERVICE], - ), - ( - cache_factory.CacheServiceFactory(), - [ServiceType.SETTINGS_SERVICE], - ), - (chat_factory.ChatServiceFactory(), []), - (task_factory.TaskServiceFactory(), []), - ( - session_service_factory.SessionServiceFactory(), - [ServiceType.CACHE_SERVICE], - ), - ] - for factory, dependencies in factory_and_dependencies: + for factory, dependencies in FACTORIES_AND_DEPS: try: service_manager.register_factory(factory, dependencies=dependencies) except Exception as exc: