23 lines
697 B
Python
23 lines
697 B
Python
"""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
|