ThreeWToolkit 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ThreeWToolkit might be problematic. Click here for more details.

Files changed (98) hide show
  1. ThreeWToolkit/__init__.py +0 -0
  2. ThreeWToolkit/assessment/__init__.py +0 -0
  3. ThreeWToolkit/assessment/test_results_assessment.py +4 -0
  4. ThreeWToolkit/assessment/training_assessment.py +4 -0
  5. ThreeWToolkit/core/__init__.py +0 -0
  6. ThreeWToolkit/core/base_assessment.py +9 -0
  7. ThreeWToolkit/core/base_assessment_visualization.py +9 -0
  8. ThreeWToolkit/core/base_data_loader.py +44 -0
  9. ThreeWToolkit/core/base_data_visualization.py +9 -0
  10. ThreeWToolkit/core/base_feature_extractor.py +9 -0
  11. ThreeWToolkit/core/base_metrics.py +9 -0
  12. ThreeWToolkit/core/base_model_development.py +9 -0
  13. ThreeWToolkit/core/base_model_trainer.py +9 -0
  14. ThreeWToolkit/core/base_models.py +9 -0
  15. ThreeWToolkit/core/base_optim.py +9 -0
  16. ThreeWToolkit/core/base_preprocessing.py +9 -0
  17. ThreeWToolkit/core/base_time_series_holdout.py +9 -0
  18. ThreeWToolkit/data_loader/__init__.py +0 -0
  19. ThreeWToolkit/data_loader/csv_data_loader.py +4 -0
  20. ThreeWToolkit/data_loader/database_data_loader.py +4 -0
  21. ThreeWToolkit/data_loader/hdf5_data_loader.py +4 -0
  22. ThreeWToolkit/data_loader/json_data_loader.py +4 -0
  23. ThreeWToolkit/data_loader/pickle_data_loader.py +4 -0
  24. ThreeWToolkit/data_loader/threew_data_loader.py +4 -0
  25. ThreeWToolkit/data_visualization/__init__.py +0 -0
  26. ThreeWToolkit/data_visualization/plot_correlation_heatmap.py +4 -0
  27. ThreeWToolkit/data_visualization/plot_fft.py +4 -0
  28. ThreeWToolkit/data_visualization/plot_multiple_series.py +4 -0
  29. ThreeWToolkit/data_visualization/plot_seasonal_decompose.py +4 -0
  30. ThreeWToolkit/data_visualization/plot_series.py +4 -0
  31. ThreeWToolkit/data_visualization/plot_statistical_features.py +4 -0
  32. ThreeWToolkit/data_visualization/plot_wavelet_spectrogram.py +4 -0
  33. ThreeWToolkit/enums/__init__.py +0 -0
  34. ThreeWToolkit/feature_extraction/__init__.py +0 -0
  35. ThreeWToolkit/feature_extraction/extract_autocorrelation.py +4 -0
  36. ThreeWToolkit/feature_extraction/extract_fourier_features.py +4 -0
  37. ThreeWToolkit/feature_extraction/extract_shapelets.py +4 -0
  38. ThreeWToolkit/feature_extraction/extract_statistical_features.py +4 -0
  39. ThreeWToolkit/feature_extraction/extract_wavelet_features.py +4 -0
  40. ThreeWToolkit/feature_extraction/tsfresh_features.py +4 -0
  41. ThreeWToolkit/holdout/__init__.py +0 -0
  42. ThreeWToolkit/holdout/train_test_split.py +4 -0
  43. ThreeWToolkit/logs/dummy.txt +0 -0
  44. ThreeWToolkit/metrics/__init__.py +0 -0
  45. ThreeWToolkit/metrics/accuracy.py +4 -0
  46. ThreeWToolkit/metrics/average_precision.py +4 -0
  47. ThreeWToolkit/metrics/balanced_accuracy.py +4 -0
  48. ThreeWToolkit/metrics/explained_variance.py +4 -0
  49. ThreeWToolkit/metrics/f1_score.py +4 -0
  50. ThreeWToolkit/metrics/homogeneity_score.py +4 -0
  51. ThreeWToolkit/metrics/neg_mean_absolute_error.py +4 -0
  52. ThreeWToolkit/metrics/neg_mean_squared_error.py +4 -0
  53. ThreeWToolkit/metrics/neg_root_mean_squared_error.py +4 -0
  54. ThreeWToolkit/metrics/precision.py +4 -0
  55. ThreeWToolkit/metrics/recall.py +4 -0
  56. ThreeWToolkit/metrics/roc_auc.py +4 -0
  57. ThreeWToolkit/models/anomaly/__init__.py +0 -0
  58. ThreeWToolkit/models/anomaly/autoencoder_anomaly.py +4 -0
  59. ThreeWToolkit/models/anomaly/detect_zscore_anomaly.py +4 -0
  60. ThreeWToolkit/models/anomaly/isolation_forest_anomaly.py +4 -0
  61. ThreeWToolkit/models/anomaly/spectral_residual_anomaly.py +4 -0
  62. ThreeWToolkit/models/classification/__init__.py +0 -0
  63. ThreeWToolkit/models/classification/classification_models.py +5 -0
  64. ThreeWToolkit/models/regression/__init__.py +0 -0
  65. ThreeWToolkit/models/regression/regression_models.py +5 -0
  66. ThreeWToolkit/optim/__init__.py +0 -0
  67. ThreeWToolkit/optim/bayesian.py +4 -0
  68. ThreeWToolkit/optim/genetic_algorithm.py +4 -0
  69. ThreeWToolkit/optim/gradient_optimization.py +4 -0
  70. ThreeWToolkit/optim/grid_search.py +4 -0
  71. ThreeWToolkit/optim/random_search.py +4 -0
  72. ThreeWToolkit/pipeline.py +2 -0
  73. ThreeWToolkit/preprocessing/__init__.py +0 -0
  74. ThreeWToolkit/preprocessing/detrend.py +4 -0
  75. ThreeWToolkit/preprocessing/impute_missing_data.py +4 -0
  76. ThreeWToolkit/preprocessing/impute_target_data.py +4 -0
  77. ThreeWToolkit/preprocessing/normalize.py +4 -0
  78. ThreeWToolkit/preprocessing/rename_columns.py +4 -0
  79. ThreeWToolkit/preprocessing/resample.py +4 -0
  80. ThreeWToolkit/preprocessing/smooth.py +4 -0
  81. ThreeWToolkit/preprocessing/windowing.py +4 -0
  82. ThreeWToolkit/reports/dummy.txt +0 -0
  83. ThreeWToolkit/trainers/__init__.py +0 -0
  84. ThreeWToolkit/trainers/cnn_lstm.py +4 -0
  85. ThreeWToolkit/trainers/elasticnet.py +4 -0
  86. ThreeWToolkit/trainers/inception_time.py +4 -0
  87. ThreeWToolkit/trainers/lstm.py +4 -0
  88. ThreeWToolkit/trainers/sklearn_models.py +4 -0
  89. ThreeWToolkit/trainers/transformer.py +4 -0
  90. ThreeWToolkit/utils/__init__.py +0 -0
  91. ThreeWToolkit/utils/general_utils.py +4 -0
  92. ThreeWToolkit/utils/model_recorder.py +12 -0
  93. ThreeWToolkit/utils/report_generation.py +24 -0
  94. ThreeWToolkit/utils/trainer_logger.py +8 -0
  95. threewtoolkit-0.1.0.dist-info/LICENSE +674 -0
  96. threewtoolkit-0.1.0.dist-info/METADATA +215 -0
  97. threewtoolkit-0.1.0.dist-info/RECORD +98 -0
  98. threewtoolkit-0.1.0.dist-info/WHEEL +4 -0
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_assessment import BaseAssessment
2
+
3
+ class TestResultsAssessment(BaseAssessment):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_assessment import BaseAssessment
2
+
3
+ class TrainingAssessment(BaseAssessment):
4
+ pass
File without changes
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class AssessmentConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseAssessment(ABC):
8
+ def __init__(self, config: AssessmentConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class AssessmentVisualizationConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseAssessmentVisualization(ABC):
8
+ def __init__(self, config: AssessmentVisualizationConfig):
9
+ self.config = config
@@ -0,0 +1,44 @@
1
+ from abc import ABC, abstractmethod
2
+ from pydantic import BaseModel, Field, field_validator
3
+ from typing import Optional, Literal, Union, Tuple, Any
4
+
5
+ class DataLoaderConfig(BaseModel):
6
+ source_path: str = Field(..., description="Path to the data file.")
7
+ file_type: Literal['csv', 'parquet', 'json'] = Field(..., description="File type.")
8
+ has_header: bool = True
9
+ separator: Optional[str] = Field(',', description="Field separator (for CSV).")
10
+ target_column: Optional[str] = Field(None, description="Target column for supervised tasks.")
11
+ shape: Optional[Tuple[int, int]] = None
12
+
13
+ @field_validator('source_path')
14
+ @classmethod
15
+ def path_must_not_be_empty(cls, v):
16
+ if not v.strip():
17
+ raise ValueError("source_path cannot be empty.")
18
+ return v
19
+
20
+
21
+ @field_validator('separator')
22
+ @classmethod
23
+ def validate_separator(cls, v, info):
24
+ file_type = info.data.get("file_type")
25
+ if file_type == 'csv' and not v:
26
+ raise ValueError("Separator must be provided for CSV files.")
27
+ return v
28
+
29
+ class BaseDataLoader(ABC):
30
+ def __init__(self, config: DataLoaderConfig):
31
+ self.config = config
32
+
33
+ @abstractmethod
34
+ def load_data(self) -> Union[Any, Tuple[Any, Any]]:
35
+ """
36
+ Loads data based on the configuration.
37
+ Should return (X, y) or just X.
38
+ """
39
+ pass
40
+
41
+ def describe_config(self):
42
+ print("DataLoader configuration:")
43
+ for k, v in self.config.model_dump().items():
44
+ print(f"{k}: {v}")
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class DataVisualizationConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseDataVisualization(ABC):
8
+ def __init__(self, config: DataVisualizationConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class FeatureExtractorConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseFeatureExtractor(ABC):
8
+ def __init__(self, config: FeatureExtractorConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class MetricsConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseMetrics(ABC):
8
+ def __init__(self, config: MetricsConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class ModelDevelopmentConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseModelDevelopment(ABC):
8
+ def __init__(self, config: ModelDevelopmentConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class ModelTrainerConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseModelTrainer(ABC):
8
+ def __init__(self, config: ModelTrainerConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class ModelsConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseModels(ABC):
8
+ def __init__(self, config: ModelsConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class OptimConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseOptim(ABC):
8
+ def __init__(self, config: OptimConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class PreprocessingConfig(BaseModel):
5
+ pass
6
+
7
+ class BasePreprocessing(ABC):
8
+ def __init__(self, config: PreprocessingConfig):
9
+ self.config = config
@@ -0,0 +1,9 @@
1
+ from abc import ABC
2
+ from pydantic import BaseModel
3
+
4
+ class TimeSeriesHoldoutConfig(BaseModel):
5
+ pass
6
+
7
+ class BaseTimeSeriesHoldout(ABC):
8
+ def __init__(self, config: TimeSeriesHoldoutConfig):
9
+ self.config = config
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_loader import BaseDataLoader
2
+
3
+ class CSVDataLoader(BaseDataLoader):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_loader import BaseDataLoader
2
+
3
+ class DatabaseDataLoader(BaseDataLoader):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_loader import BaseDataLoader
2
+
3
+ class HDF5DataLoader(BaseDataLoader):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_loader import BaseDataLoader
2
+
3
+ class JSONDataLoader(BaseDataLoader):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_loader import BaseDataLoader
2
+
3
+ class PickleDataLoader(BaseDataLoader):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_loader import BaseDataLoader
2
+
3
+ class ThreeWDataLoader(BaseDataLoader):
4
+ pass
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotCorrelationHeatmap(BaseDataVisualization):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotFFT(BaseDataVisualization):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotMultipleSeries(BaseDataVisualization):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotSeasonalDecompose(BaseDataVisualization):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotSeries(BaseDataVisualization):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotStatisticalFeatures(BaseDataVisualization):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_data_visualization import BaseDataVisualization
2
+
3
+ class PlotWaveletSpectrogram(BaseDataVisualization):
4
+ pass
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_feature_extractor import BaseFeatureExtractor
2
+
3
+ class ExtractAutoCorrelation(BaseFeatureExtractor):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_feature_extractor import BaseFeatureExtractor
2
+
3
+ class ExtractFourierFeatures(BaseFeatureExtractor):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_feature_extractor import BaseFeatureExtractor
2
+
3
+ class ExtractShapelets(BaseFeatureExtractor):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_feature_extractor import BaseFeatureExtractor
2
+
3
+ class ExtractStatisticalFeatures(BaseFeatureExtractor):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_feature_extractor import BaseFeatureExtractor
2
+
3
+ class ExtractWaveletFeatures(BaseFeatureExtractor):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_feature_extractor import BaseFeatureExtractor
2
+
3
+ class TSFreshFeatures(BaseFeatureExtractor):
4
+ pass
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_time_series_holdout import BaseTimeSeriesHoldout
2
+
3
+ class TimeSeriesHoldout(BaseTimeSeriesHoldout):
4
+ pass
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class Accuracy(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class AveragePrecision(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class BalancedAccuracy(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class ExplainedVariance(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class F1(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class HomogeneityScore(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class NegMeanAbsoluteError(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class NegMeanSquaredError(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class NegRootMeanSquaredError(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class Precision(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class Recall(BaseMetrics):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_metrics import BaseMetrics
2
+
3
+ class RocAUC(BaseMetrics):
4
+ pass
File without changes
@@ -0,0 +1,4 @@
1
+ from models.classification.classification_models import ClassificationModels
2
+
3
+ class AutoEncoderAnomalyDetector(ClassificationModels):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from models.classification.classification_models import ClassificationModels
2
+
3
+ class ZcoreAnomalyDetector(ClassificationModels):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from models.classification.classification_models import ClassificationModels
2
+
3
+ class IsolationForestDetector(ClassificationModels):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from models.classification.classification_models import ClassificationModels
2
+
3
+ class SpectralResidualAnomalyDetector(ClassificationModels):
4
+ pass
File without changes
@@ -0,0 +1,5 @@
1
+ from abc import ABC
2
+ from ...core.base_models import BaseModels
3
+
4
+ class ClassificationModels(ABC, BaseModels):
5
+ pass
File without changes
@@ -0,0 +1,5 @@
1
+ from abc import ABC
2
+ from ...core.base_models import BaseModels
3
+
4
+ class RegressionModels(ABC, BaseModels):
5
+ pass
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_optim import BaseOptim
2
+
3
+ class Bayesian(BaseOptim):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_optim import BaseOptim
2
+
3
+ class GeneticAlgorithm(BaseOptim):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_optim import BaseOptim
2
+
3
+ class GradientOptimation(BaseOptim):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_optim import BaseOptim
2
+
3
+ class GridSearch(BaseOptim):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_optim import BaseOptim
2
+
3
+ class RandomSearch(BaseOptim):
4
+ pass
@@ -0,0 +1,2 @@
1
+ class Pipeline:
2
+ pass
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class DeTrend(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class ImputeMissingData(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class ImputeTargetData(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class Normalize(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class RenameColumns(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class Resample(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class Smooth(BasePreprocessing):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_preprocessing import BasePreprocessing
2
+
3
+ class Windowing(BasePreprocessing):
4
+ pass
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ from ..core.base_model_trainer import BaseModelTrainer
2
+
3
+ class CNNLSTM(BaseModelTrainer):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_model_trainer import BaseModelTrainer
2
+
3
+ class ElasticNet(BaseModelTrainer):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_model_trainer import BaseModelTrainer
2
+
3
+ class InceptionTime(BaseModelTrainer):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_model_trainer import BaseModelTrainer
2
+
3
+ class LSTM(BaseModelTrainer):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_model_trainer import BaseModelTrainer
2
+
3
+ class SklearnModels(BaseModelTrainer):
4
+ pass
@@ -0,0 +1,4 @@
1
+ from ..core.base_model_trainer import BaseModelTrainer
2
+
3
+ class Transformer(BaseModelTrainer):
4
+ pass
File without changes
@@ -0,0 +1,4 @@
1
+ from abc import ABC
2
+
3
+ class GeneralUtils(ABC):
4
+ pass
@@ -0,0 +1,12 @@
1
+ from abc import ABC
2
+
3
+ class ModelRecorder(ABC):
4
+ pass
5
+
6
+ @staticmethod
7
+ def save_best_model():
8
+ pass
9
+
10
+ @staticmethod
11
+ def load_model():
12
+ pass
@@ -0,0 +1,24 @@
1
+ from abc import ABC
2
+
3
+ class ReportGeneration(ABC):
4
+ pass
5
+
6
+ @staticmethod
7
+ def generate_summary_report():
8
+ pass
9
+
10
+ @staticmethod
11
+ def generate_feature_report():
12
+ pass
13
+
14
+ @staticmethod
15
+ def save_report():
16
+ pass
17
+
18
+ @staticmethod
19
+ def export_results_to_csv():
20
+ pass
21
+
22
+ @staticmethod
23
+ def export_results_to_json():
24
+ pass
@@ -0,0 +1,8 @@
1
+ from abc import ABC
2
+
3
+ class TrainerLogger(ABC):
4
+ pass
5
+
6
+ @staticmethod
7
+ def log_optimation_progress():
8
+ pass