bluer-objects 6.207.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.207.1/bluer_objects.egg-info → bluer_objects-6.413.1}/PKG-INFO +20 -11
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/README.md +19 -10
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/alias.sh +11 -8
- 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.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/download.sh +3 -1
- bluer_objects-6.413.1/bluer_objects/.abcli/file.sh +19 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/gif.sh +18 -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/upload.sh +9 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/tags/search.sh +8 -0
- 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.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage/clear.sh +2 -0
- bluer_objects-6.413.1/bluer_objects/.abcli/tests/file.sh +64 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/gif.sh +1 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/help.sh +16 -7
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/ls.sh +9 -1
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/metadata.sh +35 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_tags.sh +1 -1
- 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_status.sh +12 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/storage_upload_download.sh +6 -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.207.1 → bluer_objects-6.413.1}/bluer_objects/__init__.py +1 -1
- 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.207.1 → bluer_objects-6.413.1}/bluer_objects/config.env +7 -3
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/env.py +4 -0
- bluer_objects-6.413.1/bluer_objects/file/__main__.py +101 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/file/functions.py +19 -4
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/file/save.py +16 -5
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/__main__.py +7 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/gif.py +11 -7
- bluer_objects-6.413.1/bluer_objects/help/assets.py +96 -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.207.1 → bluer_objects-6.413.1}/bluer_objects/help/functions.py +7 -1
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/gif.py +25 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/host.py +6 -4
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/ls.py +26 -3
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/metadata.py +51 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/cache.py +2 -4
- {bluer_objects-6.207.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.207.1 → bluer_objects-6.413.1}/bluer_objects/help/upload.py +8 -6
- {bluer_objects-6.207.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.207.1 → bluer_objects-6.413.1}/bluer_objects/logger/image.py +22 -7
- bluer_objects-6.413.1/bluer_objects/logger/stitch.py +107 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/markdown.py +8 -6
- {bluer_objects-6.207.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.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/__init__.py +1 -1
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/__main__.py +49 -31
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/logging.py +6 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/models.py +7 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/objects.py +7 -0
- {bluer_objects-6.207.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.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/tags.py +59 -9
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/objects.py +3 -1
- 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.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAV.py +3 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAVrequest.py +11 -6
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAVzip.py +13 -8
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/__init__.py +17 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/__main__.py +26 -6
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/base.py +49 -1
- bluer_objects-6.413.1/bluer_objects/storage/policies.py +7 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/storage/s3.py +105 -53
- 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.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_gif.py +2 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_logger_confusion_matrix.py +18 -0
- bluer_objects-6.413.1/bluer_objects/tests/test_logger_stitch_images.py +47 -0
- 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_shell.py +34 -0
- bluer_objects-6.413.1/bluer_objects/web/__init__.py +1 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1/bluer_objects.egg-info}/PKG-INFO +20 -11
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/SOURCES.txt +53 -5
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/setup.py +4 -0
- bluer_objects-6.207.1/bluer_objects/.abcli/file.sh +0 -8
- bluer_objects-6.207.1/bluer_objects/.abcli/host.sh +0 -29
- bluer_objects-6.207.1/bluer_objects/.abcli/ls.sh +0 -18
- bluer_objects-6.207.1/bluer_objects/.abcli/mlflow/tags/search.sh +0 -12
- bluer_objects-6.207.1/bluer_objects/.abcli/storage/download_file.sh +0 -9
- bluer_objects-6.207.1/bluer_objects/.abcli/storage/exists.sh +0 -8
- bluer_objects-6.207.1/bluer_objects/.abcli/storage/list.sh +0 -8
- bluer_objects-6.207.1/bluer_objects/.abcli/storage/rm.sh +0 -11
- bluer_objects-6.207.1/bluer_objects/.abcli/tests/mlflow_test.sh +0 -7
- bluer_objects-6.207.1/bluer_objects/README/__init__.py +0 -47
- bluer_objects-6.207.1/bluer_objects/README/functions.py +0 -297
- bluer_objects-6.207.1/bluer_objects/README/items.py +0 -30
- bluer_objects-6.207.1/bluer_objects/file/__main__.py +0 -56
- bluer_objects-6.207.1/bluer_objects/help/download.py +0 -23
- bluer_objects-6.207.1/bluer_objects/tests/test_env.py +0 -43
- bluer_objects-6.207.1/bluer_objects/tests/test_mlflow.py +0 -60
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/LICENSE +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/MANIFEST.in +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/abcli.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/actions.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/aka.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/bluer_objects.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/clone.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/create_test_asset.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata/get.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata/post.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/browse.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/cache.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/deploy.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/list_registered_models.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/lock/lock.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/lock/unlock.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/lock.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/log_artifacts.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/log_run.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/run.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/clone.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/get.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/set.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/test.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/transition.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/object.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/select.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage/status.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/README.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/clone.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/create_test_asset.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/host.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_cache.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_lock.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_logging.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/storage_public_upload.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/version.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/web_is_accessible.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/web_where_am_ai.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/upload.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/url.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/web/is_accessible.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/web/where_am_i.sh +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/__main__.py +0 -0
- {bluer_objects-6.207.1/bluer_objects/help → bluer_objects-6.413.1/bluer_objects/assets}/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/file/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/file/classes.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/file/load.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/frame.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/screen.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/signature.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/graphics/text.py +0 -0
- {bluer_objects-6.207.1/bluer_objects/tests → bluer_objects-6.413.1/bluer_objects/help}/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/__main__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/clone.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/create_test_asset.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/lock.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/help/web.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/host/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/host/__main__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/logger/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/logger/matrix.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/metadata/__main__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/metadata/enums.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/metadata/get.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/metadata/post.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/cache.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/lock/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/lock/__main__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/lock/functions.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/testing.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/path.py +0 -0
- {bluer_objects-6.207.1/bluer_objects/web → bluer_objects-6.413.1/bluer_objects/pdf}/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/sample.env +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/testing/__init__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/testing/__main__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/testing/functions.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_README.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_file_download.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_file_load_save.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_file_load_save_text.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_fullname.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_frame.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_screen.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_signature.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_text.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_log_image_grid.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_logger.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_logger_matrix.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_markdown.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_metadata.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_mlflow_lock.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_objects.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_path.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage_base.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage_s3.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage_webdav_request.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage_webdav_zip.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_testing.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_version.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_web_is_accessible.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/urls.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/web/__main__.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects/web/functions.py +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/dependency_links.txt +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/requires.txt +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/top_level.txt +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/pyproject.toml +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/requirements.txt +0 -0
- {bluer_objects-6.207.1 → bluer_objects-6.413.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_objects
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.413.1
|
|
4
4
|
Summary: 🌀 Object management in Bash.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-objects
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -36,7 +36,7 @@ Dynamic: summary
|
|
|
36
36
|
|
|
37
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
38
|
|
|
39
|
-
|
|
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
40
|
|
|
41
41
|
# installation
|
|
42
42
|
|
|
@@ -46,14 +46,23 @@ pip install bluer-objects
|
|
|
46
46
|
|
|
47
47
|
# aliases
|
|
48
48
|
|
|
49
|
-
[@
|
|
50
|
-
[@
|
|
51
|
-
[@
|
|
52
|
-
[@
|
|
53
|
-
[@
|
|
54
|
-
[@
|
|
55
|
-
[@
|
|
56
|
-
[@
|
|
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)
|
|
57
66
|
|
|
58
67
|
---
|
|
59
68
|
|
|
@@ -64,6 +73,6 @@ pip install bluer-objects
|
|
|
64
73
|
|
|
65
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)
|
|
66
75
|
|
|
67
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.
|
|
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).
|
|
68
77
|
|
|
69
78
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
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
4
|
|
|
5
|
-
|
|
5
|
+
also home to 🌀 [bluer README](./bluer_objects/README/), the 🔒 [`lock`](./bluer_objects/mlflow/lock/), and [serverless mlflow](./bluer_objects/mlflow/serverless/).
|
|
6
6
|
|
|
7
7
|
# installation
|
|
8
8
|
|
|
@@ -12,14 +12,23 @@ pip install bluer-objects
|
|
|
12
12
|
|
|
13
13
|
# aliases
|
|
14
14
|
|
|
15
|
-
[@
|
|
16
|
-
[@
|
|
17
|
-
[@
|
|
18
|
-
[@
|
|
19
|
-
[@
|
|
20
|
-
[@
|
|
21
|
-
[@
|
|
22
|
-
[@
|
|
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)
|
|
23
32
|
|
|
24
33
|
---
|
|
25
34
|
|
|
@@ -30,4 +39,4 @@ pip install bluer-objects
|
|
|
30
39
|
|
|
31
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)
|
|
32
41
|
|
|
33
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🌀 [`bluer_objects-6.
|
|
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).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#! /usr/bin/env bash
|
|
2
2
|
|
|
3
|
-
alias @
|
|
3
|
+
alias @assets=bluer_objects_assets
|
|
4
4
|
|
|
5
5
|
alias @create_test_asset=bluer_objects_create_test_asset
|
|
6
6
|
|
|
@@ -9,7 +9,6 @@ alias @download=bluer_objects_download
|
|
|
9
9
|
alias @gif=bluer_objects_gif
|
|
10
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
|
|
@@ -27,16 +26,20 @@ alias @metadata=bluer_objects_metadata
|
|
|
27
26
|
|
|
28
27
|
alias @mlflow=bluer_objects_mlflow
|
|
29
28
|
|
|
30
|
-
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
|
|
31
38
|
|
|
32
39
|
alias @objects=bluer_objects
|
|
33
40
|
|
|
34
|
-
alias @
|
|
41
|
+
alias @ref="bluer_objects_mlflow_cache read"
|
|
35
42
|
|
|
36
43
|
alias @select=bluer_ai_select
|
|
37
44
|
|
|
38
45
|
alias @storage=bluer_ai_storage
|
|
39
|
-
|
|
40
|
-
alias @upload=bluer_objects_upload
|
|
41
|
-
|
|
42
|
-
alias @web=bluer_objects_web
|
|
@@ -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
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
function bluer_objects_download() {
|
|
4
4
|
local options=$1
|
|
5
5
|
local filename=$(bluer_ai_option "$options" filename)
|
|
6
|
+
local policy=$(bluer_ai_option "$options" policy none)
|
|
6
7
|
|
|
7
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
|
|
@@ -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
|
+
}
|
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
function bluer_objects_gif() {
|
|
4
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
|
+
|
|
5
23
|
local do_dryrun=$(bluer_ai_option_int "$options" dryrun 0)
|
|
6
24
|
local do_download=$(bluer_ai_option_int "$options" download $(bluer_ai_not $do_dryrun))
|
|
7
25
|
local do_upload=$(bluer_ai_option_int "$options" upload $(bluer_ai_not $do_dryrun))
|
|
@@ -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,92 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_pdf_convert() {
|
|
4
|
+
local options=$1
|
|
5
|
+
local do_inline=$(bluer_ai_option_int "$options" inline 0)
|
|
6
|
+
local do_install=$(bluer_ai_option_int "$options" install 0)
|
|
7
|
+
local do_combine=$(bluer_ai_option_int "$options" combine 0)
|
|
8
|
+
local do_compress=$(bluer_ai_option_int "$options" compress $do_combine)
|
|
9
|
+
local do_upload=$(bluer_ai_option_int "$options" upload 0)
|
|
10
|
+
local filename=$(bluer_ai_option "$options" filename release.pdf)
|
|
11
|
+
|
|
12
|
+
if [[ "$do_install" == 1 ]]; then
|
|
13
|
+
pip install pypandoc
|
|
14
|
+
pip install PyPDF2
|
|
15
|
+
|
|
16
|
+
if [[ "$abcli_is_mac" == true ]]; then
|
|
17
|
+
brew install pandoc
|
|
18
|
+
brew install wkhtmltopdf
|
|
19
|
+
brew install ghostscript
|
|
20
|
+
fi
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
if [[ "$do_inline" == 1 ]]; then
|
|
24
|
+
local module_name=${2:-object}
|
|
25
|
+
if alias "$module_name" &>/dev/null; then
|
|
26
|
+
module_name=$(alias "$module_name" | sed -E "s/^alias $module_name='(.*)'$/\1/")
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
local path_prefix=$(python3 -m $module_name locate)/docs/
|
|
30
|
+
|
|
31
|
+
local suffixes=${3:-metadata}
|
|
32
|
+
|
|
33
|
+
local object_name=$(bluer_ai_clarify_object $4 pdf-$(bluer_ai_string_timestamp))
|
|
34
|
+
|
|
35
|
+
bluer_ai_log "@pdf $module_name/$suffixes -> $object_name ..."
|
|
36
|
+
|
|
37
|
+
bluer_ai_eval dryrun=$do_dryrun \
|
|
38
|
+
python3 -m bluer_objects.pdf \
|
|
39
|
+
convert \
|
|
40
|
+
--path_prefix $path_prefix \
|
|
41
|
+
--object_name $object_name \
|
|
42
|
+
--suffixes $suffixes \
|
|
43
|
+
--combine $do_combine \
|
|
44
|
+
"${@:5}"
|
|
45
|
+
else
|
|
46
|
+
local object_name=$(bluer_ai_clarify_object $2 pdf-$(bluer_ai_string_timestamp))
|
|
47
|
+
|
|
48
|
+
bluer_ai_log "@pdf $object_name ..."
|
|
49
|
+
|
|
50
|
+
bluer_ai_eval dryrun=$do_dryrun \
|
|
51
|
+
python3 -m bluer_objects.pdf \
|
|
52
|
+
convert \
|
|
53
|
+
--object_name $object_name \
|
|
54
|
+
--combine $do_combine \
|
|
55
|
+
--use_metadata 1 \
|
|
56
|
+
"${@:3}"
|
|
57
|
+
fi
|
|
58
|
+
[[ $? -ne 0 ]] && return 1
|
|
59
|
+
|
|
60
|
+
if [[ "$do_compress" == 1 ]]; then
|
|
61
|
+
bluer_ai_log "compressing..."
|
|
62
|
+
|
|
63
|
+
local object_path=$ABCLI_OBJECT_ROOT/$object_name
|
|
64
|
+
mv -v \
|
|
65
|
+
$object_path/$filename \
|
|
66
|
+
$object_path/_$filename
|
|
67
|
+
|
|
68
|
+
gs -sDEVICE=pdfwrite \
|
|
69
|
+
-dCompatibilityLevel=1.4 \
|
|
70
|
+
-dPDFSETTINGS=/ebook \
|
|
71
|
+
-dNOPAUSE \
|
|
72
|
+
-dBATCH \
|
|
73
|
+
-sOutputFile=$object_path/$filename \
|
|
74
|
+
$object_path/_$filename
|
|
75
|
+
[[ $? -ne 0 ]] && return 1
|
|
76
|
+
|
|
77
|
+
rm $object_path/_$filename
|
|
78
|
+
bluer_ai_log "-> $object_path/$filename"
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
if [[ "$do_upload" == 1 ]]; then
|
|
82
|
+
bluer_objects_upload \
|
|
83
|
+
filename=$filename \
|
|
84
|
+
$object_name
|
|
85
|
+
[[ $? -ne 0 ]] && return 1
|
|
86
|
+
|
|
87
|
+
if [[ "$do_inline" == 0 ]]; then
|
|
88
|
+
bluer_objects_metadata_upload \
|
|
89
|
+
$object_name
|
|
90
|
+
fi
|
|
91
|
+
fi
|
|
92
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function bluer_objects_pdf() {
|
|
4
|
+
local task=$1
|
|
5
|
+
|
|
6
|
+
local function_name=bluer_objects_pdf_$task
|
|
7
|
+
if [[ $(type -t $function_name) == "function" ]]; then
|
|
8
|
+
$function_name "${@:2}"
|
|
9
|
+
return
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
python3 bluer_objects.pdf "$@"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
bluer_ai_source_caller_suffix_path /pdf
|
|
@@ -4,11 +4,13 @@ function bluer_ai_storage_clear() {
|
|
|
4
4
|
local options=$1
|
|
5
5
|
local do_cloud=$(bluer_ai_option_int "$options" cloud 0)
|
|
6
6
|
local do_dryrun=$(bluer_ai_option_int "$options" dryrun 1)
|
|
7
|
+
local do_public=$(bluer_ai_option_int "$options" public 0)
|
|
7
8
|
|
|
8
9
|
if [[ "$do_cloud" == 1 ]]; then
|
|
9
10
|
python3 -m bluer_objects.storage \
|
|
10
11
|
clear \
|
|
11
12
|
--do_dryrun $do_dryrun \
|
|
13
|
+
--public $do_public \
|
|
12
14
|
"${@:2}"
|
|
13
15
|
return
|
|
14
16
|
fi
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#! /usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
function test_file_asset() {
|
|
4
|
+
echo $abcli_path_git/bluer-objects/bluer_objects/.abcli/tests/file.sh
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
function test_file_replace() {
|
|
8
|
+
local options=$1
|
|
9
|
+
|
|
10
|
+
local filename=$abcli_path_git/file.sh
|
|
11
|
+
|
|
12
|
+
cp -v \
|
|
13
|
+
$(test_file_asset) \
|
|
14
|
+
$filename
|
|
15
|
+
[[ $? -ne 0 ]] && return 1
|
|
16
|
+
|
|
17
|
+
bluer_objects_file - \
|
|
18
|
+
replace \
|
|
19
|
+
$filename \
|
|
20
|
+
--this function+local \
|
|
21
|
+
--that FUNCTION+LOCAL \
|
|
22
|
+
--cat 1 \
|
|
23
|
+
"${@:2}"
|
|
24
|
+
[[ $? -ne 0 ]] && return 1
|
|
25
|
+
bluer_ai_hr
|
|
26
|
+
|
|
27
|
+
# ---
|
|
28
|
+
|
|
29
|
+
bluer_objects_file - \
|
|
30
|
+
replace \
|
|
31
|
+
$filename \
|
|
32
|
+
--this "FUNCTION test_file_asset() {+echo" \
|
|
33
|
+
--that ":)+:(" \
|
|
34
|
+
--cat 1 \
|
|
35
|
+
--whole_line 1 \
|
|
36
|
+
"${@:2}"
|
|
37
|
+
[[ $? -ne 0 ]] && return 1
|
|
38
|
+
rm -v $filename
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function test_file_size() {
|
|
42
|
+
local options=$1
|
|
43
|
+
|
|
44
|
+
local size=$(bluer_objects_file - \
|
|
45
|
+
size \
|
|
46
|
+
$(test_file_asset))
|
|
47
|
+
|
|
48
|
+
bluer_ai_assert \
|
|
49
|
+
"$size" \
|
|
50
|
+
"1.18 kB"
|
|
51
|
+
[[ $? -ne 0 ]] && return 1
|
|
52
|
+
bluer_ai_hr
|
|
53
|
+
|
|
54
|
+
# ---
|
|
55
|
+
|
|
56
|
+
local size=$(bluer_objects_file - \
|
|
57
|
+
size \
|
|
58
|
+
$(test_file_asset) \
|
|
59
|
+
--pretty 0)
|
|
60
|
+
|
|
61
|
+
bluer_ai_assert \
|
|
62
|
+
"$size" \
|
|
63
|
+
"1209"
|
|
64
|
+
}
|