Source code for DashAI.back.converters.base_converter

from __future__ import annotations

from abc import ABCMeta, abstractmethod
from typing import Final, Type, Union

from DashAI.back.config_object import ConfigObject
from DashAI.back.dataloaders.classes.dashai_dataset import DashAIDataset


[docs]class BaseConverter(ConfigObject, metaclass=ABCMeta): """ Base class for all converters Converters are for modifying the data in a supervised or unsupervised way (e.g. by adding, changing, or removing columns, but not by adding or removing rows) """ TYPE: Final[str] = "Converter" def changes_row_count(self) -> bool: """ Indicates if the converter changes the number of rows in the dataset. Samplers typically do, while most other transformers do not. """ return False @abstractmethod def fit( self, x: DashAIDataset, y: Union[DashAIDataset, None] = None ) -> Type[BaseConverter]: """Fit the converter. This method should allow to validate the converter's parameters. Parameters ---------- X : DashAIDataset Training data y: DashAIDataset Target data for supervised learning Returns ---------- self The fitted converter object. """ raise NotImplementedError @abstractmethod def transform( self, x: DashAIDataset, y: Union[DashAIDataset, None] = None ) -> DashAIDataset: """Transform the dataset. Parameters ---------- X : DashAIDataset Dataset to be converted y: DashAIDataset Target vectors Returns ------- Dataset converted """ raise NotImplementedError