from inspect import isclass from src.processors.base import BaseProcessor from src.processors.playlist_digest_metrics import PlaylistDigestMetricsProcessor # noqa: F401 from src.processors.playlist_digest_playlists import PlaylistDigestPlaylistsProcessor # noqa: F401 from src.processors.tracks_top_playlists import TracksTopPlaylistsProcessor # noqa: F401 from src.processors.weekly_top_playlists import WeeklyTopPlaylistsProcessor # noqa: F401 def get_processor(data_type: str, **kwargs) -> BaseProcessor: for item in globals().values(): if isclass(item) and issubclass(item, BaseProcessor) and item.data_type == data_type: return item(**kwargs) raise NotImplementedError(f"{data_type} processor was not found")