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.
Files changed (262) hide show
  1. bluer_objects-6.413.1/PKG-INFO +78 -0
  2. bluer_objects-6.413.1/README.md +42 -0
  3. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/abcli.sh +6 -0
  4. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/alias.sh +17 -6
  5. bluer_objects-6.413.1/bluer_objects/.abcli/assets/cd.sh +20 -0
  6. bluer_objects-6.413.1/bluer_objects/.abcli/assets/mv.sh +34 -0
  7. bluer_objects-6.413.1/bluer_objects/.abcli/assets/publish.sh +37 -0
  8. bluer_objects-6.413.1/bluer_objects/.abcli/assets.sh +15 -0
  9. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/bluer_objects.sh +2 -2
  10. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/clone.sh +10 -10
  11. bluer_objects-6.413.1/bluer_objects/.abcli/create_test_asset.sh +10 -0
  12. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/download.sh +6 -4
  13. bluer_objects-6.413.1/bluer_objects/.abcli/file.sh +19 -0
  14. bluer_objects-6.413.1/bluer_objects/.abcli/gif.sh +45 -0
  15. bluer_objects-6.413.1/bluer_objects/.abcli/host.sh +45 -0
  16. bluer_objects-6.413.1/bluer_objects/.abcli/ls.sh +29 -0
  17. bluer_objects-6.413.1/bluer_objects/.abcli/metadata/download.sh +9 -0
  18. bluer_objects-6.413.1/bluer_objects/.abcli/metadata/edit.sh +15 -0
  19. bluer_objects-6.413.1/bluer_objects/.abcli/metadata/get.sh +24 -0
  20. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata/post.sh +3 -3
  21. bluer_objects-6.413.1/bluer_objects/.abcli/metadata/upload.sh +9 -0
  22. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/metadata.sh +1 -1
  23. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/browse.sh +10 -10
  24. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/cache.sh +1 -1
  25. bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/deploy.sh +40 -0
  26. bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/lock/lock.sh +11 -0
  27. bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/lock/unlock.sh +12 -0
  28. bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/lock.sh +15 -0
  29. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/log_artifacts.sh +1 -1
  30. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/log_run.sh +1 -1
  31. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/run.sh +1 -1
  32. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/clone.sh +3 -3
  33. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/get.sh +1 -1
  34. bluer_objects-6.413.1/bluer_objects/.abcli/mlflow/tags/search.sh +8 -0
  35. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags/set.sh +1 -1
  36. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/tags.sh +1 -1
  37. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/test.sh +2 -2
  38. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/transition.sh +3 -3
  39. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow.sh +2 -4
  40. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/object.sh +2 -4
  41. bluer_objects-6.413.1/bluer_objects/.abcli/pdf/convert.sh +92 -0
  42. bluer_objects-6.413.1/bluer_objects/.abcli/pdf.sh +15 -0
  43. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/select.sh +4 -4
  44. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage/clear.sh +14 -3
  45. bluer_objects-6.413.1/bluer_objects/.abcli/storage/status.sh +11 -0
  46. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/README.sh +1 -1
  47. bluer_objects-6.413.1/bluer_objects/.abcli/tests/clone.sh +18 -0
  48. bluer_objects-6.413.1/bluer_objects/.abcli/tests/create_test_asset.sh +16 -0
  49. bluer_objects-6.413.1/bluer_objects/.abcli/tests/file.sh +64 -0
  50. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/gif.sh +4 -4
  51. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/help.sh +29 -9
  52. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/host.sh +1 -1
  53. bluer_objects-6.413.1/bluer_objects/.abcli/tests/ls.sh +32 -0
  54. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/metadata.sh +42 -4
  55. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_cache.sh +3 -3
  56. bluer_objects-6.413.1/bluer_objects/.abcli/tests/mlflow_lock.sh +30 -0
  57. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_logging.sh +1 -1
  58. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/mlflow_tags.sh +6 -6
  59. bluer_objects-6.413.1/bluer_objects/.abcli/tests/open.sh +11 -0
  60. bluer_objects-6.413.1/bluer_objects/.abcli/tests/open_gif_open.sh +14 -0
  61. bluer_objects-6.413.1/bluer_objects/.abcli/tests/pdf.sh +31 -0
  62. bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_clear.sh +11 -0
  63. bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_public_upload.sh +25 -0
  64. bluer_objects-6.413.1/bluer_objects/.abcli/tests/storage_status.sh +12 -0
  65. 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
  66. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/tests/version.sh +1 -1
  67. bluer_objects-6.413.1/bluer_objects/.abcli/tests/web_is_accessible.sh +17 -0
  68. bluer_objects-6.413.1/bluer_objects/.abcli/tests/web_where_am_ai.sh +5 -0
  69. bluer_objects-6.413.1/bluer_objects/.abcli/upload.sh +45 -0
  70. bluer_objects-6.413.1/bluer_objects/.abcli/url.sh +15 -0
  71. bluer_objects-6.413.1/bluer_objects/.abcli/web/is_accessible.sh +13 -0
  72. bluer_objects-6.413.1/bluer_objects/.abcli/web/where_am_i.sh +5 -0
  73. bluer_objects-6.413.1/bluer_objects/README/__init__.py +30 -0
  74. bluer_objects-6.413.1/bluer_objects/README/alias.py +56 -0
  75. bluer_objects-6.413.1/bluer_objects/README/aliases.py +23 -0
  76. bluer_objects-6.413.1/bluer_objects/README/consts.py +39 -0
  77. bluer_objects-6.413.1/bluer_objects/README/docs.py +22 -0
  78. bluer_objects-6.413.1/bluer_objects/README/functions.py +204 -0
  79. bluer_objects-6.413.1/bluer_objects/README/items.py +102 -0
  80. bluer_objects-6.413.1/bluer_objects/README/modules.py +9 -0
  81. bluer_objects-6.413.1/bluer_objects/README/utils.py +275 -0
  82. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/__init__.py +2 -2
  83. bluer_objects-6.413.1/bluer_objects/assets/__main__.py +57 -0
  84. bluer_objects-6.413.1/bluer_objects/assets/functions.py +62 -0
  85. bluer_objects-6.413.1/bluer_objects/config.env +13 -0
  86. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/env.py +24 -1
  87. bluer_objects-6.413.1/bluer_objects/file/__main__.py +101 -0
  88. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/functions.py +21 -4
  89. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/load.py +2 -9
  90. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/save.py +17 -24
  91. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/__main__.py +7 -0
  92. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/gif.py +11 -7
  93. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/screen.py +9 -8
  94. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/signature.py +1 -0
  95. bluer_objects-6.413.1/bluer_objects/help/assets.py +96 -0
  96. bluer_objects-6.413.1/bluer_objects/help/create_test_asset.py +22 -0
  97. bluer_objects-6.413.1/bluer_objects/help/download.py +37 -0
  98. bluer_objects-6.413.1/bluer_objects/help/file.py +59 -0
  99. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/functions.py +9 -1
  100. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/gif.py +25 -0
  101. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/host.py +6 -4
  102. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/ls.py +26 -3
  103. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/metadata.py +51 -0
  104. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/__init__.py +40 -1
  105. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/cache.py +2 -4
  106. bluer_objects-6.413.1/bluer_objects/help/mlflow/lock.py +52 -0
  107. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/mlflow/tags.py +34 -23
  108. bluer_objects-6.413.1/bluer_objects/help/pdf.py +67 -0
  109. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/upload.py +10 -3
  110. bluer_objects-6.413.1/bluer_objects/help/web.py +38 -0
  111. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/host/functions.py +4 -1
  112. bluer_objects-6.413.1/bluer_objects/logger/confusion_matrix.py +76 -0
  113. bluer_objects-6.413.1/bluer_objects/logger/image.py +110 -0
  114. bluer_objects-6.413.1/bluer_objects/logger/stitch.py +107 -0
  115. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/markdown.py +8 -6
  116. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/__init__.py +1 -0
  117. bluer_objects-6.413.1/bluer_objects/metadata/flatten.py +27 -0
  118. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/__init__.py +1 -1
  119. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/__main__.py +49 -31
  120. bluer_objects-6.413.1/bluer_objects/mlflow/lock/__init__.py +1 -0
  121. bluer_objects-6.413.1/bluer_objects/mlflow/lock/__main__.py +58 -0
  122. bluer_objects-6.413.1/bluer_objects/mlflow/lock/functions.py +121 -0
  123. bluer_objects-6.413.1/bluer_objects/mlflow/logging.py +93 -0
  124. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/models.py +7 -0
  125. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/objects.py +7 -0
  126. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/runs.py +10 -1
  127. bluer_objects-6.413.1/bluer_objects/mlflow/serverless/__init__.py +3 -0
  128. bluer_objects-6.413.1/bluer_objects/mlflow/serverless/api.py +88 -0
  129. bluer_objects-6.413.1/bluer_objects/mlflow/serverless/read.py +19 -0
  130. bluer_objects-6.413.1/bluer_objects/mlflow/serverless/search.py +35 -0
  131. bluer_objects-6.413.1/bluer_objects/mlflow/serverless/write.py +42 -0
  132. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/tags.py +59 -9
  133. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/objects.py +3 -3
  134. bluer_objects-6.413.1/bluer_objects/pdf/__init__.py +1 -0
  135. bluer_objects-6.413.1/bluer_objects/pdf/__main__.py +78 -0
  136. bluer_objects-6.413.1/bluer_objects/pdf/convert/__init__.py +0 -0
  137. bluer_objects-6.413.1/bluer_objects/pdf/convert/batch.py +54 -0
  138. bluer_objects-6.413.1/bluer_objects/pdf/convert/combination.py +32 -0
  139. bluer_objects-6.413.1/bluer_objects/pdf/convert/convert.py +111 -0
  140. bluer_objects-6.413.1/bluer_objects/pdf/convert/image.py +53 -0
  141. bluer_objects-6.413.1/bluer_objects/pdf/convert/md.py +97 -0
  142. bluer_objects-6.413.1/bluer_objects/pdf/convert/missing.py +96 -0
  143. bluer_objects-6.413.1/bluer_objects/pdf/convert/pdf.py +37 -0
  144. bluer_objects-6.413.1/bluer_objects/sample.env +9 -0
  145. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAV.py +11 -7
  146. bluer_objects-6.413.1/bluer_objects/storage/WebDAVrequest.py +360 -0
  147. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/WebDAVzip.py +59 -24
  148. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/__init__.py +36 -1
  149. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/storage/__main__.py +51 -7
  150. bluer_objects-6.413.1/bluer_objects/storage/base.py +131 -0
  151. bluer_objects-6.413.1/bluer_objects/storage/policies.py +7 -0
  152. bluer_objects-6.413.1/bluer_objects/storage/s3.py +367 -0
  153. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/testing/__main__.py +6 -0
  154. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/testing/functions.py +1 -1
  155. bluer_objects-6.413.1/bluer_objects/tests/__init__.py +0 -0
  156. bluer_objects-6.413.1/bluer_objects/tests/test_README_consts.py +71 -0
  157. bluer_objects-6.413.1/bluer_objects/tests/test_README_items.py +128 -0
  158. bluer_objects-6.413.1/bluer_objects/tests/test_alias.py +33 -0
  159. bluer_objects-6.413.1/bluer_objects/tests/test_env.py +50 -0
  160. bluer_objects-6.413.1/bluer_objects/tests/test_file_download.py +25 -0
  161. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_file_load_save.py +1 -2
  162. bluer_objects-6.413.1/bluer_objects/tests/test_file_load_save_text.py +46 -0
  163. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_gif.py +2 -0
  164. bluer_objects-6.413.1/bluer_objects/tests/test_log_image_grid.py +29 -0
  165. bluer_objects-6.413.1/bluer_objects/tests/test_logger_confusion_matrix.py +18 -0
  166. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_logger_matrix.py +2 -2
  167. bluer_objects-6.413.1/bluer_objects/tests/test_logger_stitch_images.py +47 -0
  168. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_metadata.py +12 -6
  169. bluer_objects-6.413.1/bluer_objects/tests/test_metadata_flatten.py +109 -0
  170. bluer_objects-6.413.1/bluer_objects/tests/test_mlflow.py +169 -0
  171. bluer_objects-6.413.1/bluer_objects/tests/test_mlflow_lock.py +26 -0
  172. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_objects.py +2 -0
  173. bluer_objects-6.413.1/bluer_objects/tests/test_shell.py +34 -0
  174. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_storage.py +8 -21
  175. bluer_objects-6.413.1/bluer_objects/tests/test_storage_base.py +39 -0
  176. bluer_objects-6.413.1/bluer_objects/tests/test_storage_s3.py +67 -0
  177. bluer_objects-6.413.1/bluer_objects/tests/test_storage_webdav_request.py +75 -0
  178. bluer_objects-6.413.1/bluer_objects/tests/test_storage_webdav_zip.py +42 -0
  179. bluer_objects-6.413.1/bluer_objects/tests/test_web_is_accessible.py +11 -0
  180. bluer_objects-6.413.1/bluer_objects/web/__init__.py +1 -0
  181. bluer_objects-6.413.1/bluer_objects/web/__main__.py +31 -0
  182. bluer_objects-6.413.1/bluer_objects/web/functions.py +9 -0
  183. bluer_objects-6.413.1/bluer_objects.egg-info/PKG-INFO +78 -0
  184. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/SOURCES.txt +88 -7
  185. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/requires.txt +1 -0
  186. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/requirements.txt +1 -0
  187. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/setup.py +6 -0
  188. bluer_objects-6.46.1/PKG-INFO +0 -58
  189. bluer_objects-6.46.1/README.md +0 -22
  190. bluer_objects-6.46.1/bluer_objects/.abcli/file.sh +0 -8
  191. bluer_objects-6.46.1/bluer_objects/.abcli/gif.sh +0 -27
  192. bluer_objects-6.46.1/bluer_objects/.abcli/host.sh +0 -29
  193. bluer_objects-6.46.1/bluer_objects/.abcli/ls.sh +0 -18
  194. bluer_objects-6.46.1/bluer_objects/.abcli/metadata/get.sh +0 -24
  195. bluer_objects-6.46.1/bluer_objects/.abcli/mlflow/tags/search.sh +0 -12
  196. bluer_objects-6.46.1/bluer_objects/.abcli/storage/download_file.sh +0 -9
  197. bluer_objects-6.46.1/bluer_objects/.abcli/storage/exists.sh +0 -8
  198. bluer_objects-6.46.1/bluer_objects/.abcli/storage/list.sh +0 -8
  199. bluer_objects-6.46.1/bluer_objects/.abcli/storage/rm.sh +0 -11
  200. bluer_objects-6.46.1/bluer_objects/.abcli/storage/status.sh +0 -11
  201. bluer_objects-6.46.1/bluer_objects/.abcli/tests/clone.sh +0 -19
  202. bluer_objects-6.46.1/bluer_objects/.abcli/tests/ls.sh +0 -25
  203. bluer_objects-6.46.1/bluer_objects/.abcli/tests/mlflow_test.sh +0 -7
  204. bluer_objects-6.46.1/bluer_objects/.abcli/upload.sh +0 -21
  205. bluer_objects-6.46.1/bluer_objects/README/__init__.py +0 -29
  206. bluer_objects-6.46.1/bluer_objects/README/functions.py +0 -286
  207. bluer_objects-6.46.1/bluer_objects/README/items.py +0 -30
  208. bluer_objects-6.46.1/bluer_objects/config.env +0 -5
  209. bluer_objects-6.46.1/bluer_objects/file/__main__.py +0 -56
  210. bluer_objects-6.46.1/bluer_objects/help/assets.py +0 -38
  211. bluer_objects-6.46.1/bluer_objects/help/download.py +0 -23
  212. bluer_objects-6.46.1/bluer_objects/mlflow/logging.py +0 -81
  213. bluer_objects-6.46.1/bluer_objects/sample.env +0 -3
  214. bluer_objects-6.46.1/bluer_objects/storage/base.py +0 -46
  215. bluer_objects-6.46.1/bluer_objects/tests/test_env.py +0 -22
  216. bluer_objects-6.46.1/bluer_objects/tests/test_mlflow.py +0 -60
  217. bluer_objects-6.46.1/bluer_objects.egg-info/PKG-INFO +0 -58
  218. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/LICENSE +0 -0
  219. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/MANIFEST.in +0 -0
  220. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/actions.sh +0 -0
  221. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/aka.sh +0 -0
  222. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/mlflow/list_registered_models.sh +0 -0
  223. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/.abcli/storage.sh +0 -0
  224. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/__main__.py +0 -0
  225. {bluer_objects-6.46.1/bluer_objects/help → bluer_objects-6.413.1/bluer_objects/assets}/__init__.py +0 -0
  226. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/__init__.py +0 -0
  227. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/file/classes.py +0 -0
  228. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/__init__.py +0 -0
  229. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/frame.py +0 -0
  230. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/graphics/text.py +0 -0
  231. {bluer_objects-6.46.1/bluer_objects/tests → bluer_objects-6.413.1/bluer_objects/help}/__init__.py +0 -0
  232. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/__main__.py +0 -0
  233. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/help/clone.py +0 -0
  234. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/host/__init__.py +0 -0
  235. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/host/__main__.py +0 -0
  236. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/logger/__init__.py +0 -0
  237. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/logger/matrix.py +0 -0
  238. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/__main__.py +0 -0
  239. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/enums.py +0 -0
  240. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/get.py +0 -0
  241. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/metadata/post.py +0 -0
  242. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/cache.py +0 -0
  243. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/mlflow/testing.py +0 -0
  244. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/path.py +0 -0
  245. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/testing/__init__.py +0 -0
  246. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_README.py +0 -0
  247. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_fullname.py +0 -0
  248. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics.py +0 -0
  249. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_frame.py +0 -0
  250. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_screen.py +0 -0
  251. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_signature.py +0 -0
  252. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_graphics_text.py +0 -0
  253. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_logger.py +0 -0
  254. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_markdown.py +0 -0
  255. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_path.py +0 -0
  256. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_testing.py +0 -0
  257. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/tests/test_version.py +0 -0
  258. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects/urls.py +0 -0
  259. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/dependency_links.txt +0 -0
  260. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/bluer_objects.egg-info/top_level.txt +0 -0
  261. {bluer_objects-6.46.1 → bluer_objects-6.413.1}/pyproject.toml +0 -0
  262. {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
+ [![pylint](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-objects.svg)](https://pypi.org/project/bluer-objects/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/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
+ [![pylint](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-objects/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-objects/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-objects/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-objects.svg)](https://pypi.org/project/bluer-objects/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/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 @ai=bluer_ai
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 @mysql=abcli_mysql
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 @upload=bluer_objects_upload
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
@@ -3,9 +3,9 @@
3
3
  function bluer_objects() {
4
4
  local task=$1
5
5
 
6
- abcli_generic_task \
6
+ bluer_ai_generic_task \
7
7
  plugin=bluer_objects,task=$task \
8
8
  "${@:2}"
9
9
  }
10
10
 
11
- abcli_log $(bluer_objects version --show_icon 1)
11
+ bluer_ai_log $(bluer_objects version --show_icon 1)
@@ -2,17 +2,17 @@
2
2
 
3
3
  function bluer_objects_clone() {
4
4
  local options=$1
5
- local do_relate=$(abcli_option_int "$options" relate 1)
6
- local do_upload=$(abcli_option_int "$options" upload 0)
7
- local clone_tags=$(abcli_option_int "$options" tags 1)
8
- local copy_content=$(abcli_option_int "$options" content 1)
9
- local do_download=$(abcli_option_int "$options" download 1)
10
- local transfer_mechanism=$(abcli_option_choice "$options" cp,mv mv)
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=$(abcli_clarify_object $2 ..)
13
- local object_2_name=$(abcli_clarify_object $3 .)
12
+ local object_1_name=$(bluer_ai_clarify_object $2 ..)
13
+ local object_2_name=$(bluer_ai_clarify_object $3 .)
14
14
 
15
- abcli_log "$object_1_name -clone:$transfer_mechanism-> $object_2_name"
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
- abcli_eval - \
24
+ bluer_ai_eval - \
25
25
  rsync \
26
26
  -avv \
27
27
  $object_1_path/ \
@@ -0,0 +1,10 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function bluer_objects_create_test_asset() {
4
+ local object_name=$(bluer_ai_clarify_object $1 .)
5
+
6
+ python3 -m bluer_objects.testing \
7
+ create_test_asset \
8
+ --object_name $object_name \
9
+ "${@:2}"
10
+ }
@@ -2,18 +2,20 @@
2
2
 
3
3
  function bluer_objects_download() {
4
4
  local options=$1
5
- local filename=$(abcli_option "$options" filename)
5
+ local filename=$(bluer_ai_option "$options" filename)
6
+ local policy=$(bluer_ai_option "$options" policy none)
6
7
 
7
- local object_name=$(abcli_clarify_object $2 .)
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=$(abcli_option_int "$open_options" open 0)
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,9 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function bluer_objects_metadata_download() {
4
+ local object_name=$(bluer_ai_clarify_object $1 .)
5
+
6
+ bluer_objects_download \
7
+ filename=metadata.yaml \
8
+ $object_name
9
+ }
@@ -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=$(abcli_option_choice "$options" object,path,filename object)
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=$(abcli_clarify_object $4 .)
13
+ source=$(bluer_ai_clarify_object $4 .)
14
14
 
15
15
  python3 -m bluer_objects.metadata post \
16
- --filename $(abcli_option "$options" filename metadata.yaml) \
16
+ --filename $(bluer_ai_option "$options" filename metadata.yaml) \
17
17
  --key "$key" \
18
18
  --value "$value" \
19
19
  --source "$source" \
@@ -0,0 +1,9 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function bluer_objects_metadata_upload() {
4
+ local object_name=$(bluer_ai_clarify_object $1 .)
5
+
6
+ bluer_objects_upload \
7
+ filename=metadata.yaml \
8
+ $object_name
9
+ }
@@ -9,7 +9,7 @@ function bluer_objects_metadata() {
9
9
  return
10
10
  fi
11
11
 
12
- abcli_log_error "@metadata: $task: command not found."
12
+ bluer_ai_log_error "@metadata: $task: command not found."
13
13
  return 1
14
14
  }
15
15
 
@@ -2,31 +2,31 @@
2
2
 
3
3
  function bluer_objects_mlflow_browse() {
4
4
  local options=$1
5
- local browse_experiment=$(abcli_option_int "$options" experiment 0)
5
+ local browse_experiment=$(bluer_ai_option_int "$options" experiment 0)
6
6
 
7
- local url=$DATABRICKS_HOST/$ABCLI_MLFLOW_URL_SUBDOMAIN
7
+ local url=http://localhost:5001/#
8
+ [[ "$MLFLOW_DEPLOYMENT" != "local" ]] &&
9
+ url=$MLFLOW_TRACKING_URI
8
10
 
9
- if [ $(abcli_option_int "$options" databricks 0) == 1 ]; then
11
+ if [ $(bluer_ai_option_int "$options" databricks 0) == 1 ]; then
10
12
  url="https://accounts.cloud.databricks.com/"
11
- elif [ $(abcli_option_int "$options" host 0) == 1 ]; then
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=$(abcli_clarify_object $2 .)
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
- abcli_log_error "@mlflow: browse: $object_name: object not found."
20
+ bluer_ai_log_error "@mlflow: browse: $object_name: object not found."
21
21
  return 1
22
22
  fi
23
- abcli_log "experiment id: $experiment_id"
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
- abcli_log "last run id: $last_run_id"
29
+ bluer_ai_log "last run id: $last_run_id"
30
30
 
31
31
  url="$url/runs/$last_run_id"
32
32
  fi