registry.py 768 B

123456789101112131415161718192021222324252627
  1. """Module registry system."""
  2. from typing import Type, Dict, List
  3. class ModuleRegistry:
  4. """Simple module registry without magic."""
  5. def __init__(self):
  6. self._modules: Dict[str, Type] = {}
  7. def register(self, module_class: Type) -> None:
  8. """Register a module class."""
  9. # Module class defines its own name attribute
  10. self._modules[module_class.name] = module_class
  11. def create_instances(self) -> List:
  12. """Create instances of all registered modules."""
  13. instances = []
  14. for name in sorted(self._modules.keys()):
  15. try:
  16. instances.append(self._modules[name]())
  17. except Exception as e:
  18. print(f"Warning: Could not instantiate {name}: {e}")
  19. return instances
  20. # Global registry
  21. registry = ModuleRegistry()