from dataclasses import dataclass from typing import Callable, Iterable from cml.ports.source_adapters import Adapter from cml.ports.ml_adapter import MachineLearningModel from cml.domain.reconstruction import Reconstructor from cml.domain.data_source import DataSource from cml.domain.construction import Constructor from cml.domain.complexity_reduction import FeatureSelector from cml.domain.deconstruction import Deconstructor from cml.shared.settings import ( PreprocessingSettings, BlockProcessingSettings, DeconstructionSettings, ConstructionSettings, FeatureSelectionSettings, ReconstructionSettings ) @dataclass class PreprocessRequest: source_adapter: Adapter pre_settings: PreprocessingSettings block_settings: BlockProcessingSettings density_estimator: MachineLearningModel relative_extrema: Callable @dataclass class KnowledgeSearchRequest: constructor: Constructor feature_selector: FeatureSelector reconstructor: Reconstructor deconstructor: Deconstructor data_source: DataSource stdout: bool @dataclass class DeconstructionRequest: settings: DeconstructionSettings knowledge_type: str @dataclass class CreateConstructorRequest: settings: ConstructionSettings ml_models: Iterable @dataclass class FeatureSelectionRequest: filter_method: MachineLearningModel embedded_method: MachineLearningModel settings: FeatureSelectionSettings @dataclass class ReconstructionRequest: settings: ReconstructionSettings ml_models: Iterable knowledge_domain: str