refactor: move effects_plugins to engine/effects/plugins

- Move effects_plugins/ to engine/effects/plugins/
- Update imports in engine/app.py
- Update imports in all test files
- Follows capability-based deps architecture

Closes #27
This commit is contained in:
2026-03-18 03:56:31 -07:00
parent b926b346ad
commit b37b2ccc73
16 changed files with 21 additions and 22 deletions

View File

@@ -0,0 +1,38 @@
from pathlib import Path
PLUGIN_DIR = Path(__file__).parent
def discover_plugins():
from engine.effects.registry import get_registry
from engine.effects.types import EffectPlugin
registry = get_registry()
imported = {}
for file_path in PLUGIN_DIR.glob("*.py"):
if file_path.name.startswith("_"):
continue
module_name = file_path.stem
if module_name in ("base", "types"):
continue
try:
module = __import__(f"engine.effects.plugins.{module_name}", fromlist=[""])
for attr_name in dir(module):
attr = getattr(module, attr_name)
if (
isinstance(attr, type)
and issubclass(attr, EffectPlugin)
and attr is not EffectPlugin
and attr_name.endswith("Effect")
):
plugin = attr()
if not isinstance(plugin, EffectPlugin):
continue
registry.register(plugin)
imported[plugin.name] = plugin
except Exception:
pass
return imported