"""Basis-Interface fuer alle Connectors.""" from __future__ import annotations from abc import ABC, abstractmethod from ..model import Document, Source, Tool class Connector(ABC): """Ein Connector holt fuer eine Quelle 0..n Dokumente.""" name: str = "base" @abstractmethod def fetch(self, source: Source, tool: Tool | None) -> list[Document]: """Holt Rohdaten und liefert (noch ungefilterte) Dokumente. tool ist None bei tool-uebergreifenden 'general'-Quellen. Bei Fehlern (z.B. fehlende Credentials) sollte eine leere Liste zurueckgegeben und geloggt werden, damit der lokale Lauf nicht bricht. """ raise NotImplementedError