# ----------------------------------------------------------------------------- # Lou-Ka — Location court terme # connectors/__init__.py : registre AUTO-DÉCOUVRANT des connecteurs court terme # (même mécanique que louka/connectors, mais registre totalement séparé) # ----------------------------------------------------------------------------- from __future__ import annotations import importlib import pkgutil import sys from .base import StConnector ST_CONNECTORS: dict[str, type[StConnector]] = {} for _mod in pkgutil.iter_modules(__path__): if _mod.name in ("base", "__init__"): continue try: module = importlib.import_module(f"{__name__}.{_mod.name}") except Exception as exc: # un connecteur cassé ne bloque pas les autres print(f"[lou-ka/ct] connecteur '{_mod.name}' ignoré : {exc}", file=sys.stderr) continue for obj in vars(module).values(): if (isinstance(obj, type) and issubclass(obj, StConnector) and obj is not StConnector and getattr(obj, "source_id", "")): if getattr(obj, "disabled", False): continue ST_CONNECTORS[obj.source_id] = obj