from dataclasses import dataclass from typing import Dict, List @dataclass class CollectionResult: source: str assets: List[Dict] status: str error: str = "" class BaseCollector: source_name = "unknown" def collect(self) -> CollectionResult: raise NotImplementedError