🐛 fix(custom_component.py): import get_db_manager function from langflow.services.utils to fix NameError
🐛 fix(factory.py): raise ValueError if no database URL provided in settings 🐛 fix(manager.py): change return type annotation of load_settings_from_yaml method to "SettingsManager" instead of "Settings" 🐛 fix(utils.py): import service_manager and ServiceType to fix NameError
This commit is contained in:
parent
6ca7308e3c
commit
f9112facda
4 changed files with 14 additions and 5 deletions
|
|
@ -3,6 +3,7 @@ from fastapi import HTTPException
|
||||||
from langflow.interface.custom.constants import CUSTOM_COMPONENT_SUPPORTED_TYPES
|
from langflow.interface.custom.constants import CUSTOM_COMPONENT_SUPPORTED_TYPES
|
||||||
from langflow.interface.custom.component import Component
|
from langflow.interface.custom.component import Component
|
||||||
from langflow.interface.custom.directory_reader import DirectoryReader
|
from langflow.interface.custom.directory_reader import DirectoryReader
|
||||||
|
from langflow.services.utils import get_db_manager
|
||||||
|
|
||||||
from langflow.utils import validate
|
from langflow.utils import validate
|
||||||
|
|
||||||
|
|
@ -159,7 +160,8 @@ class CustomComponent(Component, extra=Extra.allow):
|
||||||
from langflow.processing.process import build_sorted_vertices_with_caching
|
from langflow.processing.process import build_sorted_vertices_with_caching
|
||||||
from langflow.processing.process import process_tweaks
|
from langflow.processing.process import process_tweaks
|
||||||
|
|
||||||
with session_getter() as session:
|
db_manager = get_db_manager()
|
||||||
|
with session_getter(db_manager) as session:
|
||||||
graph_data = flow.data if (flow := session.get(Flow, flow_id)) else None
|
graph_data = flow.data if (flow := session.get(Flow, flow_id)) else None
|
||||||
if not graph_data:
|
if not graph_data:
|
||||||
raise ValueError(f"Flow {flow_id} not found")
|
raise ValueError(f"Flow {flow_id} not found")
|
||||||
|
|
@ -169,7 +171,8 @@ class CustomComponent(Component, extra=Extra.allow):
|
||||||
|
|
||||||
def list_flows(self, *, get_session: Optional[Callable] = None) -> List[Flow]:
|
def list_flows(self, *, get_session: Optional[Callable] = None) -> List[Flow]:
|
||||||
get_session = get_session or session_getter
|
get_session = get_session or session_getter
|
||||||
with get_session() as session:
|
db_manager = get_db_manager()
|
||||||
|
with get_session(db_manager) as session:
|
||||||
flows = session.query(Flow).all()
|
flows = session.query(Flow).all()
|
||||||
return flows
|
return flows
|
||||||
|
|
||||||
|
|
@ -182,8 +185,8 @@ class CustomComponent(Component, extra=Extra.allow):
|
||||||
get_session: Optional[Callable] = None,
|
get_session: Optional[Callable] = None,
|
||||||
) -> Flow:
|
) -> Flow:
|
||||||
get_session = get_session or session_getter
|
get_session = get_session or session_getter
|
||||||
|
db_manager = get_db_manager()
|
||||||
with get_session() as session:
|
with get_session(db_manager) as session:
|
||||||
if flow_id:
|
if flow_id:
|
||||||
flow = session.query(Flow).get(flow_id)
|
flow = session.query(Flow).get(flow_id)
|
||||||
elif flow_name:
|
elif flow_name:
|
||||||
|
|
|
||||||
|
|
@ -12,4 +12,6 @@ class DatabaseManagerFactory(ServiceFactory):
|
||||||
|
|
||||||
def create(self, settings_service: "SettingsManager"):
|
def create(self, settings_service: "SettingsManager"):
|
||||||
# Here you would have logic to create and configure a DatabaseManager
|
# Here you would have logic to create and configure a DatabaseManager
|
||||||
|
if not settings_service.settings.DATABASE_URL:
|
||||||
|
raise ValueError("No database URL provided")
|
||||||
return DatabaseManager(settings_service.settings.DATABASE_URL)
|
return DatabaseManager(settings_service.settings.DATABASE_URL)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ class SettingsManager(Service):
|
||||||
self.settings = settings
|
self.settings = settings
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def load_settings_from_yaml(cls, file_path: str) -> Settings:
|
def load_settings_from_yaml(cls, file_path: str) -> "SettingsManager":
|
||||||
# Check if a string is a valid path or a file name
|
# Check if a string is a valid path or a file name
|
||||||
if "/" not in file_path:
|
if "/" not in file_path:
|
||||||
# Get current path
|
# Get current path
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,10 @@ def get_settings_manager() -> "SettingsManager":
|
||||||
return service_manager.get(ServiceType.SETTINGS_MANAGER)
|
return service_manager.get(ServiceType.SETTINGS_MANAGER)
|
||||||
|
|
||||||
|
|
||||||
|
def get_db_manager():
|
||||||
|
return service_manager.get(ServiceType.DATABASE_MANAGER)
|
||||||
|
|
||||||
|
|
||||||
def get_session():
|
def get_session():
|
||||||
db_manager = service_manager.get(ServiceType.DATABASE_MANAGER)
|
db_manager = service_manager.get(ServiceType.DATABASE_MANAGER)
|
||||||
yield from db_manager.get_session()
|
yield from db_manager.get_session()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue