# ============================================================================= # Job·Ka — Groupe KA # Auteur : Simon-Pierre Boucher # Contact : contact@spboucher.ai # Fichier : jobka/connectors/__init__.py # Rôle : Registre AUTO-DÉCOUVRANT des connecteurs — toute sous-classe de # BaseConnector avec un source_id non vide est enregistrée, aucun # fichier partagé à modifier pour ajouter un connecteur # Créé : 2026-08-17 Modifié : 2026-08-17 # ============================================================================= from __future__ import annotations import importlib import pkgutil import sys from .base import BaseConnector CONNECTORS: dict[str, type[BaseConnector]] = {} 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"[job-ka] connecteur '{_mod.name}' ignoré : {exc}", file=sys.stderr) continue for obj in vars(module).values(): if (isinstance(obj, type) and issubclass(obj, BaseConnector) and obj is not BaseConnector and getattr(obj, "source_id", "")): CONNECTORS[obj.source_id] = obj