""" Interface for API clients """ from abc import ABC, abstractmethod class DataClient(ABC): """ Abstract class for API clients """ @abstractmethod def extract(self): """ Extract data from API """ if self.api_url is None: raise Exception("No API URL provided") def transform(self): """ Placeholder method for future transformation logic. """ self.transformed_data = self.api_response @abstractmethod def load(self): """ Load data into target model """ raise Exception("No model to transform") def run(self) -> None: self.extract() self.transform() self.load()