/ chat_workflow / module_discovery.py
module_discovery.py
1 import importlib 2 import os 3 from .workflows.base import BaseWorkflow 4 from .workflows.workflow_factory import WorkflowFactory 5 6 7 def discover_workflows(): 8 workflows_dir = os.path.join(os.path.dirname(__file__), 'workflows') 9 for filename in os.listdir(workflows_dir): 10 if filename.endswith('.py') and not filename.startswith('__'): 11 module_name = filename[:-3] 12 module = importlib.import_module( 13 f'chat_workflow.workflows.{module_name}') 14 for attr_name in dir(module): 15 attr = getattr(module, attr_name) 16 if isinstance(attr, type) and issubclass(attr, BaseWorkflow) and attr != BaseWorkflow: 17 WorkflowFactory.register(attr.name(), attr)