API-KA — plateforme centrale : collecte quotidienne des 8 services KA, historisation append-only et API publique sur www.api-ka.com
1# ============================================2# Projet : API-KA3# Fichier : src/collectors/__init__.py4# Node : m3u96b5# Author : Simon-Pierre Boucher6# Contact : contact@spboucher.ai7# Date : 2026-08-168# ============================================9"""Collecteurs des 8 services KA et fabriques associées."""1011from __future__ import annotations1213from src.collectors.autoka_collector import AutokaCollector14from src.collectors.base_collector import BaseCollector15from src.collectors.creaka_collector import CreakaCollector16from src.collectors.fabrika_collector import FabrikaCollector17from src.collectors.foodka_collector import FoodkaCollector18from src.collectors.immoka_collector import ImmokaCollector19from src.collectors.louka_collector import LoukaCollector20from src.collectors.restoka_collector import RestokaCollector21from src.collectors.sortika_collector import SortikaCollector2223COLLECTORS: dict[str, type[BaseCollector]] = {24 "louka": LoukaCollector,25 "immoka": ImmokaCollector,26 "foodka": FoodkaCollector,27 "autoka": AutokaCollector,28 "fabrika": FabrikaCollector,29 "restoka": RestokaCollector,30 "sortika": SortikaCollector,31 "creaka": CreakaCollector,32}333435def get_collector(service: str) -> BaseCollector:36 """Instancie le collecteur d'un service donné.3738 Raises:39 ValueError: Si le service est inconnu.40 """41 try:42 return COLLECTORS[service]()43 except KeyError as exc:44 raise ValueError(f"Service inconnu : {service}") from exc454647def build_collectors() -> list[BaseCollector]:48 """Instancie les 8 collecteurs, dans l'ordre canonique des services."""49 return [cls() for cls in COLLECTORS.values()]50