|
| 1 | +from alert.alert_system import AlertSystem |
| 2 | +from drift_detector.base_drift_detector import BaseDriftDetector |
| 3 | +from embedding.base_embedding_system import BaseEmbeddingSystem |
| 4 | +from ingestor_interface.base_ingestor import BaseIngestor |
| 5 | +from labeling_function_lib.labeling_function_lib import LabelingFunctionLib |
| 6 | +from loader_interface.base_loader import BaseLoader |
| 7 | +from model_trainer.model_trainer import ModelTrainer |
| 8 | +import logging |
| 9 | + |
| 10 | + |
| 11 | +class Core: |
| 12 | + def __init__(self) -> None: |
| 13 | + self.alert_sys: AlertSystem = None |
| 14 | + self.drift_detector: BaseDriftDetector = None |
| 15 | + self.embedding: BaseEmbeddingSystem = None |
| 16 | + self.ingestor: BaseIngestor = None |
| 17 | + self.labeling_function_lib: LabelingFunctionLib = None |
| 18 | + self.loader: BaseLoader = None |
| 19 | + self.model_trainer: ModelTrainer = None |
| 20 | + self.logger = logging.getLogger(self.__class__.__name__) |
| 21 | + |
| 22 | + |
| 23 | +class CoreBuilder: |
| 24 | + def __init__(self) -> None: |
| 25 | + self.core = Core() |
| 26 | + |
| 27 | + def with_alert_system(self, alert_system: AlertSystem) -> None: |
| 28 | + self.core.alert_sys = alert_system |
| 29 | + |
| 30 | + def with_drift_detector(self, drift_detector: BaseDriftDetector) -> None: |
| 31 | + self.core.drift_detector = drift_detector |
| 32 | + |
| 33 | + def with_embedding(self, embedding: BaseEmbeddingSystem) -> None: |
| 34 | + self.core.embedding = embedding |
| 35 | + |
| 36 | + def with_ingestor(self, ingestor: BaseIngestor) -> None: |
| 37 | + self.core.ingestor = ingestor |
| 38 | + |
| 39 | + def with_labeling_function_lib(self, lf_lib: LabelingFunctionLib) -> None: |
| 40 | + self.core.labeling_function_lib = lf_lib |
| 41 | + |
| 42 | + def with_loader(self, loader: BaseLoader) -> None: |
| 43 | + self.core.loader = loader |
| 44 | + |
| 45 | + def with_model_trainer(self, model_trainer: ModelTrainer) -> None: |
| 46 | + self.core.model_trainer = model_trainer |
| 47 | + |
| 48 | + def build(self) -> Core: |
| 49 | + return self.core |
| 50 | + |
0 commit comments