sinapsis-data-tools 0.2.29__tar.gz → 0.2.31__tar.gz
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.
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/PKG-INFO +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/README.md +1 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/helpers/tags.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/__init__.py +1 -2
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/inference/ml_base_inference.py +4 -3
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/inference/xgboost_inference.py +3 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/training/ml_base_training.py +6 -6
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/training/sklearn_manifold.py +9 -9
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/training/sklearn_train.py +6 -10
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/training/xgboost_train.py +2 -3
- sinapsis_data_tools-0.2.31/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/transformation/categorical_to_numerical.py +43 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/tags.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/audio_readers/audio_reader_pydub.py +8 -5
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/audio_readers/audio_reader_soundfile.py +8 -4
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/audio_readers/base_audio_reader.py +6 -5
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/base_file_data_loader.py +8 -7
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/datasets_readers/csv_datasets.py +5 -3
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/datasets_readers/dataset_splitter.py +10 -17
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/datasets_readers/sklearn_datasets.py +30 -19
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/datasets_readers/sktime_datasets.py +44 -33
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/image_readers/base_image_folder_data_loader.py +3 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/image_readers/coco_dataset_reader.py +23 -9
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/image_readers/csv_dataset_reader.py +8 -5
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/image_readers/image_folder_reader_cv2.py +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/image_readers/image_folder_reader_kornia.py +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/text_readers/text_input.py +1 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/video_readers/base_video_reader.py +12 -5
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/video_readers/video_reader_cv2.py +7 -5
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/video_readers/video_reader_dali.py +11 -6
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/video_readers/video_reader_ffmpeg.py +10 -4
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/video_readers/video_reader_torchcodec.py +9 -4
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_tools.egg-info/PKG-INFO +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_tools.egg-info/SOURCES.txt +3 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/annotation_drawer_tools.py +14 -13
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/plot_distributions.py +4 -3
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/scikit_pca_analysis.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/tags.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/__init__.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/base_annotation_drawer.py +4 -2
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/base_visualization_template.py +11 -10
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/bbox_drawer.py +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/data_distribution_visualization.py +17 -10
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/key_points_drawer.py +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/label_drawer.py +5 -2
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/oriented_bbox_drawer.py +2 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/segmentation_mask_drawer.py +4 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/templates/tabular_data_visualization.py +29 -25
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/helpers/tags.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/annotation_writers/base_annotation_writer.py +14 -9
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/annotation_writers/coco_annotation_writer.py +2 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/audio_writers/audio_writer_soundfile.py +6 -5
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/generic_data_writers/generic_data_json_writer.py +6 -4
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/image_writers/image_saver.py +18 -15
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/image_writers/pdf_to_image_converter.py +5 -3
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/video_writers/base_video_writer.py +8 -6
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/video_writers/video_writer_cv2.py +7 -3
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/video_writers/video_writer_ffmpeg.py +8 -4
- sinapsis_data_tools-0.2.31/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/__init__.py +0 -0
- sinapsis_data_tools-0.2.31/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/image_color_space_converter.py +139 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/tags.py +1 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/__init__.py +2 -1
- sinapsis_data_tools-0.2.31/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/context_chunker.py +58 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/image_color_conversion_np.py +2 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/mask_non_roi.py +28 -7
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/packet_buffer_queue.py +3 -1
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/source_history_aggregator.py +2 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/templates/text_content_filter.py +13 -14
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/pyproject.toml +2 -1
- sinapsis_data_tools-0.2.29/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/transformation/categorical_to_numerical.py +0 -45
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/LICENSE +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/helpers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/helpers/excluded_models.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/helpers/model_metrics.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/inference/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/inference/sklearn_inference.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_analysis/src/sinapsis_data_analysis/templates/training/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/coco_dataclasses.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/csv_reader.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/file_path_helpers.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/sklearn_dataset_subset.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/sktime_datasets_subset.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/helpers/text_input_helpers.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/audio_readers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/audio_readers/audio_reader_to_bytes.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/datasets_readers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/image_readers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/text_readers/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_readers/src/sinapsis_data_readers/templates/video_readers/__init__.py +0 -0
- /sinapsis_data_tools-0.2.29/packages/sinapsis_data_visualization/src/__init__.py → /sinapsis_data_tools-0.2.31/packages/sinapsis_data_readers/src/test_gradio_client.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_tools.egg-info/dependency_links.txt +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_tools.egg-info/requires.txt +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_tools.egg-info/top_level.txt +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_visualization/src/sinapsis_data_visualization → sinapsis_data_tools-0.2.31/packages/sinapsis_data_visualization/src}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_visualization/src/sinapsis_data_visualization}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_writers/src/sinapsis_data_writers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/annotation_drawer_types.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/color_utils.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_visualization/src/sinapsis_data_visualization/helpers/detection_utils.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_writers/src/sinapsis_data_writers/helpers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_writers/src/sinapsis_data_writers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/annotation_writers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_writers/src/sinapsis_data_writers/helpers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/audio_writers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/annotation_writers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/image_writers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/audio_writers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/video_writers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/image_writers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers → sinapsis_data_tools-0.2.31/packages/sinapsis_data_writers/src/sinapsis_data_writers/templates/video_writers}/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/__init__.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/audio_encoder.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/encode_img_base64.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/file_downloader.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/image_color_space_converter_cv.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/packages/sinapsis_generic_data_tools/src/sinapsis_generic_data_tools/helpers/image_color_space_converter_torch.py +0 -0
- {sinapsis_data_tools-0.2.29 → sinapsis_data_tools-0.2.31}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sinapsis-data-tools
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.31
|
|
4
4
|
Summary: Module that contains different packages to perform data-related operations through Sinapsis templates.
|
|
5
5
|
Author-email: SinapsisAI <dev@sinapsis.tech>
|
|
6
6
|
Project-URL: Homepage, https://sinapsis.tech
|
|
@@ -22,6 +22,7 @@ Requires-Dist: sinapsis-data-visualization[all]; extra == "all"
|
|
|
22
22
|
Requires-Dist: sinapsis-generic-data-tools[all]; extra == "all"
|
|
23
23
|
Dynamic: license-file
|
|
24
24
|
|
|
25
|
+
[](https://github.com/Sinapsis-AI/sinapsis-data-tools/blob/main/README.es.md)
|
|
25
26
|
<h1 align="center">
|
|
26
27
|
<br>
|
|
27
28
|
<a href="https://sinapsis.tech/">
|
|
@@ -10,7 +10,6 @@ _ADDITIONAL_TEMPLATE_MODULES = [
|
|
|
10
10
|
f"{_root_lib_path}.training.sklearn_manifold",
|
|
11
11
|
f"{_root_lib_path}.training.sklearn_train",
|
|
12
12
|
f"{_root_lib_path}.training.xgboost_train",
|
|
13
|
-
|
|
14
13
|
]
|
|
15
14
|
_template_lookup: dict = {
|
|
16
15
|
"SKLearnInference": f"{_root_lib_path}.inference.sklearn_inference",
|
|
@@ -21,7 +20,7 @@ for t_module in _ADDITIONAL_TEMPLATE_MODULES:
|
|
|
21
20
|
_template_lookup |= _import_template_package(t_module)
|
|
22
21
|
|
|
23
22
|
|
|
24
|
-
def __getattr__(name: str) -> Template:
|
|
23
|
+
def __getattr__(name: str) -> Template | None:
|
|
25
24
|
if name in _template_lookup:
|
|
26
25
|
module = importlib.import_module(_template_lookup[name])
|
|
27
26
|
return getattr(module, name)
|
|
@@ -26,14 +26,15 @@ class MLBaseInference(Template):
|
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
28
|
model_path: str
|
|
29
|
-
root_dir
|
|
29
|
+
root_dir: str = WORKING_DIR
|
|
30
30
|
generic_field_key: str
|
|
31
|
-
target_key
|
|
31
|
+
target_key: str
|
|
32
|
+
|
|
33
|
+
attributes: AttributesBaseModel
|
|
32
34
|
|
|
33
35
|
def __init__(self, attributes: TemplateAttributes) -> None:
|
|
34
36
|
super().__init__(attributes)
|
|
35
37
|
|
|
36
|
-
|
|
37
38
|
def get_data(self, container: DataContainer) -> Any:
|
|
38
39
|
"""Get the data from the data container
|
|
39
40
|
|
|
@@ -5,6 +5,8 @@ from sinapsis_core.template_base.base_models import UIPropertiesMetadata
|
|
|
5
5
|
from sinapsis_data_analysis.helpers.tags import Tags
|
|
6
6
|
from sinapsis_data_analysis.templates.inference.sklearn_inference import SKLearnInference
|
|
7
7
|
|
|
8
|
+
tags = SKLearnInference.UIProperties.tags if SKLearnInference.UIProperties.tags is not None else []
|
|
9
|
+
|
|
8
10
|
|
|
9
11
|
class XGBoostInference(SKLearnInference):
|
|
10
12
|
"""Dynamic templates to perform inference using XGBoost models.
|
|
@@ -27,4 +29,4 @@ class XGBoostInference(SKLearnInference):
|
|
|
27
29
|
|
|
28
30
|
"""
|
|
29
31
|
|
|
30
|
-
UIProperties = UIPropertiesMetadata(category="XGBoost", tags=[Tags.XGBOOST, *
|
|
32
|
+
UIProperties = UIPropertiesMetadata(category="XGBoost", tags=[Tags.XGBOOST, *tags])
|
|
@@ -31,7 +31,7 @@ class MLBaseAttributes(TemplateAttributes):
|
|
|
31
31
|
model_save_path (str): Path where the trained model will be saved.
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
|
-
root_dir
|
|
34
|
+
root_dir: str = WORKING_DIR
|
|
35
35
|
model_save_path: str
|
|
36
36
|
|
|
37
37
|
|
|
@@ -45,6 +45,7 @@ class MLBaseTraining(BaseDynamicWrapperTemplate):
|
|
|
45
45
|
"""
|
|
46
46
|
|
|
47
47
|
AttributesBaseModel = MLBaseAttributes
|
|
48
|
+
attributes: MLBaseAttributes
|
|
48
49
|
|
|
49
50
|
def __init__(self, attributes: TemplateAttributes) -> None:
|
|
50
51
|
"""Initialize the MLBase template.
|
|
@@ -66,7 +67,6 @@ class MLBaseTraining(BaseDynamicWrapperTemplate):
|
|
|
66
67
|
Any: The dataset from the generic field.
|
|
67
68
|
"""
|
|
68
69
|
|
|
69
|
-
|
|
70
70
|
return container.data_frames
|
|
71
71
|
|
|
72
72
|
@staticmethod
|
|
@@ -105,7 +105,7 @@ class MLBaseTraining(BaseDynamicWrapperTemplate):
|
|
|
105
105
|
y_test = data_set.content
|
|
106
106
|
else:
|
|
107
107
|
if "x_dataset" in data_set.source:
|
|
108
|
-
x_train =
|
|
108
|
+
x_train = data_set.content
|
|
109
109
|
elif "y_dataset" in data_set.source:
|
|
110
110
|
y_train = data_set.content
|
|
111
111
|
|
|
@@ -119,7 +119,7 @@ class MLBaseTraining(BaseDynamicWrapperTemplate):
|
|
|
119
119
|
y_train (Any): The training targets
|
|
120
120
|
"""
|
|
121
121
|
|
|
122
|
-
self.trained_model = self.model.fit(x_train, y_train)
|
|
122
|
+
self.trained_model = self.model.fit(x_train, y_train) # ty: ignore[unresolved-attribute]
|
|
123
123
|
|
|
124
124
|
@staticmethod
|
|
125
125
|
def calculate_classification_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> ModelMetrics:
|
|
@@ -192,8 +192,8 @@ class MLBaseTraining(BaseDynamicWrapperTemplate):
|
|
|
192
192
|
predictions = self.trained_model.predict(x_test)
|
|
193
193
|
|
|
194
194
|
metrics = self.calculate_metrics(y_test, predictions)
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
if metrics is not None:
|
|
196
|
+
return ModelPredictionResults(predictions=predictions, metrics=metrics)
|
|
197
197
|
return None
|
|
198
198
|
|
|
199
199
|
def handle_model_training(self, processed_data: tuple) -> ModelPredictionResults | None:
|
|
@@ -4,7 +4,6 @@ import numpy as np
|
|
|
4
4
|
import pandas as pd
|
|
5
5
|
from pydantic import BaseModel, ConfigDict
|
|
6
6
|
from sinapsis_core.data_containers.data_packet import DataContainer
|
|
7
|
-
from sinapsis_core.template_base import Template
|
|
8
7
|
from sinapsis_core.template_base.base_models import TemplateAttributes, UIPropertiesMetadata
|
|
9
8
|
from sinapsis_core.template_base.dynamic_template import (
|
|
10
9
|
BaseDynamicWrapperTemplate,
|
|
@@ -44,7 +43,8 @@ class SKLearnManifold(BaseDynamicWrapperTemplate):
|
|
|
44
43
|
target_key (str): Key of the generic field where data is stored.
|
|
45
44
|
"""
|
|
46
45
|
|
|
47
|
-
target_key
|
|
46
|
+
target_key: str = "target"
|
|
47
|
+
|
|
48
48
|
WrapperEntry = WrapperEntryConfig(
|
|
49
49
|
wrapped_object=manifold,
|
|
50
50
|
signature_from_doc_string=True,
|
|
@@ -56,7 +56,7 @@ class SKLearnManifold(BaseDynamicWrapperTemplate):
|
|
|
56
56
|
category="SKLearn",
|
|
57
57
|
tags=[Tags.DATA_ANALYSIS, Tags.DYNAMIC, Tags.MANIFOLD, Tags.SKLEARN, Tags.MODELS],
|
|
58
58
|
)
|
|
59
|
-
|
|
59
|
+
attributes: AttributesBaseModel
|
|
60
60
|
|
|
61
61
|
def __init__(self, attributes: TemplateAttributes) -> None:
|
|
62
62
|
super().__init__(attributes)
|
|
@@ -89,7 +89,6 @@ class SKLearnManifold(BaseDynamicWrapperTemplate):
|
|
|
89
89
|
"""
|
|
90
90
|
return container.data_frames
|
|
91
91
|
|
|
92
|
-
|
|
93
92
|
def process_dataset(self, dataset: list) -> ManifoldResults | None:
|
|
94
93
|
"""
|
|
95
94
|
Extracts the training data, reshapes it, and applies the
|
|
@@ -113,11 +112,12 @@ class SKLearnManifold(BaseDynamicWrapperTemplate):
|
|
|
113
112
|
y_train = set.content[self.attributes.target_key]
|
|
114
113
|
x_train = set.content.pop(self.attributes.target_key)
|
|
115
114
|
|
|
115
|
+
if x_train is not None and y_train is not None:
|
|
116
|
+
x_train_reshaped = self.reshape_arrays(x_train)
|
|
117
|
+
x_transformed = self.manifold_model.fit_transform(x_train_reshaped) # ty: ignore[unresolved-attribute]
|
|
116
118
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return ManifoldResults(labels=y_train, x_transformed=x_transformed)
|
|
119
|
+
return ManifoldResults(labels=y_train, x_transformed=x_transformed)
|
|
120
|
+
return None
|
|
121
121
|
|
|
122
122
|
def execute(self, container: DataContainer) -> DataContainer:
|
|
123
123
|
"""
|
|
@@ -143,7 +143,7 @@ class SKLearnManifold(BaseDynamicWrapperTemplate):
|
|
|
143
143
|
return container
|
|
144
144
|
|
|
145
145
|
|
|
146
|
-
def __getattr__(name: str) ->
|
|
146
|
+
def __getattr__(name: str) -> type[BaseDynamicWrapperTemplate]:
|
|
147
147
|
"""
|
|
148
148
|
Only create a template if it's imported, this avoids creating all the base models for all templates
|
|
149
149
|
and potential import errors due to not available packages.
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
import joblib
|
|
3
|
-
from sinapsis_core.template_base import Template
|
|
4
3
|
from sinapsis_core.template_base.base_models import UIPropertiesMetadata
|
|
5
4
|
from sinapsis_core.template_base.dynamic_template import WrapperEntryConfig
|
|
6
|
-
from sinapsis_core.template_base.dynamic_template_factory import make_dynamic_template
|
|
5
|
+
from sinapsis_core.template_base.dynamic_template_factory import BaseDynamicWrapperTemplate, make_dynamic_template
|
|
7
6
|
from sinapsis_core.utils.env_var_keys import SINAPSIS_BUILD_DOCS
|
|
8
7
|
from sinapsis_data_analysis.helpers.excluded_models import (
|
|
8
|
+
excluded_cluster_models,
|
|
9
9
|
excluded_linear_models,
|
|
10
10
|
excluded_neighbors_models,
|
|
11
11
|
excluded_svm_models,
|
|
12
12
|
excluded_tree_models,
|
|
13
|
-
excluded_cluster_models
|
|
14
13
|
)
|
|
15
14
|
from sinapsis_data_analysis.helpers.tags import Tags
|
|
16
15
|
from sinapsis_data_analysis.templates.training.ml_base_training import MLBaseTraining
|
|
17
|
-
from sklearn import linear_model, neighbors, neural_network, svm, tree
|
|
16
|
+
from sklearn import cluster, linear_model, neighbors, neural_network, svm, tree
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
class SKLearnLinearModelsTrain(MLBaseTraining):
|
|
@@ -54,7 +53,7 @@ class SKLearnLinearModelsTrain(MLBaseTraining):
|
|
|
54
53
|
category="SKLearn", tags=[Tags.DATA_ANALYSIS, Tags.LINEAR_REGRESSION, Tags.MODELS, Tags.SKLEARN, Tags.TRAINING]
|
|
55
54
|
)
|
|
56
55
|
|
|
57
|
-
def _save_model_implementation(self, full_path:str) -> None:
|
|
56
|
+
def _save_model_implementation(self, full_path: str) -> None:
|
|
58
57
|
"""
|
|
59
58
|
Implements the abstract method from the base class to
|
|
60
59
|
save the model to the path specified in attributes.
|
|
@@ -213,7 +212,6 @@ class SKLearnSVMModelsTrain(SKLearnLinearModelsTrain):
|
|
|
213
212
|
)
|
|
214
213
|
|
|
215
214
|
|
|
216
|
-
|
|
217
215
|
class SKLearnClusterModelsTrain(SKLearnLinearModelsTrain):
|
|
218
216
|
"""
|
|
219
217
|
This template dynamically wraps sklearn's svm module,
|
|
@@ -249,9 +247,7 @@ class SKLearnClusterModelsTrain(SKLearnLinearModelsTrain):
|
|
|
249
247
|
)
|
|
250
248
|
|
|
251
249
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
def __getattr__(name: str) -> Template:
|
|
250
|
+
def __getattr__(name: str) -> type[BaseDynamicWrapperTemplate]:
|
|
255
251
|
"""
|
|
256
252
|
Only create a template if it's imported, this avoids creating all the base models for all templates
|
|
257
253
|
and potential import errors due to not available packages.
|
|
@@ -277,7 +273,7 @@ __all__ = (
|
|
|
277
273
|
+ SKLearnNNModelsTrain.WrapperEntry.module_att_names
|
|
278
274
|
+ SKLearnTreeModelsTrain.WrapperEntry.module_att_names
|
|
279
275
|
+ SKLearnSVMModelsTrain.WrapperEntry.module_att_names
|
|
280
|
-
+ SKLearnClusterModelsTrain.WrapperEntry.module_att_names
|
|
276
|
+
+ SKLearnClusterModelsTrain.WrapperEntry.module_att_names
|
|
281
277
|
)
|
|
282
278
|
|
|
283
279
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
import xgboost as xgb
|
|
3
|
-
from sinapsis_core.template_base import Template
|
|
4
3
|
from sinapsis_core.template_base.base_models import UIPropertiesMetadata
|
|
5
4
|
from sinapsis_core.template_base.dynamic_template import WrapperEntryConfig
|
|
6
|
-
from sinapsis_core.template_base.dynamic_template_factory import make_dynamic_template
|
|
5
|
+
from sinapsis_core.template_base.dynamic_template_factory import BaseDynamicWrapperTemplate, make_dynamic_template
|
|
7
6
|
from sinapsis_core.utils.env_var_keys import SINAPSIS_BUILD_DOCS
|
|
8
7
|
from sinapsis_data_analysis.helpers.tags import Tags
|
|
9
8
|
from sinapsis_data_analysis.templates.training.sklearn_train import SKLearnLinearModelsTrain
|
|
@@ -61,7 +60,7 @@ class XGBoostModelsTraining(SKLearnLinearModelsTrain):
|
|
|
61
60
|
)
|
|
62
61
|
|
|
63
62
|
|
|
64
|
-
def __getattr__(name: str) ->
|
|
63
|
+
def __getattr__(name: str) -> type[BaseDynamicWrapperTemplate]:
|
|
65
64
|
if name in XGBoostModelsTraining.WrapperEntry.module_att_names:
|
|
66
65
|
return make_dynamic_template(name, XGBoostModelsTraining)
|
|
67
66
|
raise AttributeError(f"template `{name}` not found in {__name__}")
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
import pandas as pd
|
|
3
|
+
from sinapsis_core.data_containers.data_packet import DataContainer, DataFramePacket
|
|
4
|
+
from sinapsis_core.template_base.base_models import TemplateAttributes
|
|
5
|
+
from sinapsis_core.template_base.template import Template
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CategoricalToNumerical(Template):
|
|
9
|
+
class AttributesBaseModel(TemplateAttributes):
|
|
10
|
+
generic_key: str
|
|
11
|
+
|
|
12
|
+
attributes: AttributesBaseModel
|
|
13
|
+
|
|
14
|
+
@staticmethod
|
|
15
|
+
def map_categorical_to_numerical(df: pd.DataFrame | pd.Series) -> tuple:
|
|
16
|
+
if isinstance(df, pd.Series):
|
|
17
|
+
categorical_cols = [df.name] if df.dtype in ["object", "string", "category"] else []
|
|
18
|
+
else:
|
|
19
|
+
categorical_cols = df.select_dtypes(include=["object", "string", "category"]).columns.tolist()
|
|
20
|
+
|
|
21
|
+
category_maps = {}
|
|
22
|
+
|
|
23
|
+
for col in categorical_cols:
|
|
24
|
+
categories = df[col].astype("string").unique()
|
|
25
|
+
category_maps[col] = {cat: idx for idx, cat in enumerate(categories)}
|
|
26
|
+
for col, mapping in category_maps.items():
|
|
27
|
+
df[col] = df[col].map(mapping)
|
|
28
|
+
return df, category_maps
|
|
29
|
+
|
|
30
|
+
@staticmethod
|
|
31
|
+
def unmap_numerical_to_categorical(df: pd.DataFrame | pd.Series, categories: dict) -> pd.DataFrame | pd.Series:
|
|
32
|
+
inverse_maps = {col: {v: k for k, v in mapping.items()} for col, mapping in categories.items()}
|
|
33
|
+
|
|
34
|
+
for col in inverse_maps:
|
|
35
|
+
df[col] = df[col].map(inverse_maps[col])
|
|
36
|
+
return df
|
|
37
|
+
|
|
38
|
+
def execute(self, container: DataContainer) -> DataContainer:
|
|
39
|
+
for data_frame in container.data_frames:
|
|
40
|
+
transformed_dataset, labels = self.map_categorical_to_numerical(data_frame.content)
|
|
41
|
+
container.data_frames.append(DataFramePacket(content=transformed_dataset, generic_data=labels))
|
|
42
|
+
|
|
43
|
+
return container
|
|
@@ -17,7 +17,8 @@ from sinapsis_data_readers.templates.audio_readers.base_audio_reader import (
|
|
|
17
17
|
)
|
|
18
18
|
|
|
19
19
|
AudioReaderPydubUIProperties = _AudioBaseReader.UIProperties
|
|
20
|
-
AudioReaderPydubUIProperties.tags
|
|
20
|
+
if AudioReaderPydubUIProperties.tags is not None:
|
|
21
|
+
AudioReaderPydubUIProperties.tags.extend([Tags.PYDUB])
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
class AudioReaderPydub(_AudioBaseReader):
|
|
@@ -66,6 +67,7 @@ class AudioReaderPydub(_AudioBaseReader):
|
|
|
66
67
|
audio_reader_format: Literal["wav", "raw", "pcm"] | None = None
|
|
67
68
|
|
|
68
69
|
UIProperties = AudioReaderPydubUIProperties
|
|
70
|
+
attributes: AttributesBaseModel
|
|
69
71
|
|
|
70
72
|
def read_file(self) -> AudioPacket | None:
|
|
71
73
|
"""Reads audio data from a file path or bytes and returns an AudioPacket.
|
|
@@ -84,9 +86,7 @@ class AudioReaderPydub(_AudioBaseReader):
|
|
|
84
86
|
audio_segment = AudioSegment.from_file(io.BytesIO(audio_bytes))
|
|
85
87
|
|
|
86
88
|
else:
|
|
87
|
-
|
|
88
89
|
audio_file_path = self.get_full_path()
|
|
89
|
-
#audio_file_path = os.path.join(self.attributes.root_dir, audio_file_path)
|
|
90
90
|
if os.path.exists(audio_file_path):
|
|
91
91
|
audio_segment = AudioSegment.from_file(audio_file_path, format=self.attributes.audio_reader_format)
|
|
92
92
|
|
|
@@ -138,7 +138,9 @@ class LazyAudioReaderPydub(AudioReaderPydub):
|
|
|
138
138
|
|
|
139
139
|
class AttributesBaseModel(AudioReaderPydub.AttributesBaseModel):
|
|
140
140
|
generic_key: str
|
|
141
|
-
audio_file_path: str | None = None
|
|
141
|
+
audio_file_path: str | None = None
|
|
142
|
+
|
|
143
|
+
attributes: AttributesBaseModel
|
|
142
144
|
|
|
143
145
|
def get_file_path_from_generic_data(self, container: DataContainer) -> None:
|
|
144
146
|
"""Method to retrieve the file path from the genetic data field of DataContainer.
|
|
@@ -148,7 +150,8 @@ class LazyAudioReaderPydub(AudioReaderPydub):
|
|
|
148
150
|
container (DataContainer): The DataContainer to extract the file path from
|
|
149
151
|
"""
|
|
150
152
|
if self.attributes.generic_key:
|
|
151
|
-
|
|
153
|
+
generic_data = self._get_generic_data(container)
|
|
154
|
+
file_path = getattr(generic_data, self.attributes.generic_key, None)
|
|
152
155
|
if file_path:
|
|
153
156
|
self.attributes.audio_file_path = file_path
|
|
154
157
|
else:
|
|
@@ -14,7 +14,8 @@ from sinapsis_data_readers.templates.audio_readers.base_audio_reader import (
|
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
AudioReaderSoundfileUIProperties = _AudioBaseReader.UIProperties
|
|
17
|
-
AudioReaderSoundfileUIProperties.tags
|
|
17
|
+
if AudioReaderSoundfileUIProperties.tags is not None:
|
|
18
|
+
AudioReaderSoundfileUIProperties.tags.extend([Tags.SOUNDFILE])
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
class AudioReaderSoundfile(_AudioBaseReader):
|
|
@@ -111,7 +112,9 @@ class LazyAudioReaderSoundfile(AudioReaderSoundfile):
|
|
|
111
112
|
|
|
112
113
|
class AttributesBaseModel(_AudioBaseReader.AttributesBaseModel):
|
|
113
114
|
generic_key: str
|
|
114
|
-
audio_file_path: str | None = None
|
|
115
|
+
audio_file_path: str | None = None
|
|
116
|
+
|
|
117
|
+
attributes: AttributesBaseModel
|
|
115
118
|
|
|
116
119
|
def get_file_path_from_generic_data(self, container: DataContainer) -> None:
|
|
117
120
|
"""Method to retrieve the file path from the genetic data field of DataContainer.
|
|
@@ -121,8 +124,9 @@ class LazyAudioReaderSoundfile(AudioReaderSoundfile):
|
|
|
121
124
|
container (DataContainer): The DataContainer to extract the file path from
|
|
122
125
|
"""
|
|
123
126
|
if self.attributes.generic_key:
|
|
124
|
-
|
|
125
|
-
|
|
127
|
+
generic_data = self._get_generic_data(container)
|
|
128
|
+
file_path = getattr(generic_data, self.attributes.generic_key, None)
|
|
129
|
+
if file_path is not None:
|
|
126
130
|
self.attributes.audio_file_path = file_path
|
|
127
131
|
else:
|
|
128
132
|
self.logger.warning("No audio path in the existing container")
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import abc
|
|
4
4
|
import os
|
|
5
|
-
from typing import cast
|
|
6
5
|
from uuid import uuid4
|
|
7
6
|
|
|
8
7
|
from sinapsis_core.data_containers.data_packet import AudioPacket, DataContainer
|
|
@@ -30,11 +29,12 @@ class _AudioBaseReader(_BaseDataReader):
|
|
|
30
29
|
The source identifier, defaults to "streamlit".
|
|
31
30
|
"""
|
|
32
31
|
|
|
33
|
-
|
|
34
32
|
root_dir: str | None = None
|
|
35
33
|
audio_file_path: str
|
|
36
34
|
source: str = str(uuid4())
|
|
37
35
|
|
|
36
|
+
attributes: AttributesBaseModel
|
|
37
|
+
|
|
38
38
|
@abc.abstractmethod
|
|
39
39
|
def read_file(self) -> AudioPacket | None:
|
|
40
40
|
"""Abstract method to read the audio data.
|
|
@@ -46,9 +46,10 @@ class _AudioBaseReader(_BaseDataReader):
|
|
|
46
46
|
Returns:
|
|
47
47
|
AudioPacket: The audio data wrapped in an AudioPacket.
|
|
48
48
|
"""
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
|
|
50
|
+
def get_full_path(self) -> str:
|
|
51
|
+
audio_file_path = self.attributes.audio_file_path
|
|
52
|
+
full_path = os.path.join(self.root_dir, audio_file_path)
|
|
52
53
|
return full_path
|
|
53
54
|
|
|
54
55
|
def has_elements(self) -> bool:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
import abc
|
|
3
|
-
from typing import Generator
|
|
3
|
+
from typing import Any, Generator
|
|
4
4
|
|
|
5
5
|
from sinapsis_core.data_containers.data_packet import DataContainer, Packet
|
|
6
6
|
from sinapsis_core.template_base import Template
|
|
@@ -81,7 +81,7 @@ class _BaseDataReader(Template, abc.ABC):
|
|
|
81
81
|
__doc__ = f"""
|
|
82
82
|
{base_attributes_documentation()}
|
|
83
83
|
"""
|
|
84
|
-
root_dir
|
|
84
|
+
root_dir: str | None = None
|
|
85
85
|
data_dir: str
|
|
86
86
|
pattern: str = "**/*"
|
|
87
87
|
batch_size: int = 1
|
|
@@ -89,17 +89,18 @@ class _BaseDataReader(Template, abc.ABC):
|
|
|
89
89
|
samples_to_load: int = -1
|
|
90
90
|
load_on_init: bool = False
|
|
91
91
|
|
|
92
|
+
attributes: AttributesBaseModel
|
|
93
|
+
|
|
92
94
|
PACKET_ATT_NAME: str
|
|
93
95
|
|
|
94
96
|
def __init__(self, attributes: TemplateAttributeType) -> None:
|
|
95
97
|
super().__init__(attributes)
|
|
96
98
|
self.counter = 0
|
|
97
|
-
self.
|
|
99
|
+
self.root_dir = self.attributes.root_dir or SINAPSIS_CACHE_DIR
|
|
98
100
|
self.data_collection = self.make_data_entries()
|
|
99
101
|
|
|
100
|
-
|
|
101
102
|
@abc.abstractmethod
|
|
102
|
-
def make_data_entries(self) -> list[
|
|
103
|
+
def make_data_entries(self) -> list[Any]:
|
|
103
104
|
"""
|
|
104
105
|
This method creates the data entries for this template. Each data entry
|
|
105
106
|
consists of a `Packet` type.
|
|
@@ -109,7 +110,7 @@ class _BaseDataReader(Template, abc.ABC):
|
|
|
109
110
|
list[Packet]: list of ImagePacket
|
|
110
111
|
"""
|
|
111
112
|
|
|
112
|
-
def read_packet_content(self, data_packet:
|
|
113
|
+
def read_packet_content(self, data_packet: Any) -> None:
|
|
113
114
|
"""
|
|
114
115
|
Sets the value for data_packet.content where data packets can be ImagePacket|TextPacket...
|
|
115
116
|
|
|
@@ -142,7 +143,7 @@ class _BaseDataReader(Template, abc.ABC):
|
|
|
142
143
|
)
|
|
143
144
|
yield image_packets
|
|
144
145
|
|
|
145
|
-
def __next__(self) -> StopIteration | Generator:
|
|
146
|
+
def __next__(self) -> StopIteration | Generator:
|
|
146
147
|
if not self.has_elements():
|
|
147
148
|
raise StopIteration("No more data to load")
|
|
148
149
|
if self.attributes.batch_size == -1:
|
|
@@ -11,14 +11,16 @@ from sinapsis_data_readers.helpers.csv_reader import read_file
|
|
|
11
11
|
|
|
12
12
|
class CSVDatasetReader(Template):
|
|
13
13
|
class AttributesBaseModel(TemplateAttributes):
|
|
14
|
-
root_dir
|
|
14
|
+
root_dir: str | None = None
|
|
15
15
|
path_to_csv: str
|
|
16
16
|
store_as_time_series: bool = False
|
|
17
17
|
|
|
18
|
+
attributes: AttributesBaseModel
|
|
19
|
+
|
|
18
20
|
def __init__(self, attributes: TemplateAttributeType) -> None:
|
|
19
21
|
super().__init__(attributes)
|
|
20
|
-
self.
|
|
21
|
-
self.csv_file = read_file(os.path.join(self.
|
|
22
|
+
self.root_dir = self.attributes.root_dir or SINAPSIS_CACHE_DIR
|
|
23
|
+
self.csv_file = read_file(os.path.join(self.root_dir, self.attributes.path_to_csv))
|
|
22
24
|
|
|
23
25
|
def execute(self, container: DataContainer) -> DataContainer:
|
|
24
26
|
if self.attributes.store_as_time_series:
|
|
@@ -17,24 +17,22 @@ class CSVDatasetSplitter(Template):
|
|
|
17
17
|
|
|
18
18
|
class AttributesBaseModel(TemplateAttributes):
|
|
19
19
|
target_key: str = "target" # labels
|
|
20
|
-
feature_key: str | None
|
|
20
|
+
feature_key: str | None = None # arrays
|
|
21
21
|
random_state: int = 42
|
|
22
22
|
train_size: float = 0.2
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
attributes: AttributesBaseModel
|
|
26
25
|
|
|
27
26
|
def extract_x_y_from_packet(self, data_frame: DataFramePacket) -> tuple[pd.DataFrame, pd.DataFrame]:
|
|
28
|
-
|
|
29
|
-
|
|
30
27
|
target = data_frame.content.get(self.attributes.target_key)
|
|
31
|
-
feature =
|
|
32
|
-
|
|
28
|
+
feature = (
|
|
29
|
+
data_frame.content.get(self.attributes.feature_key)
|
|
30
|
+
if self.attributes.feature_key
|
|
33
31
|
else data_frame.content.drop(columns=[self.attributes.target_key])
|
|
32
|
+
)
|
|
34
33
|
return feature, target
|
|
35
34
|
|
|
36
|
-
def split_dataset(self, x_data:pd.DataFrame, y_data:pd.DataFrame) -> dict:
|
|
37
|
-
|
|
35
|
+
def split_dataset(self, x_data: pd.DataFrame, y_data: pd.DataFrame) -> dict:
|
|
38
36
|
x_train, x_test, y_train, y_test = train_test_split(
|
|
39
37
|
x_data,
|
|
40
38
|
y_data,
|
|
@@ -42,14 +40,10 @@ class CSVDatasetSplitter(Template):
|
|
|
42
40
|
test_size=1 - self.attributes.train_size,
|
|
43
41
|
random_state=self.attributes.random_state,
|
|
44
42
|
)
|
|
45
|
-
data_map = {
|
|
46
|
-
"x_train": x_train,
|
|
47
|
-
"y_train": y_train,
|
|
48
|
-
"x_test": x_test,
|
|
49
|
-
"y_test": y_test
|
|
50
|
-
}
|
|
43
|
+
data_map = {"x_train": x_train, "y_train": y_train, "x_test": x_test, "y_test": y_test}
|
|
51
44
|
return data_map
|
|
52
|
-
|
|
45
|
+
|
|
46
|
+
def assign_to_dataframe_packets(self, container: DataContainer, source: str, data: pd.DataFrame) -> DataContainer:
|
|
53
47
|
df_packet = DataFramePacket(content=data, source=f"{self.instance_name}_{source}")
|
|
54
48
|
container.data_frames.append(df_packet)
|
|
55
49
|
return container
|
|
@@ -66,4 +60,3 @@ class CSVDatasetSplitter(Template):
|
|
|
66
60
|
for name, data_frame in sample.items():
|
|
67
61
|
container = self.assign_to_dataframe_packets(container, name, data_frame)
|
|
68
62
|
return container
|
|
69
|
-
|