/ 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)