bluer-objects 6.307.1__tar.gz → 6.309.1__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.
Potentially problematic release.
This version of bluer-objects might be problematic. Click here for more details.
- {bluer_objects-6.307.1/bluer_objects.egg-info → bluer_objects-6.309.1}/PKG-INFO +2 -2
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/README.md +1 -1
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/__init__.py +1 -1
- bluer_objects-6.309.1/bluer_objects/logger/stitch.py +107 -0
- bluer_objects-6.309.1/bluer_objects/tests/test_logger_stitch_images.py +47 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1/bluer_objects.egg-info}/PKG-INFO +2 -2
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects.egg-info/SOURCES.txt +2 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/LICENSE +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/MANIFEST.in +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/abcli.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/actions.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/aka.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/alias.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/assets/cd.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/assets/mv.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/assets/publish.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/assets.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/bluer_objects.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/clone.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/create_test_asset.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/download.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/file.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/gif.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/host.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/ls.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/metadata/get.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/metadata/post.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/metadata.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/browse.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/cache.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/deploy.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/list_registered_models.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/lock/lock.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/lock/unlock.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/lock.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/log_artifacts.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/log_run.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/run.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/tags/clone.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/tags/get.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/tags/search.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/tags/set.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/tags.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/test.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/transition.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/object.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/select.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/storage/clear.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/storage/status.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/storage.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/README.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/clone.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/create_test_asset.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/gif.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/help.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/host.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/ls.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/metadata.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/mlflow_cache.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/mlflow_lock.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/mlflow_logging.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/mlflow_tags.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/mlflow_test.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/open.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/open_gif_open.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/storage_public_upload.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/storage_upload_download.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/version.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/web_is_accessible.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/web_where_am_ai.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/upload.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/url.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/web/is_accessible.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/web/where_am_i.sh +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/README/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/README/consts.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/README/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/README/items.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/README/utils.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/assets/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/assets/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/assets/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/config.env +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/env.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/file/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/file/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/file/classes.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/file/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/file/load.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/file/save.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/frame.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/gif.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/screen.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/signature.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/graphics/text.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/assets.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/clone.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/create_test_asset.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/download.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/gif.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/host.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/ls.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/metadata.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/mlflow/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/mlflow/cache.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/mlflow/lock.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/mlflow/tags.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/upload.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/help/web.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/host/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/host/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/host/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/logger/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/logger/image.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/logger/matrix.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/markdown.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/metadata/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/metadata/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/metadata/enums.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/metadata/flatten.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/metadata/get.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/metadata/post.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/cache.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/lock/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/lock/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/lock/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/logging.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/models.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/objects.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/runs.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/tags.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/mlflow/testing.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/objects.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/path.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/sample.env +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/WebDAV.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/WebDAVrequest.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/WebDAVzip.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/base.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/policies.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/storage/s3.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/testing/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/testing/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/testing/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_README.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_README_consts.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_README_items.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_env.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_file_download.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_file_load_save.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_file_load_save_text.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_fullname.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics_frame.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics_gif.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics_screen.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics_signature.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics_text.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_log_image_grid.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_logger.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_logger_matrix.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_markdown.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_metadata.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_metadata_flatten.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_mlflow.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_mlflow_lock.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_objects.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_path.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage_base.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage_s3.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage_webdav_request.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage_webdav_zip.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_testing.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_version.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_web_is_accessible.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/urls.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/web/__init__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/web/__main__.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/web/functions.py +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects.egg-info/dependency_links.txt +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects.egg-info/requires.txt +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects.egg-info/top_level.txt +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/pyproject.toml +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/requirements.txt +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/setup.cfg +0 -0
- {bluer_objects-6.307.1 → bluer_objects-6.309.1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_objects
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.309.1
|
|
4
4
|
Summary: 🌀 Object management in Bash.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-objects
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -65,6 +65,6 @@ pip install bluer-objects
|
|
|
65
65
|
|
|
66
66
|
[](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-objects/) [](https://pypistats.org/packages/bluer-objects)
|
|
67
67
|
|
|
68
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.
|
|
68
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.309.1`](https://github.com/kamangir/bluer-objects).
|
|
69
69
|
|
|
70
70
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -31,4 +31,4 @@ pip install bluer-objects
|
|
|
31
31
|
|
|
32
32
|
[](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-objects/) [](https://pypistats.org/packages/bluer-objects)
|
|
33
33
|
|
|
34
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.
|
|
34
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.309.1`](https://github.com/kamangir/bluer-objects).
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
import numpy as np
|
|
3
|
+
|
|
4
|
+
from blueness import module
|
|
5
|
+
from bluer_options import string
|
|
6
|
+
|
|
7
|
+
from bluer_objects import NAME
|
|
8
|
+
from bluer_objects.logger import logger
|
|
9
|
+
|
|
10
|
+
NAME = module.name(__file__, NAME)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def stitch_images(
|
|
14
|
+
list_of_images: List[np.ndarray],
|
|
15
|
+
cols: int = -1,
|
|
16
|
+
rows: int = -1,
|
|
17
|
+
log: bool = False,
|
|
18
|
+
) -> np.ndarray:
|
|
19
|
+
if not list_of_images:
|
|
20
|
+
return np.zeros((1, 1, 3), dtype=np.uint8)
|
|
21
|
+
|
|
22
|
+
list_of_images = list_of_images.copy()
|
|
23
|
+
|
|
24
|
+
if rows == -1:
|
|
25
|
+
rows = int(np.floor(np.sqrt(len(list_of_images))))
|
|
26
|
+
cols = -1
|
|
27
|
+
|
|
28
|
+
if cols == -1:
|
|
29
|
+
cols = int(np.ceil(len(list_of_images) / rows))
|
|
30
|
+
|
|
31
|
+
if log:
|
|
32
|
+
logger.info(
|
|
33
|
+
"{}.stitch_images[{}x{}]({}): {}".format(
|
|
34
|
+
NAME,
|
|
35
|
+
rows,
|
|
36
|
+
cols,
|
|
37
|
+
len(list_of_images),
|
|
38
|
+
", ".join(
|
|
39
|
+
[string.pretty_shape_of_matrix(image) for image in list_of_images]
|
|
40
|
+
),
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
for image in list_of_images:
|
|
45
|
+
if len(image.shape) == 2:
|
|
46
|
+
image = np.stack([image, image, image], axis=2)
|
|
47
|
+
|
|
48
|
+
if rows == 1:
|
|
49
|
+
output = np.zeros(
|
|
50
|
+
(
|
|
51
|
+
max([image.shape[0] for image in list_of_images]),
|
|
52
|
+
sum([image.shape[1] for image in list_of_images]),
|
|
53
|
+
3,
|
|
54
|
+
),
|
|
55
|
+
dtype=np.uint8,
|
|
56
|
+
)
|
|
57
|
+
x: int = 0
|
|
58
|
+
for image in list_of_images:
|
|
59
|
+
x_new = x + image.shape[1]
|
|
60
|
+
|
|
61
|
+
output[
|
|
62
|
+
: image.shape[0],
|
|
63
|
+
x:x_new,
|
|
64
|
+
:,
|
|
65
|
+
] = image
|
|
66
|
+
|
|
67
|
+
x = x_new
|
|
68
|
+
|
|
69
|
+
return output
|
|
70
|
+
|
|
71
|
+
if cols == 1:
|
|
72
|
+
output = np.zeros(
|
|
73
|
+
(
|
|
74
|
+
sum([image.shape[0] for image in list_of_images]),
|
|
75
|
+
max([image.shape[1] for image in list_of_images]),
|
|
76
|
+
3,
|
|
77
|
+
),
|
|
78
|
+
dtype=np.uint8,
|
|
79
|
+
)
|
|
80
|
+
y: int = 0
|
|
81
|
+
for image in list_of_images:
|
|
82
|
+
y_new = y + image.shape[0]
|
|
83
|
+
|
|
84
|
+
output[
|
|
85
|
+
y:y_new,
|
|
86
|
+
: image.shape[1],
|
|
87
|
+
:,
|
|
88
|
+
] = image
|
|
89
|
+
|
|
90
|
+
y = y_new
|
|
91
|
+
|
|
92
|
+
return output
|
|
93
|
+
|
|
94
|
+
return stitch_images(
|
|
95
|
+
list_of_images=[
|
|
96
|
+
stitch_images(
|
|
97
|
+
list_of_images[row * cols : (row + 1) * cols],
|
|
98
|
+
cols=cols,
|
|
99
|
+
rows=1,
|
|
100
|
+
log=log,
|
|
101
|
+
)
|
|
102
|
+
for row in range(rows)
|
|
103
|
+
],
|
|
104
|
+
cols=1,
|
|
105
|
+
rows=rows,
|
|
106
|
+
log=log,
|
|
107
|
+
)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
import numpy as np
|
|
3
|
+
import random
|
|
4
|
+
|
|
5
|
+
from bluer_objects.logger.stitch import stitch_images
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@pytest.mark.parametrize(
|
|
9
|
+
["count"],
|
|
10
|
+
[[count] for count in range(10)],
|
|
11
|
+
)
|
|
12
|
+
@pytest.mark.parametrize(
|
|
13
|
+
["cols"],
|
|
14
|
+
[[cols] for cols in [-1, 1, 3]],
|
|
15
|
+
)
|
|
16
|
+
@pytest.mark.parametrize(
|
|
17
|
+
["rows"],
|
|
18
|
+
[[rows] for rows in [-1, 1, 3]],
|
|
19
|
+
)
|
|
20
|
+
def test_logger_stitch_images(
|
|
21
|
+
count: int,
|
|
22
|
+
cols: int,
|
|
23
|
+
rows: int,
|
|
24
|
+
):
|
|
25
|
+
rng = np.random.default_rng()
|
|
26
|
+
|
|
27
|
+
list_of_images = list_of_images = [
|
|
28
|
+
rng.integers(
|
|
29
|
+
0,
|
|
30
|
+
256,
|
|
31
|
+
(
|
|
32
|
+
random.randint(1, 512),
|
|
33
|
+
random.randint(1, 512),
|
|
34
|
+
random.choice([1, 3]),
|
|
35
|
+
),
|
|
36
|
+
dtype=np.uint8,
|
|
37
|
+
)
|
|
38
|
+
for _ in range(count)
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
image = stitch_images(
|
|
42
|
+
list_of_images,
|
|
43
|
+
cols=cols,
|
|
44
|
+
rows=rows,
|
|
45
|
+
log=True,
|
|
46
|
+
)
|
|
47
|
+
assert isinstance(image, np.ndarray)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_objects
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.309.1
|
|
4
4
|
Summary: 🌀 Object management in Bash.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-objects
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -65,6 +65,6 @@ pip install bluer-objects
|
|
|
65
65
|
|
|
66
66
|
[](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-objects/) [](https://pypistats.org/packages/bluer-objects)
|
|
67
67
|
|
|
68
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.
|
|
68
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.309.1`](https://github.com/kamangir/bluer-objects).
|
|
69
69
|
|
|
70
70
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -128,6 +128,7 @@ bluer_objects/host/functions.py
|
|
|
128
128
|
bluer_objects/logger/__init__.py
|
|
129
129
|
bluer_objects/logger/image.py
|
|
130
130
|
bluer_objects/logger/matrix.py
|
|
131
|
+
bluer_objects/logger/stitch.py
|
|
131
132
|
bluer_objects/metadata/__init__.py
|
|
132
133
|
bluer_objects/metadata/__main__.py
|
|
133
134
|
bluer_objects/metadata/enums.py
|
|
@@ -175,6 +176,7 @@ bluer_objects/tests/test_graphics_text.py
|
|
|
175
176
|
bluer_objects/tests/test_log_image_grid.py
|
|
176
177
|
bluer_objects/tests/test_logger.py
|
|
177
178
|
bluer_objects/tests/test_logger_matrix.py
|
|
179
|
+
bluer_objects/tests/test_logger_stitch_images.py
|
|
178
180
|
bluer_objects/tests/test_markdown.py
|
|
179
181
|
bluer_objects/tests/test_metadata.py
|
|
180
182
|
bluer_objects/tests/test_metadata_flatten.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/mlflow/log_artifacts.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/create_test_asset.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/mlflow_logging.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/storage_public_upload.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/web_is_accessible.sh
RENAMED
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/.abcli/tests/web_where_am_ai.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_file_load_save_text.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_graphics_signature.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_metadata_flatten.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage_webdav_request.py
RENAMED
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_storage_webdav_zip.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_objects-6.307.1 → bluer_objects-6.309.1}/bluer_objects/tests/test_web_is_accessible.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|