stouputils 1.7.2__tar.gz → 1.7.3__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.
- {stouputils-1.7.2 → stouputils-1.7.3}/PKG-INFO +23 -22
- {stouputils-1.7.2 → stouputils-1.7.3}/README.md +22 -21
- {stouputils-1.7.2 → stouputils-1.7.3}/pyproject.toml +1 -1
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/collections.py +1 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/github.py +9 -4
- stouputils-1.7.3/stouputils/image.py +423 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/image.pyi +63 -12
- stouputils-1.7.2/stouputils/image.py +0 -225
- {stouputils-1.7.2 → stouputils-1.7.3}/.gitignore +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/LICENSE +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/__init__.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/__main__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/all_doctests.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/all_doctests.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/__init__.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/automatic_docs.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/automatic_docs.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/__init__.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/config.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/config.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/image.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/image.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/video.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/applications/upscaler/video.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/archive.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/archive.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/backup.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/backup.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/collections.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/__init__.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/cd_utils.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/cd_utils.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/github.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/pypi.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/pypi.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/pyproject.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/pyproject.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/stubs.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/continuous_delivery/stubs.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/ctx.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/ctx.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/config/get.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/config/set.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/auto_contrast.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/axis_flip.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/bias_field_correction.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/binary_threshold.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/blur.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/brightness.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/canny.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/clahe.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/common.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/contrast.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/curvature_flow_filter.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/denoise.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/histogram_equalization.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/invert.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/laplacian.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/median_blur.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/noise.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/normalize.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/random_erase.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/resize.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/rotation.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/salt_pepper.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/sharpening.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/shearing.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/threshold.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/translation.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image/zoom.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image_augmentation.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/image_preprocess.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/prosthesis_detection.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/data_processing/technique.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/dataset/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/dataset/dataset.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/dataset/dataset_loader.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/dataset/grouping_strategy.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/dataset/image_loader.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/dataset/xy_tuple.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/metric_dictionnary.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/metric_utils.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/mlflow_utils.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/abstract_model.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/all.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/base_keras.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/all.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/convnext.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/densenet.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/efficientnet.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/mobilenet.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/resnet.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/squeezenet.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/vgg.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras/xception.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/callbacks/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/callbacks/colored_progress_bar.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/callbacks/learning_rate_finder.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/callbacks/model_checkpoint_v2.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/callbacks/progressive_unfreezing.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/callbacks/warmup_scheduler.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/losses/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/losses/next_generation_loss.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/keras_utils/visualizations.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/model_interface.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/models/sandbox.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/range_tuple.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/scripts/augment_dataset.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/scripts/exhaustive_process.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/scripts/preprocess_dataset.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/scripts/routine.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/data_science/utils.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/decorators.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/decorators.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/__init__.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/__init__.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/common.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/common.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/downloader.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/downloader.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/linux.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/linux.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/main.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/main.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/windows.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/installer/windows.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/io.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/io.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/parallel.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/parallel.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/print.py +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/print.pyi +0 -0
- {stouputils-1.7.2 → stouputils-1.7.3}/stouputils/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stouputils
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.3
|
|
4
4
|
Summary: Stouputils is a collection of utility modules designed to simplify and enhance the development process. It includes a range of tools for tasks such as execution of doctests, display utilities, decorators, as well as context managers, and many more.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Stoupy51/stouputils
|
|
6
6
|
Project-URL: Issues, https://github.com/Stoupy51/stouputils/issues
|
|
@@ -86,10 +86,11 @@ It includes a range of tools for tasks such as execution of doctests, display ut
|
|
|
86
86
|
│ └── ...
|
|
87
87
|
│
|
|
88
88
|
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.html">continuous_delivery/</a>
|
|
89
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.cd_utils.html">cd_utils.py</a> <span class="comment"># 🔧
|
|
90
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.github.html">github.py</a> <span class="comment"># 📦 GitHub
|
|
91
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pypi.html">pypi.py</a> <span class="comment"># 📦 PyPI
|
|
92
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pyproject.html">pyproject.py</a> <span class="comment"># 📝
|
|
89
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.cd_utils.html">cd_utils.py</a> <span class="comment"># 🔧 Utilities for continuous delivery</span>
|
|
90
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.github.html">github.py</a> <span class="comment"># 📦 Utilities for continuous delivery on GitHub (upload_to_github)</span>
|
|
91
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pypi.html">pypi.py</a> <span class="comment"># 📦 Utilities for PyPI (pypi_full_routine)</span>
|
|
92
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pyproject.html">pyproject.py</a> <span class="comment"># 📝 Utilities for reading, writing and managing pyproject.toml files</span>
|
|
93
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.stubs.html">stubs.py</a> <span class="comment"># 📝 Utilities for generating stub files using stubgen</span>
|
|
93
94
|
│ └── ...
|
|
94
95
|
│
|
|
95
96
|
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.html">data_science/</a>
|
|
@@ -103,28 +104,28 @@ It includes a range of tools for tasks such as execution of doctests, display ut
|
|
|
103
104
|
│ │ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.models.keras_utils.html">keras_utils/</a> <span class="comment"># 🛠️ Keras utilities (callbacks, losses, visualizations)</span>
|
|
104
105
|
│ │ └── ...
|
|
105
106
|
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.scripts.html">scripts/</a> <span class="comment"># 📜 Data science scripts (augment, preprocess, routine)</span>
|
|
106
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.metric_utils.html">metric_utils.py</a> <span class="comment"># 📏
|
|
107
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.mlflow_utils.html">mlflow_utils.py</a> <span class="comment"># 📊
|
|
107
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.metric_utils.html">metric_utils.py</a> <span class="comment"># 📏 Static methods for calculating various ML metrics</span>
|
|
108
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.mlflow_utils.html">mlflow_utils.py</a> <span class="comment"># 📊 Utility functions for working with MLflow</span>
|
|
108
109
|
│ └── ...
|
|
109
110
|
│
|
|
110
111
|
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.html">installer/</a>
|
|
111
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.common.html">common.py</a> <span class="comment"># 🔧 Common
|
|
112
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.downloader.html">downloader.py</a> <span class="comment"># ⬇️
|
|
113
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.linux.html">linux.py</a> <span class="comment"># 🐧 Linux
|
|
114
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.main.html">main.py</a> <span class="comment"># 🚀
|
|
115
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.windows.html">windows.py</a> <span class="comment"># 💻 Windows
|
|
112
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.common.html">common.py</a> <span class="comment"># 🔧 Common functions used by the Linux and Windows installers modules</span>
|
|
113
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.downloader.html">downloader.py</a> <span class="comment"># ⬇️ Functions for downloading and installing programs from URLs</span>
|
|
114
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.linux.html">linux.py</a> <span class="comment"># 🐧 Linux/macOS specific implementations for installation</span>
|
|
115
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.main.html">main.py</a> <span class="comment"># 🚀 Core installation functions for installing programs from zip files or URLs</span>
|
|
116
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.windows.html">windows.py</a> <span class="comment"># 💻 Windows specific implementations for installation</span>
|
|
116
117
|
│ └── ...
|
|
117
118
|
│
|
|
118
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.all_doctests.html">all_doctests.py</a> <span class="comment"># ✅
|
|
119
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.archive.html">archive.py</a> <span class="comment"># 📦
|
|
120
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.backup.html">backup.py</a> <span class="comment">#
|
|
121
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.collections.html">collections.py</a> <span class="comment"># 🧰
|
|
122
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.ctx.html">ctx.py</a> <span class="comment">#
|
|
123
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.decorators.html">decorators.py</a> <span class="comment"># 🎯 Decorators (
|
|
124
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.image.html">image.py</a> <span class="comment"># 🖼️
|
|
125
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.io.html">io.py</a> <span class="comment">#
|
|
126
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.parallel.html">parallel.py</a> <span class="comment">#
|
|
127
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.print.html">print.py</a> <span class="comment"># 🖨️
|
|
119
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.all_doctests.html">all_doctests.py</a> <span class="comment"># ✅ Run all doctests for all modules in a given directory</span>
|
|
120
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.archive.html">archive.py</a> <span class="comment"># 📦 Functions for creating and managing archives</span>
|
|
121
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.backup.html">backup.py</a> <span class="comment"># 💾 Utilities for backup management (delta backup, consolidate)</span>
|
|
122
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.collections.html">collections.py</a> <span class="comment"># 🧰 Utilities for collection manipulation (unique_list, sort_dict_keys, upsert_in_dataframe, array_to_disk)</span>
|
|
123
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.ctx.html">ctx.py</a> <span class="comment"># 🔇 Context managers (Muffle, LogToFile, MeasureTime, DoNothing)</span>
|
|
124
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.decorators.html">decorators.py</a> <span class="comment"># 🎯 Decorators (measure_time, handle_error, simple_cache, retry, abstract, deprecated, silent)</span>
|
|
125
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.image.html">image.py</a> <span class="comment"># 🖼️ Little utilities for image processing (image_resize, auto_crop, numpy_to_gif, numpy_to_obj)</span>
|
|
126
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.io.html">io.py</a> <span class="comment"># 💾 Utilities for file management (super_json, super_csv, super_copy, super_open, clean_path)</span>
|
|
127
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.parallel.html">parallel.py</a> <span class="comment"># 🔀 Utility functions for parallel processing (multiprocessing, multithreading)</span>
|
|
128
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.print.html">print.py</a> <span class="comment"># 🖨️ Utility functions for printing messages with different levels of importance</span>
|
|
128
129
|
└── ...
|
|
129
130
|
</pre>
|
|
130
131
|
</html>
|
|
@@ -45,10 +45,11 @@ It includes a range of tools for tasks such as execution of doctests, display ut
|
|
|
45
45
|
│ └── ...
|
|
46
46
|
│
|
|
47
47
|
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.html">continuous_delivery/</a>
|
|
48
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.cd_utils.html">cd_utils.py</a> <span class="comment"># 🔧
|
|
49
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.github.html">github.py</a> <span class="comment"># 📦 GitHub
|
|
50
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pypi.html">pypi.py</a> <span class="comment"># 📦 PyPI
|
|
51
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pyproject.html">pyproject.py</a> <span class="comment"># 📝
|
|
48
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.cd_utils.html">cd_utils.py</a> <span class="comment"># 🔧 Utilities for continuous delivery</span>
|
|
49
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.github.html">github.py</a> <span class="comment"># 📦 Utilities for continuous delivery on GitHub (upload_to_github)</span>
|
|
50
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pypi.html">pypi.py</a> <span class="comment"># 📦 Utilities for PyPI (pypi_full_routine)</span>
|
|
51
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.pyproject.html">pyproject.py</a> <span class="comment"># 📝 Utilities for reading, writing and managing pyproject.toml files</span>
|
|
52
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.continuous_delivery.stubs.html">stubs.py</a> <span class="comment"># 📝 Utilities for generating stub files using stubgen</span>
|
|
52
53
|
│ └── ...
|
|
53
54
|
│
|
|
54
55
|
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.html">data_science/</a>
|
|
@@ -62,28 +63,28 @@ It includes a range of tools for tasks such as execution of doctests, display ut
|
|
|
62
63
|
│ │ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.models.keras_utils.html">keras_utils/</a> <span class="comment"># 🛠️ Keras utilities (callbacks, losses, visualizations)</span>
|
|
63
64
|
│ │ └── ...
|
|
64
65
|
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.scripts.html">scripts/</a> <span class="comment"># 📜 Data science scripts (augment, preprocess, routine)</span>
|
|
65
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.metric_utils.html">metric_utils.py</a> <span class="comment"># 📏
|
|
66
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.mlflow_utils.html">mlflow_utils.py</a> <span class="comment"># 📊
|
|
66
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.metric_utils.html">metric_utils.py</a> <span class="comment"># 📏 Static methods for calculating various ML metrics</span>
|
|
67
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.data_science.mlflow_utils.html">mlflow_utils.py</a> <span class="comment"># 📊 Utility functions for working with MLflow</span>
|
|
67
68
|
│ └── ...
|
|
68
69
|
│
|
|
69
70
|
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.html">installer/</a>
|
|
70
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.common.html">common.py</a> <span class="comment"># 🔧 Common
|
|
71
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.downloader.html">downloader.py</a> <span class="comment"># ⬇️
|
|
72
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.linux.html">linux.py</a> <span class="comment"># 🐧 Linux
|
|
73
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.main.html">main.py</a> <span class="comment"># 🚀
|
|
74
|
-
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.windows.html">windows.py</a> <span class="comment"># 💻 Windows
|
|
71
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.common.html">common.py</a> <span class="comment"># 🔧 Common functions used by the Linux and Windows installers modules</span>
|
|
72
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.downloader.html">downloader.py</a> <span class="comment"># ⬇️ Functions for downloading and installing programs from URLs</span>
|
|
73
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.linux.html">linux.py</a> <span class="comment"># 🐧 Linux/macOS specific implementations for installation</span>
|
|
74
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.main.html">main.py</a> <span class="comment"># 🚀 Core installation functions for installing programs from zip files or URLs</span>
|
|
75
|
+
│ ├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.installer.windows.html">windows.py</a> <span class="comment"># 💻 Windows specific implementations for installation</span>
|
|
75
76
|
│ └── ...
|
|
76
77
|
│
|
|
77
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.all_doctests.html">all_doctests.py</a> <span class="comment"># ✅
|
|
78
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.archive.html">archive.py</a> <span class="comment"># 📦
|
|
79
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.backup.html">backup.py</a> <span class="comment">#
|
|
80
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.collections.html">collections.py</a> <span class="comment"># 🧰
|
|
81
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.ctx.html">ctx.py</a> <span class="comment">#
|
|
82
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.decorators.html">decorators.py</a> <span class="comment"># 🎯 Decorators (
|
|
83
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.image.html">image.py</a> <span class="comment"># 🖼️
|
|
84
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.io.html">io.py</a> <span class="comment">#
|
|
85
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.parallel.html">parallel.py</a> <span class="comment">#
|
|
86
|
-
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.print.html">print.py</a> <span class="comment"># 🖨️
|
|
78
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.all_doctests.html">all_doctests.py</a> <span class="comment"># ✅ Run all doctests for all modules in a given directory</span>
|
|
79
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.archive.html">archive.py</a> <span class="comment"># 📦 Functions for creating and managing archives</span>
|
|
80
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.backup.html">backup.py</a> <span class="comment"># 💾 Utilities for backup management (delta backup, consolidate)</span>
|
|
81
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.collections.html">collections.py</a> <span class="comment"># 🧰 Utilities for collection manipulation (unique_list, sort_dict_keys, upsert_in_dataframe, array_to_disk)</span>
|
|
82
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.ctx.html">ctx.py</a> <span class="comment"># 🔇 Context managers (Muffle, LogToFile, MeasureTime, DoNothing)</span>
|
|
83
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.decorators.html">decorators.py</a> <span class="comment"># 🎯 Decorators (measure_time, handle_error, simple_cache, retry, abstract, deprecated, silent)</span>
|
|
84
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.image.html">image.py</a> <span class="comment"># 🖼️ Little utilities for image processing (image_resize, auto_crop, numpy_to_gif, numpy_to_obj)</span>
|
|
85
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.io.html">io.py</a> <span class="comment"># 💾 Utilities for file management (super_json, super_csv, super_copy, super_open, clean_path)</span>
|
|
86
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.parallel.html">parallel.py</a> <span class="comment"># 🔀 Utility functions for parallel processing (multiprocessing, multithreading)</span>
|
|
87
|
+
├── <a href="https://stoupy51.github.io/stouputils/latest/modules/stouputils.print.html">print.py</a> <span class="comment"># 🖨️ Utility functions for printing messages with different levels of importance</span>
|
|
87
88
|
└── ...
|
|
88
89
|
</pre>
|
|
89
90
|
</html>
|
|
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
|
|
|
5
5
|
|
|
6
6
|
[project]
|
|
7
7
|
name = "stouputils"
|
|
8
|
-
version = "1.7.
|
|
8
|
+
version = "1.7.3"
|
|
9
9
|
description = "Stouputils is a collection of utility modules designed to simplify and enhance the development process. It includes a range of tools for tasks such as execution of doctests, display utilities, decorators, as well as context managers, and many more."
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
@@ -3,6 +3,7 @@ This module provides utilities for collection manipulation:
|
|
|
3
3
|
|
|
4
4
|
- unique_list: Remove duplicates from a list while preserving order using object id, hash or str
|
|
5
5
|
- sort_dict_keys: Sort dictionary keys using a given order list (ascending or descending)
|
|
6
|
+
- upsert_in_dataframe: Insert or update a row in a Polars DataFrame based on primary keys
|
|
6
7
|
- array_to_disk: Easily handle large numpy arrays on disk using zarr for efficient storage and access.
|
|
7
8
|
|
|
8
9
|
.. image:: https://raw.githubusercontent.com/Stoupy51/stouputils/refs/heads/main/assets/collections_module.gif
|
|
@@ -9,16 +9,13 @@
|
|
|
9
9
|
|
|
10
10
|
# Imports
|
|
11
11
|
import os
|
|
12
|
-
from typing import
|
|
12
|
+
from typing import Any
|
|
13
13
|
|
|
14
14
|
from ..decorators import handle_error, measure_time
|
|
15
15
|
from ..io import clean_path
|
|
16
16
|
from ..print import info, progress, warning
|
|
17
17
|
from .cd_utils import clean_version, handle_response, version_to_float
|
|
18
18
|
|
|
19
|
-
if TYPE_CHECKING:
|
|
20
|
-
import requests
|
|
21
|
-
|
|
22
19
|
# Constants
|
|
23
20
|
GITHUB_API_URL: str = "https://api.github.com"
|
|
24
21
|
PROJECT_ENDPOINT: str = f"{GITHUB_API_URL}/repos"
|
|
@@ -123,6 +120,7 @@ def handle_existing_tag(owner: str, project_name: str, version: str, headers: di
|
|
|
123
120
|
bool: True if the tag was deleted or if it was not found, False otherwise
|
|
124
121
|
"""
|
|
125
122
|
# Get the tag URL and check if it exists
|
|
123
|
+
import requests
|
|
126
124
|
tag_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/git/refs/tags/v{version}"
|
|
127
125
|
response: requests.Response = requests.get(tag_url, headers=headers)
|
|
128
126
|
|
|
@@ -147,6 +145,7 @@ def delete_existing_release(owner: str, project_name: str, version: str, headers
|
|
|
147
145
|
headers (dict[str, str]): Headers for GitHub API requests
|
|
148
146
|
"""
|
|
149
147
|
# Get the release URL and check if it exists
|
|
148
|
+
import requests
|
|
150
149
|
releases_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/releases/tags/v{version}"
|
|
151
150
|
release_response: requests.Response = requests.get(releases_url, headers=headers)
|
|
152
151
|
|
|
@@ -167,6 +166,7 @@ def delete_existing_tag(tag_url: str, headers: dict[str, str]) -> None:
|
|
|
167
166
|
tag_url (str): URL of the tag to delete
|
|
168
167
|
headers (dict[str, str]): Headers for GitHub API requests
|
|
169
168
|
"""
|
|
169
|
+
import requests
|
|
170
170
|
delete_response: requests.Response = requests.delete(tag_url, headers=headers)
|
|
171
171
|
handle_response(delete_response, "Failed to delete existing tag")
|
|
172
172
|
info("Deleted existing tag")
|
|
@@ -186,6 +186,7 @@ def get_latest_tag(
|
|
|
186
186
|
str|None: Version number of the latest tag, None if no tags exist
|
|
187
187
|
"""
|
|
188
188
|
# Get the tags list
|
|
189
|
+
import requests
|
|
189
190
|
tags_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/tags"
|
|
190
191
|
response = requests.get(tags_url, headers=headers)
|
|
191
192
|
handle_response(response, "Failed to get tags")
|
|
@@ -215,6 +216,7 @@ def get_commits_since_tag(
|
|
|
215
216
|
list[dict]: List of commits since the last tag
|
|
216
217
|
"""
|
|
217
218
|
# Get the commits URL and parameters
|
|
219
|
+
import requests
|
|
218
220
|
commits_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/commits"
|
|
219
221
|
commits_params: dict[str, str] = {"per_page": "100"}
|
|
220
222
|
|
|
@@ -359,6 +361,7 @@ def create_tag(owner: str, project_name: str, version: str, headers: dict[str, s
|
|
|
359
361
|
headers (dict[str, str]): Headers for GitHub API requests
|
|
360
362
|
"""
|
|
361
363
|
# Message and prepare urls
|
|
364
|
+
import requests
|
|
362
365
|
progress(f"Creating tag v{version}")
|
|
363
366
|
create_tag_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/git/refs"
|
|
364
367
|
latest_commit_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/git/refs/heads/main"
|
|
@@ -389,6 +392,7 @@ def create_release(owner: str, project_name: str, version: str, changelog: str,
|
|
|
389
392
|
int: ID of the created release
|
|
390
393
|
"""
|
|
391
394
|
# Message and prepare urls
|
|
395
|
+
import requests
|
|
392
396
|
progress(f"Creating release v{version}")
|
|
393
397
|
release_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/releases"
|
|
394
398
|
release_data: dict[str, str|bool] = {
|
|
@@ -426,6 +430,7 @@ def upload_assets(
|
|
|
426
430
|
progress("Uploading assets")
|
|
427
431
|
|
|
428
432
|
# Get the release details
|
|
433
|
+
import requests
|
|
429
434
|
release_url: str = f"{PROJECT_ENDPOINT}/{owner}/{project_name}/releases/{release_id}"
|
|
430
435
|
response: requests.Response = requests.get(release_url, headers=headers)
|
|
431
436
|
handle_response(response, "Failed to get release details")
|