bluer-objects 6.46.1__tar.gz → 6.413.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.
- bluer_objects-6.413.1/PKG-INFO +78 -0
- bluer_objects-6.413.1/README.md +42 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/abcli.sh +6 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/alias.sh +17 -6
- bluer_objects-6.413.1/bluer_objects/.abcli/assets/cd.sh +20 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/assets/mv.sh +34 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/assets/publish.sh +37 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/assets.sh +15 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/bluer_objects.sh +2 -2
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/clone.sh +10 -10
- bluer_objects-6.413.1/bluer_objects/.abcli/create_test_asset.sh +10 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/download.sh +6 -4
- bluer_objects-6.413.1/bluer_objects/.abcli/file.sh +19 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/gif.sh +45 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/host.sh +45 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/ls.sh +29 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/metadata/download.sh +9 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/metadata/edit.sh +15 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/metadata/get.sh +24 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata/post.sh +3 -3
- bluer_objects-6.413.1/bluer_objects/.abcli/metadata/upload.sh +9 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/browse.sh +10 -10
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/cache.sh +1 -1
- bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/deploy.sh +40 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/lock/lock.sh +11 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/lock/unlock.sh +12 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/lock.sh +15 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/log_artifacts.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/log_run.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/run.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/clone.sh +3 -3
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/get.sh +1 -1
- bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/tags/search.sh +8 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/set.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/test.sh +2 -2
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/transition.sh +3 -3
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow.sh +2 -4
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/object.sh +2 -4
- bluer_objects-6.413.1/bluer_objects/.abcli/pdf/convert.sh +92 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/pdf.sh +15 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/select.sh +4 -4
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage/clear.sh +14 -3
- bluer_objects-6.413.1/bluer_objects/.abcli/storage/status.sh +11 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/README.sh +1 -1
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/clone.sh +18 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/create_test_asset.sh +16 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/file.sh +64 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/gif.sh +4 -4
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/help.sh +29 -9
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/host.sh +1 -1
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/ls.sh +32 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/metadata.sh +42 -4
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_cache.sh +3 -3
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/mlflow_lock.sh +30 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_logging.sh +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_tags.sh +6 -6
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/open.sh +11 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/open_gif_open.sh +14 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/pdf.sh +31 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_clear.sh +11 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_public_upload.sh +25 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_status.sh +12 -0
- bluer_objects-6.46.1/bluer_objects/.abcli/tests/storage.sh → bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_upload_download.sh +33 -15
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/version.sh +1 -1
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/web_is_accessible.sh +17 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/web_where_am_ai.sh +5 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/upload.sh +45 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/url.sh +15 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/web/is_accessible.sh +13 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/web/where_am_i.sh +5 -0
- bluer_objects-6.413.1/bluer_objects/README/__init__.py +30 -0
- bluer_objects-6.413.1/bluer_objects/README/alias.py +56 -0
- bluer_objects-6.413.1/bluer_objects/README/aliases.py +23 -0
- bluer_objects-6.413.1/bluer_objects/README/consts.py +39 -0
- bluer_objects-6.413.1/bluer_objects/README/docs.py +22 -0
- bluer_objects-6.413.1/bluer_objects/README/functions.py +204 -0
- bluer_objects-6.413.1/bluer_objects/README/items.py +102 -0
- bluer_objects-6.413.1/bluer_objects/README/modules.py +9 -0
- bluer_objects-6.413.1/bluer_objects/README/utils.py +275 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/__init__.py +2 -2
- bluer_objects-6.413.1/bluer_objects/assets/__main__.py +57 -0
- bluer_objects-6.413.1/bluer_objects/assets/functions.py +62 -0
- bluer_objects-6.413.1/bluer_objects/config.env +13 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/env.py +24 -1
- bluer_objects-6.413.1/bluer_objects/file/__main__.py +101 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/functions.py +21 -4
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/load.py +2 -9
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/save.py +17 -24
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/__main__.py +7 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/gif.py +11 -7
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/screen.py +9 -8
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/signature.py +1 -0
- bluer_objects-6.413.1/bluer_objects/help/assets.py +96 -0
- bluer_objects-6.413.1/bluer_objects/help/create_test_asset.py +22 -0
- bluer_objects-6.413.1/bluer_objects/help/download.py +37 -0
- bluer_objects-6.413.1/bluer_objects/help/file.py +59 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/functions.py +9 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/gif.py +25 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/host.py +6 -4
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/ls.py +26 -3
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/metadata.py +51 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/__init__.py +40 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/cache.py +2 -4
- bluer_objects-6.413.1/bluer_objects/help/mlflow/lock.py +52 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/tags.py +34 -23
- bluer_objects-6.413.1/bluer_objects/help/pdf.py +67 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/upload.py +10 -3
- bluer_objects-6.413.1/bluer_objects/help/web.py +38 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/host/functions.py +4 -1
- bluer_objects-6.413.1/bluer_objects/logger/confusion_matrix.py +76 -0
- bluer_objects-6.413.1/bluer_objects/logger/image.py +110 -0
- bluer_objects-6.413.1/bluer_objects/logger/stitch.py +107 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/markdown.py +8 -6
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/__init__.py +1 -0
- bluer_objects-6.413.1/bluer_objects/metadata/flatten.py +27 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/__init__.py +1 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/__main__.py +49 -31
- bluer_objects-6.413.1/bluer_objects/mlflow/lock/__init__.py +1 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/lock/__main__.py +58 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/lock/functions.py +121 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/logging.py +93 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/models.py +7 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/objects.py +7 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/runs.py +10 -1
- bluer_objects-6.413.1/bluer_objects/mlflow/serverless/__init__.py +3 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/serverless/api.py +88 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/serverless/read.py +19 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/serverless/search.py +35 -0
- bluer_objects-6.413.1/bluer_objects/mlflow/serverless/write.py +42 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/tags.py +59 -9
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/objects.py +3 -3
- bluer_objects-6.413.1/bluer_objects/pdf/__init__.py +1 -0
- bluer_objects-6.413.1/bluer_objects/pdf/__main__.py +78 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/__init__.py +0 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/batch.py +54 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/combination.py +32 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/convert.py +111 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/image.py +53 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/md.py +97 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/missing.py +96 -0
- bluer_objects-6.413.1/bluer_objects/pdf/convert/pdf.py +37 -0
- bluer_objects-6.413.1/bluer_objects/sample.env +9 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAV.py +11 -7
- bluer_objects-6.413.1/bluer_objects/storage/WebDAVrequest.py +360 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAVzip.py +59 -24
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/__init__.py +36 -1
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/__main__.py +51 -7
- bluer_objects-6.413.1/bluer_objects/storage/base.py +131 -0
- bluer_objects-6.413.1/bluer_objects/storage/policies.py +7 -0
- bluer_objects-6.413.1/bluer_objects/storage/s3.py +367 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/testing/__main__.py +6 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/testing/functions.py +1 -1
- bluer_objects-6.413.1/bluer_objects/tests/__init__.py +0 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_README_consts.py +71 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_README_items.py +128 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_alias.py +33 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_env.py +50 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_file_download.py +25 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_file_load_save.py +1 -2
- bluer_objects-6.413.1/bluer_objects/tests/test_file_load_save_text.py +46 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_gif.py +2 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_log_image_grid.py +29 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_logger_confusion_matrix.py +18 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_logger_matrix.py +2 -2
- bluer_objects-6.413.1/bluer_objects/tests/test_logger_stitch_images.py +47 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_metadata.py +12 -6
- bluer_objects-6.413.1/bluer_objects/tests/test_metadata_flatten.py +109 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_mlflow.py +169 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_mlflow_lock.py +26 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_objects.py +2 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_shell.py +34 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage.py +8 -21
- bluer_objects-6.413.1/bluer_objects/tests/test_storage_base.py +39 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_storage_s3.py +67 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_storage_webdav_request.py +75 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_storage_webdav_zip.py +42 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_web_is_accessible.py +11 -0
- bluer_objects-6.413.1/bluer_objects/web/__init__.py +1 -0
- bluer_objects-6.413.1/bluer_objects/web/__main__.py +31 -0
- bluer_objects-6.413.1/bluer_objects/web/functions.py +9 -0
- bluer_objects-6.413.1/bluer_objects.egg-info/PKG-INFO +78 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/SOURCES.txt +88 -7
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/requires.txt +1 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/requirements.txt +1 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/setup.py +6 -0
- bluer_objects-6.46.1/PKG-INFO +0 -58
- bluer_objects-6.46.1/README.md +0 -22
- bluer_objects-6.46.1/bluer_objects/.abcli/file.sh +0 -8
- bluer_objects-6.46.1/bluer_objects/.abcli/gif.sh +0 -27
- bluer_objects-6.46.1/bluer_objects/.abcli/host.sh +0 -29
- bluer_objects-6.46.1/bluer_objects/.abcli/ls.sh +0 -18
- bluer_objects-6.46.1/bluer_objects/.abcli/metadata/get.sh +0 -24
- bluer_objects-6.46.1/bluer_objects/.abcli/mlflow/tags/search.sh +0 -12
- bluer_objects-6.46.1/bluer_objects/.abcli/storage/download_file.sh +0 -9
- bluer_objects-6.46.1/bluer_objects/.abcli/storage/exists.sh +0 -8
- bluer_objects-6.46.1/bluer_objects/.abcli/storage/list.sh +0 -8
- bluer_objects-6.46.1/bluer_objects/.abcli/storage/rm.sh +0 -11
- bluer_objects-6.46.1/bluer_objects/.abcli/storage/status.sh +0 -11
- bluer_objects-6.46.1/bluer_objects/.abcli/tests/clone.sh +0 -19
- bluer_objects-6.46.1/bluer_objects/.abcli/tests/ls.sh +0 -25
- bluer_objects-6.46.1/bluer_objects/.abcli/tests/mlflow_test.sh +0 -7
- bluer_objects-6.46.1/bluer_objects/.abcli/upload.sh +0 -21
- bluer_objects-6.46.1/bluer_objects/README/__init__.py +0 -29
- bluer_objects-6.46.1/bluer_objects/README/functions.py +0 -286
- bluer_objects-6.46.1/bluer_objects/README/items.py +0 -30
- bluer_objects-6.46.1/bluer_objects/config.env +0 -5
- bluer_objects-6.46.1/bluer_objects/file/__main__.py +0 -56
- bluer_objects-6.46.1/bluer_objects/help/assets.py +0 -38
- bluer_objects-6.46.1/bluer_objects/help/download.py +0 -23
- bluer_objects-6.46.1/bluer_objects/mlflow/logging.py +0 -81
- bluer_objects-6.46.1/bluer_objects/sample.env +0 -3
- bluer_objects-6.46.1/bluer_objects/storage/base.py +0 -46
- bluer_objects-6.46.1/bluer_objects/tests/test_env.py +0 -22
- bluer_objects-6.46.1/bluer_objects/tests/test_mlflow.py +0 -60
- bluer_objects-6.46.1/bluer_objects.egg-info/PKG-INFO +0 -58
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/LICENSE +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/MANIFEST.in +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/actions.sh +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/aka.sh +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/list_registered_models.sh +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage.sh +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/__main__.py +0 -0
- {bluer_objects-6.46.1/bluer_objects/help → bluer_objects-6.413.1/bluer_objects/assets}/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/classes.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/frame.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/text.py +0 -0
- {bluer_objects-6.46.1/bluer_objects/tests → bluer_objects-6.413.1/bluer_objects/help}/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/__main__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/clone.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/host/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/host/__main__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/logger/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/logger/matrix.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/__main__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/enums.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/get.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/post.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/cache.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/testing.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/path.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/testing/__init__.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_README.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_fullname.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_frame.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_screen.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_signature.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_text.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_logger.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_markdown.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_path.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_testing.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_version.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/urls.py +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/dependency_links.txt +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/top_level.txt +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/pyproject.toml +0 -0
- {bluer_objects-6.46.1 → bluer_objects-6.413.1}/setup.cfg +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bluer_objects
|
|
3
|
+
Version: 6.413.1
|
|
4
|
+
Summary: 🌀 Object management in Bash.
|
|
5
|
+
Home-page: https://github.com/kamangir/bluer-objects
|
|
6
|
+
Author: Arash Abadpour (Kamangir)
|
|
7
|
+
Author-email: arash.abadpour@gmail.com
|
|
8
|
+
License: CC0-1.0
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Unix Shell
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: bluer_ai
|
|
15
|
+
Requires-Dist: boto3
|
|
16
|
+
Requires-Dist: webdavclient3
|
|
17
|
+
Requires-Dist: dill
|
|
18
|
+
Requires-Dist: mlflow
|
|
19
|
+
Requires-Dist: pandas
|
|
20
|
+
Requires-Dist: urllib3
|
|
21
|
+
Provides-Extra: opencv
|
|
22
|
+
Requires-Dist: opencv-python; extra == "opencv"
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: author-email
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: license
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
Dynamic: provides-extra
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: summary
|
|
34
|
+
|
|
35
|
+
# 🌀 bluer-objects
|
|
36
|
+
|
|
37
|
+
🌀 `bluer-objects` are the inputs and outputs of [AI algo](https://github.com/kamangir/giza). They are maintained in cloud storage (supports [WebDav](https://pypi.org/project/webdavclient3/)) and their metadata is tracked by [MLflow](https://mlflow.org/). Examples are the Sentinel-2 [datacube](https://github.com/kamangir/blue-geo/tree/main/blue_geo/datacube) `datacube-EarthSearch-sentinel_2_l1c-S2A_10UDC_20240731_0_L1C` and 🌐 [`@geo watch` outputs](https://github.com/kamangir/blue-geo/tree/main/blue_geo/watch).
|
|
38
|
+
|
|
39
|
+
also home to 🌀 [bluer README](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/README/), the 🔒 [`lock`](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/mlflow/lock/), and [serverless mlflow](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/mlflow/serverless/).
|
|
40
|
+
|
|
41
|
+
# installation
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install bluer-objects
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
# aliases
|
|
48
|
+
|
|
49
|
+
[@assets](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/assets.md)
|
|
50
|
+
[@cache](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/cache.md)
|
|
51
|
+
[@clone](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/clone.md)
|
|
52
|
+
[@cp](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/cp.md)
|
|
53
|
+
[@create_test_asset](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/create_test_asset.md)
|
|
54
|
+
[@download](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/download.md)
|
|
55
|
+
[@file](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/file.md)
|
|
56
|
+
[@gif](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/gif.md)
|
|
57
|
+
[@host](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/host.md)
|
|
58
|
+
[@lock](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/lock.md)
|
|
59
|
+
[@ls](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/ls.md)
|
|
60
|
+
[@metadata](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/metadata.md)
|
|
61
|
+
[@mlflow](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/mlflow.md)
|
|
62
|
+
[@pdf](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/pdf.md)
|
|
63
|
+
[@tags](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/tags.md)
|
|
64
|
+
[@upload](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/upload.md)
|
|
65
|
+
[@web](https://github.com/kamangir/bluer-objects/blob/main/bluer_objects/docs/aliases/web.md)
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
> 🌀 [`blue-objects`](https://github.com/kamangir/blue-objects) for the [Global South](https://github.com/kamangir/bluer-south).
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
[](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)
|
|
75
|
+
|
|
76
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.413.1`](https://github.com/kamangir/bluer-objects).
|
|
77
|
+
|
|
78
|
+
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# 🌀 bluer-objects
|
|
2
|
+
|
|
3
|
+
🌀 `bluer-objects` are the inputs and outputs of [AI algo](https://github.com/kamangir/giza). They are maintained in cloud storage (supports [WebDav](https://pypi.org/project/webdavclient3/)) and their metadata is tracked by [MLflow](https://mlflow.org/). Examples are the Sentinel-2 [datacube](https://github.com/kamangir/blue-geo/tree/main/blue_geo/datacube) `datacube-EarthSearch-sentinel_2_l1c-S2A_10UDC_20240731_0_L1C` and 🌐 [`@geo watch` outputs](https://github.com/kamangir/blue-geo/tree/main/blue_geo/watch).
|
|
4
|
+
|
|
5
|
+
also home to 🌀 [bluer README](./bluer_objects/README/), the 🔒 [`lock`](./bluer_objects/mlflow/lock/), and [serverless mlflow](./bluer_objects/mlflow/serverless/).
|
|
6
|
+
|
|
7
|
+
# installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install bluer-objects
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
# aliases
|
|
14
|
+
|
|
15
|
+
[@assets](./bluer_objects/docs/aliases/assets.md)
|
|
16
|
+
[@cache](./bluer_objects/docs/aliases/cache.md)
|
|
17
|
+
[@clone](./bluer_objects/docs/aliases/clone.md)
|
|
18
|
+
[@cp](./bluer_objects/docs/aliases/cp.md)
|
|
19
|
+
[@create_test_asset](./bluer_objects/docs/aliases/create_test_asset.md)
|
|
20
|
+
[@download](./bluer_objects/docs/aliases/download.md)
|
|
21
|
+
[@file](./bluer_objects/docs/aliases/file.md)
|
|
22
|
+
[@gif](./bluer_objects/docs/aliases/gif.md)
|
|
23
|
+
[@host](./bluer_objects/docs/aliases/host.md)
|
|
24
|
+
[@lock](./bluer_objects/docs/aliases/lock.md)
|
|
25
|
+
[@ls](./bluer_objects/docs/aliases/ls.md)
|
|
26
|
+
[@metadata](./bluer_objects/docs/aliases/metadata.md)
|
|
27
|
+
[@mlflow](./bluer_objects/docs/aliases/mlflow.md)
|
|
28
|
+
[@pdf](./bluer_objects/docs/aliases/pdf.md)
|
|
29
|
+
[@tags](./bluer_objects/docs/aliases/tags.md)
|
|
30
|
+
[@upload](./bluer_objects/docs/aliases/upload.md)
|
|
31
|
+
[@web](./bluer_objects/docs/aliases/web.md)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
> 🌀 [`blue-objects`](https://github.com/kamangir/blue-objects) for the [Global South](https://github.com/kamangir/bluer-south).
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
[](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)
|
|
41
|
+
|
|
42
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.413.1`](https://github.com/kamangir/bluer-objects).
|
|
@@ -5,5 +5,11 @@ bluer_ai_source_caller_suffix_path /tests
|
|
|
5
5
|
bluer_ai_env_dot_load \
|
|
6
6
|
caller,plugin=bluer_objects,suffix=/../..
|
|
7
7
|
|
|
8
|
+
if [[ "$MLFLOW_DEPLOYMENT" == "local" ]]; then
|
|
9
|
+
export MLFLOW_TRACKING_URI=$HOME/mlflow
|
|
10
|
+
else
|
|
11
|
+
export MLFLOW_TRACKING_URI=$MLFLOW_DEPLOYMENT
|
|
12
|
+
fi
|
|
13
|
+
|
|
8
14
|
bluer_ai_env_dot_load \
|
|
9
15
|
caller,filename=config.env,suffix=/..
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
#! /usr/bin/env bash
|
|
2
2
|
|
|
3
|
-
alias @
|
|
3
|
+
alias @assets=bluer_objects_assets
|
|
4
|
+
|
|
5
|
+
alias @create_test_asset=bluer_objects_create_test_asset
|
|
4
6
|
|
|
5
7
|
alias @download=bluer_objects_download
|
|
6
8
|
|
|
7
9
|
alias @gif=bluer_objects_gif
|
|
8
10
|
|
|
9
|
-
alias @assets=bluer_objects_assets
|
|
10
|
-
|
|
11
11
|
alias @cache=bluer_objects_mlflow_cache
|
|
12
|
-
alias @ref="bluer_objects_mlflow_cache read"
|
|
13
12
|
alias @tags=bluer_objects_mlflow_tags
|
|
14
13
|
|
|
15
14
|
alias @clone=bluer_objects_clone
|
|
@@ -21,14 +20,26 @@ alias @host=bluer_objects_host
|
|
|
21
20
|
|
|
22
21
|
alias @ls=bluer_objects_ls
|
|
23
22
|
|
|
23
|
+
alias @lock=bluer_objects_mlflow_lock
|
|
24
|
+
|
|
24
25
|
alias @metadata=bluer_objects_metadata
|
|
25
26
|
|
|
26
27
|
alias @mlflow=bluer_objects_mlflow
|
|
27
28
|
|
|
28
|
-
alias @
|
|
29
|
+
alias @pdf=bluer_objects_pdf
|
|
30
|
+
|
|
31
|
+
alias @upload=bluer_objects_upload
|
|
32
|
+
|
|
33
|
+
alias @web=bluer_objects_web
|
|
34
|
+
|
|
35
|
+
# ignore
|
|
36
|
+
alias @i=bluer_ai
|
|
37
|
+
alias @ai=bluer_ai
|
|
29
38
|
|
|
30
39
|
alias @objects=bluer_objects
|
|
31
40
|
|
|
41
|
+
alias @ref="bluer_objects_mlflow_cache read"
|
|
42
|
+
|
|
32
43
|
alias @select=bluer_ai_select
|
|
33
44
|
|
|
34
|
-
alias @
|
|
45
|
+
alias @storage=bluer_ai_storage
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_assets_cd() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_create=$(bluer_ai_option_int "$options" create 0)
|
|
6
|
+
local volume=$(bluer_ai_option "$options" vol)
|
|
7
|
+
|
|
8
|
+
local path=$2
|
|
9
|
+
path=$abcli_path_git/assets$volume/$path
|
|
10
|
+
|
|
11
|
+
if [[ "$do_create" == 1 ]]; then
|
|
12
|
+
mkdir -pv $path
|
|
13
|
+
[[ $? -ne 0 ]] && return 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
cd $path
|
|
17
|
+
[[ $? -ne 0 ]] && return 1
|
|
18
|
+
|
|
19
|
+
bluer_ai_log "🔗 $path"
|
|
20
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_assets_mv() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_create=$(bluer_ai_option_int "$options" create 0)
|
|
6
|
+
local extension=$(bluer_ai_option "$options" extension jpg)
|
|
7
|
+
local volume=$(bluer_ai_option "$options" vol)
|
|
8
|
+
|
|
9
|
+
local path=$2
|
|
10
|
+
path=$abcli_path_git/assets$volume/$path
|
|
11
|
+
|
|
12
|
+
if [[ "$do_create" == 1 ]]; then
|
|
13
|
+
mkdir -pv $path
|
|
14
|
+
[[ $? -ne 0 ]] && return 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
bluer_ai_log "Downloads/.$extension -> assets$volume/path"
|
|
18
|
+
|
|
19
|
+
mv -v \
|
|
20
|
+
$HOME/Downloads/*.$extension \
|
|
21
|
+
$path
|
|
22
|
+
[[ $? -ne 0 ]] && return 1
|
|
23
|
+
|
|
24
|
+
local push_options=$3
|
|
25
|
+
local do_push=$(bluer_ai_option_int "$push_options" push 0)
|
|
26
|
+
[[ "$do_push" == 0 ]] &&
|
|
27
|
+
return 0
|
|
28
|
+
|
|
29
|
+
bluer_ai_git \
|
|
30
|
+
assets$volume \
|
|
31
|
+
push \
|
|
32
|
+
"$path += " \
|
|
33
|
+
$push_options
|
|
34
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_assets_publish() {
|
|
4
|
+
local options=$1
|
|
5
|
+
|
|
6
|
+
local do_download=$(bluer_ai_option_int "$options" download 0)
|
|
7
|
+
local do_pull=$(bluer_ai_option_int "$options" pull 1)
|
|
8
|
+
local do_push=$(bluer_ai_option_int "$options" push 0)
|
|
9
|
+
local extensions=$(bluer_ai_option "$options" extensions png)
|
|
10
|
+
|
|
11
|
+
[[ "$do_pull" == 1 ]] &&
|
|
12
|
+
bluer_ai_git \
|
|
13
|
+
assets \
|
|
14
|
+
pull \
|
|
15
|
+
~all
|
|
16
|
+
|
|
17
|
+
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
18
|
+
|
|
19
|
+
[[ "$do_download" == 1 ]] &&
|
|
20
|
+
bluer_objects_download - $object_name
|
|
21
|
+
|
|
22
|
+
bluer_ai_eval dryrun=$do_dryrun \
|
|
23
|
+
python3 -m bluer_objects.assets \
|
|
24
|
+
publish \
|
|
25
|
+
--object_name $object_name \
|
|
26
|
+
--extensions $extensions \
|
|
27
|
+
"${@:3}"
|
|
28
|
+
[[ $? -ne 0 ]] && return 1
|
|
29
|
+
|
|
30
|
+
[[ "$do_push" == 1 ]] &&
|
|
31
|
+
bluer_ai_git \
|
|
32
|
+
assets \
|
|
33
|
+
push \
|
|
34
|
+
"$object_name update."
|
|
35
|
+
|
|
36
|
+
return 0
|
|
37
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_assets() {
|
|
4
|
+
local task=$1
|
|
5
|
+
|
|
6
|
+
local function_name=bluer_objects_assets_$task
|
|
7
|
+
if [[ $(type -t $function_name) == "function" ]]; then
|
|
8
|
+
$function_name "${@:2}"
|
|
9
|
+
return
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
python3 -m bluer_objects.assets "$@"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
bluer_ai_source_caller_suffix_path /assets
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
function bluer_objects_clone() {
|
|
4
4
|
local options=$1
|
|
5
|
-
local do_relate=$(
|
|
6
|
-
local do_upload=$(
|
|
7
|
-
local clone_tags=$(
|
|
8
|
-
local copy_content=$(
|
|
9
|
-
local do_download=$(
|
|
10
|
-
local transfer_mechanism=$(
|
|
5
|
+
local do_relate=$(bluer_ai_option_int "$options" relate 1)
|
|
6
|
+
local do_upload=$(bluer_ai_option_int "$options" upload 0)
|
|
7
|
+
local clone_tags=$(bluer_ai_option_int "$options" tags 1)
|
|
8
|
+
local copy_content=$(bluer_ai_option_int "$options" content 1)
|
|
9
|
+
local do_download=$(bluer_ai_option_int "$options" download 1)
|
|
10
|
+
local transfer_mechanism=$(bluer_ai_option_choice "$options" cp,mv mv)
|
|
11
11
|
|
|
12
|
-
local object_1_name=$(
|
|
13
|
-
local object_2_name=$(
|
|
12
|
+
local object_1_name=$(bluer_ai_clarify_object $2 ..)
|
|
13
|
+
local object_2_name=$(bluer_ai_clarify_object $3 .)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
bluer_ai_log "$object_1_name -clone:$transfer_mechanism-> $object_2_name"
|
|
16
16
|
|
|
17
17
|
[[ "$do_download" == 1 ]] &&
|
|
18
18
|
bluer_objects_download - $object_1_name
|
|
@@ -21,7 +21,7 @@ function bluer_objects_clone() {
|
|
|
21
21
|
local object_2_path=$ABCLI_OBJECT_ROOT/$object_2_name
|
|
22
22
|
|
|
23
23
|
if [[ "$copy_content" == 1 ]]; then
|
|
24
|
-
|
|
24
|
+
bluer_ai_eval - \
|
|
25
25
|
rsync \
|
|
26
26
|
-avv \
|
|
27
27
|
$object_1_path/ \
|
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
function bluer_objects_download() {
|
|
4
4
|
local options=$1
|
|
5
|
-
local filename=$(
|
|
5
|
+
local filename=$(bluer_ai_option "$options" filename)
|
|
6
|
+
local policy=$(bluer_ai_option "$options" policy none)
|
|
6
7
|
|
|
7
|
-
local object_name=$(
|
|
8
|
+
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
8
9
|
|
|
9
10
|
python3 -m bluer_objects.storage \
|
|
10
11
|
download \
|
|
11
12
|
--object_name $object_name \
|
|
12
|
-
--filename "$filename"
|
|
13
|
+
--filename "$filename" \
|
|
14
|
+
--policy $policy
|
|
13
15
|
[[ $? -ne 0 ]] && return 1
|
|
14
16
|
|
|
15
17
|
local open_options=$3
|
|
16
|
-
local do_open=$(
|
|
18
|
+
local do_open=$(bluer_ai_option_int "$open_options" open 0)
|
|
17
19
|
[[ "$do_open" == 0 ]] &&
|
|
18
20
|
return 0
|
|
19
21
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_file() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_sudo=$(bluer_ai_option_int "$options" sudo 0)
|
|
6
|
+
|
|
7
|
+
local task=$2
|
|
8
|
+
|
|
9
|
+
local prefix=""
|
|
10
|
+
[[ "$do_sudo" == 1 ]] &&
|
|
11
|
+
prefix="sudo -E"
|
|
12
|
+
|
|
13
|
+
local filename=$3
|
|
14
|
+
|
|
15
|
+
$prefix $(which python) -m bluer_objects.file \
|
|
16
|
+
"$task" \
|
|
17
|
+
--filename "$filename" \
|
|
18
|
+
"${@:4}"
|
|
19
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_gif() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_open=$(bluer_ai_option_int "$options" open 0)
|
|
6
|
+
if [[ "$do_open" == 1 ]]; then
|
|
7
|
+
local options=$2
|
|
8
|
+
local do_download=$(bluer_ai_option_int "$options" download 0)
|
|
9
|
+
|
|
10
|
+
local object_name=$(bluer_ai_clarify_object $3 .)
|
|
11
|
+
local filename=$(bluer_ai_option "$options" filename $object_name.gif)
|
|
12
|
+
|
|
13
|
+
[[ "$do_download" == 1 ]] &&
|
|
14
|
+
bluer_objects_download \
|
|
15
|
+
filename=$filename \
|
|
16
|
+
$object_name
|
|
17
|
+
|
|
18
|
+
bluer_ai_browse $ABCLI_OBJECT_ROOT/$object_name/$filename
|
|
19
|
+
|
|
20
|
+
return
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
local do_dryrun=$(bluer_ai_option_int "$options" dryrun 0)
|
|
24
|
+
local do_download=$(bluer_ai_option_int "$options" download $(bluer_ai_not $do_dryrun))
|
|
25
|
+
local do_upload=$(bluer_ai_option_int "$options" upload $(bluer_ai_not $do_dryrun))
|
|
26
|
+
|
|
27
|
+
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
28
|
+
|
|
29
|
+
[[ "$do_download" == 1 ]] &&
|
|
30
|
+
bluer_objects_download - $object_name
|
|
31
|
+
|
|
32
|
+
bluer_ai_log "generating animated gif: $object_name ..."
|
|
33
|
+
|
|
34
|
+
bluer_ai_eval dryrun=$do_dryrun \
|
|
35
|
+
python3 -m bluer_objects.graphics \
|
|
36
|
+
generate_animated_gif \
|
|
37
|
+
--object_name $object_name \
|
|
38
|
+
"${@:3}"
|
|
39
|
+
local status="$?"
|
|
40
|
+
|
|
41
|
+
[[ "$do_upload" == 1 ]] &&
|
|
42
|
+
bluer_objects_upload - $object_name
|
|
43
|
+
|
|
44
|
+
return $status
|
|
45
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_host() {
|
|
4
|
+
local task=$1
|
|
5
|
+
local options=$2
|
|
6
|
+
|
|
7
|
+
if [ $task == "get" ]; then
|
|
8
|
+
python3 -m bluer_options.host \
|
|
9
|
+
get \
|
|
10
|
+
--keyword "$2" \
|
|
11
|
+
"${@:3}"
|
|
12
|
+
return
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
if [[ "|reboot|shutdown|" == *"|$task|"* ]]; then
|
|
16
|
+
local command_line
|
|
17
|
+
[[ $task == "reboot" ]] &&
|
|
18
|
+
command_line="sudo reboot"
|
|
19
|
+
[[ $task == "shutdown" ]] &&
|
|
20
|
+
command_line="sudo shutdown -h now"
|
|
21
|
+
|
|
22
|
+
local rpi=$(bluer_ai_option_int "$options" rpi 0)
|
|
23
|
+
if [[ "$rpi" == 1 ]]; then
|
|
24
|
+
local machine_name=$3
|
|
25
|
+
if [[ -z "$machine_name" ]]; then
|
|
26
|
+
bluer_ai_log_error "machine_name not found."
|
|
27
|
+
return 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
ssh \
|
|
31
|
+
pi@$machine_name.local \
|
|
32
|
+
$command_line
|
|
33
|
+
|
|
34
|
+
return
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
bluer_ai_eval ,$options \
|
|
38
|
+
$command_line
|
|
39
|
+
|
|
40
|
+
return
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
bluer_ai_log_error "@host: $task: command not found."
|
|
44
|
+
return 1
|
|
45
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_ls() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local where=$(bluer_ai_option_choice "$options" cloud,local)
|
|
6
|
+
local objects=$(bluer_ai_option_int "$options" objects 0)
|
|
7
|
+
|
|
8
|
+
if [[ "$objects" == 1 ]]; then
|
|
9
|
+
python3 -m bluer_objects.storage \
|
|
10
|
+
ls_objects \
|
|
11
|
+
--where $where \
|
|
12
|
+
"${@:2}"
|
|
13
|
+
|
|
14
|
+
return
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
if [[ -z "$where" ]]; then
|
|
18
|
+
ls -1 "$@"
|
|
19
|
+
return
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
23
|
+
|
|
24
|
+
python3 -m bluer_objects.storage \
|
|
25
|
+
ls \
|
|
26
|
+
--object_name $object_name \
|
|
27
|
+
--where $where \
|
|
28
|
+
"${@:3}"
|
|
29
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_metadata_edit() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_download=$(bluer_ai_option_int "$options" download 0)
|
|
6
|
+
|
|
7
|
+
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
8
|
+
|
|
9
|
+
if [[ "$do_download" == 1 ]]; then
|
|
10
|
+
bluer_objects_metadata_download \
|
|
11
|
+
$object_name
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
bluer_ai_code $ABCLI_OBJECT_ROOT/$object_name/metadata.yaml
|
|
15
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_metadata_get() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local source_type=$(bluer_ai_option_choice "$options" object,path,filename object)
|
|
6
|
+
|
|
7
|
+
local source=$2
|
|
8
|
+
[[ "$source_type" == object ]] &&
|
|
9
|
+
source=$(bluer_ai_clarify_object $2 .)
|
|
10
|
+
|
|
11
|
+
local key=$(bluer_ai_option "$options" key)
|
|
12
|
+
local default=$(bluer_ai_option "$options" default)
|
|
13
|
+
|
|
14
|
+
python3 -m bluer_objects.metadata get \
|
|
15
|
+
--default "$default" \
|
|
16
|
+
--delim $(bluer_ai_option "$options" delim ,) \
|
|
17
|
+
--dict_keys $(bluer_ai_option_int "$options" dict.keys 0) \
|
|
18
|
+
--dict_values $(bluer_ai_option_int "$options" dict.values 0) \
|
|
19
|
+
--filename $(bluer_ai_option "$options" filename metadata.yaml) \
|
|
20
|
+
--key "$key" \
|
|
21
|
+
--source "$source" \
|
|
22
|
+
--source_type $source_type \
|
|
23
|
+
"${@:3}"
|
|
24
|
+
}
|
|
@@ -6,14 +6,14 @@ function bluer_objects_metadata_post() {
|
|
|
6
6
|
local value=$2
|
|
7
7
|
|
|
8
8
|
local options=$3
|
|
9
|
-
local source_type=$(
|
|
9
|
+
local source_type=$(bluer_ai_option_choice "$options" object,path,filename object)
|
|
10
10
|
|
|
11
11
|
local source=$4
|
|
12
12
|
[[ "$source_type" == object ]] &&
|
|
13
|
-
source=$(
|
|
13
|
+
source=$(bluer_ai_clarify_object $4 .)
|
|
14
14
|
|
|
15
15
|
python3 -m bluer_objects.metadata post \
|
|
16
|
-
--filename $(
|
|
16
|
+
--filename $(bluer_ai_option "$options" filename metadata.yaml) \
|
|
17
17
|
--key "$key" \
|
|
18
18
|
--value "$value" \
|
|
19
19
|
--source "$source" \
|
|
@@ -2,31 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
function bluer_objects_mlflow_browse() {
|
|
4
4
|
local options=$1
|
|
5
|
-
local browse_experiment=$(
|
|
5
|
+
local browse_experiment=$(bluer_ai_option_int "$options" experiment 0)
|
|
6
6
|
|
|
7
|
-
local url
|
|
7
|
+
local url=http://localhost:5001/#
|
|
8
|
+
[[ "$MLFLOW_DEPLOYMENT" != "local" ]] &&
|
|
9
|
+
url=$MLFLOW_TRACKING_URI
|
|
8
10
|
|
|
9
|
-
if [ $(
|
|
11
|
+
if [ $(bluer_ai_option_int "$options" databricks 0) == 1 ]; then
|
|
10
12
|
url="https://accounts.cloud.databricks.com/"
|
|
11
|
-
elif [ $(
|
|
12
|
-
: # do nothing
|
|
13
|
-
elif [ $(abcli_option_int "$options" models 0) == 1 ]; then
|
|
13
|
+
elif [ $(bluer_ai_option_int "$options" models 0) == 1 ]; then
|
|
14
14
|
url="$url/models"
|
|
15
15
|
else
|
|
16
|
-
local object_name=$(
|
|
16
|
+
local object_name=$(bluer_ai_clarify_object $2 .)
|
|
17
17
|
|
|
18
18
|
local experiment_id=$(bluer_objects_mlflow get_id $object_name)
|
|
19
19
|
if [ -z "$experiment_id" ]; then
|
|
20
|
-
|
|
20
|
+
bluer_ai_log_error "@mlflow: browse: $object_name: object not found."
|
|
21
21
|
return 1
|
|
22
22
|
fi
|
|
23
|
-
|
|
23
|
+
bluer_ai_log "experiment id: $experiment_id"
|
|
24
24
|
|
|
25
25
|
url="$url/experiments/$experiment_id"
|
|
26
26
|
|
|
27
27
|
if [[ "$browse_experiment" == 0 ]]; then
|
|
28
28
|
local last_run_id=$(bluer_objects_mlflow get_run_id $object_name --count 1)
|
|
29
|
-
|
|
29
|
+
bluer_ai_log "last run id: $last_run_id"
|
|
30
30
|
|
|
31
31
|
url="$url/runs/$last_run_id"
|
|
32
32
|
fi
|