bluer-objects 6.32.1__tar.gz → 6.33.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bluer-objects might be problematic. Click here for more details.

Files changed (147) hide show
  1. {bluer_objects-6.32.1/bluer_objects.egg-info → bluer_objects-6.33.1}/PKG-INFO +2 -2
  2. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/README.md +1 -1
  3. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/alias.sh +2 -2
  4. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/clone.sh +1 -29
  5. bluer_objects-6.33.1/bluer_objects/.abcli/tests/clone.sh +19 -0
  6. bluer_objects-6.33.1/bluer_objects/.abcli/tests/gif.sh +20 -0
  7. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/help.sh +2 -0
  8. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/storage.sh +8 -11
  9. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/__init__.py +1 -1
  10. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/file/__main__.py +2 -10
  11. bluer_objects-6.33.1/bluer_objects/help/clone.py +28 -0
  12. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/help/functions.py +2 -0
  13. bluer_objects-6.33.1/bluer_objects/testing/__init__.py +1 -0
  14. bluer_objects-6.33.1/bluer_objects/testing/__main__.py +32 -0
  15. bluer_objects-6.33.1/bluer_objects/testing/functions.py +60 -0
  16. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_objects.py +2 -32
  17. bluer_objects-6.33.1/bluer_objects/tests/test_testing.py +8 -0
  18. {bluer_objects-6.32.1 → bluer_objects-6.33.1/bluer_objects.egg-info}/PKG-INFO +2 -2
  19. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects.egg-info/SOURCES.txt +5 -0
  20. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/setup.py +1 -0
  21. bluer_objects-6.32.1/bluer_objects/.abcli/tests/clone.sh +0 -32
  22. bluer_objects-6.32.1/bluer_objects/.abcli/tests/gif.sh +0 -13
  23. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/LICENSE +0 -0
  24. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/MANIFEST.in +0 -0
  25. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/abcli.sh +0 -0
  26. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/actions.sh +0 -0
  27. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/aka.sh +0 -0
  28. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/bluer_objects.sh +0 -0
  29. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/cache.sh +0 -0
  30. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/download.sh +0 -0
  31. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/file.sh +0 -0
  32. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/gif.sh +0 -0
  33. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/host.sh +0 -0
  34. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/ls.sh +0 -0
  35. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/metadata/get.sh +0 -0
  36. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/metadata/post.sh +0 -0
  37. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/metadata.sh +0 -0
  38. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/browse.sh +0 -0
  39. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/cache.sh +0 -0
  40. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/list_registered_models.sh +0 -0
  41. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/log_artifacts.sh +0 -0
  42. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/log_run.sh +0 -0
  43. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/run.sh +0 -0
  44. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/tags/clone.sh +0 -0
  45. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/tags/get.sh +0 -0
  46. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/tags/search.sh +0 -0
  47. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/tags/set.sh +0 -0
  48. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/tags.sh +0 -0
  49. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/test.sh +0 -0
  50. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow/transition.sh +0 -0
  51. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/mlflow.sh +0 -0
  52. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/object.sh +0 -0
  53. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/publish.sh +0 -0
  54. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/select.sh +0 -0
  55. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage/clear.sh +0 -0
  56. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage/download_file.sh +0 -0
  57. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage/exists.sh +0 -0
  58. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage/list.sh +0 -0
  59. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage/rm.sh +0 -0
  60. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage/status.sh +0 -0
  61. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/storage.sh +0 -0
  62. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/README.sh +0 -0
  63. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/host.sh +0 -0
  64. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/ls.sh +0 -0
  65. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/metadata.sh +0 -0
  66. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/mlflow_cache.sh +0 -0
  67. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/mlflow_logging.sh +0 -0
  68. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/mlflow_tags.sh +0 -0
  69. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/mlflow_test.sh +0 -0
  70. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/tests/version.sh +0 -0
  71. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/.abcli/upload.sh +0 -0
  72. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/README/__init__.py +0 -0
  73. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/README/functions.py +0 -0
  74. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/README/items.py +0 -0
  75. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/__main__.py +0 -0
  76. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/config.env +0 -0
  77. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/env.py +0 -0
  78. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/file/__init__.py +0 -0
  79. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/file/classes.py +0 -0
  80. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/file/functions.py +0 -0
  81. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/file/load.py +0 -0
  82. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/file/save.py +0 -0
  83. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/__init__.py +0 -0
  84. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/__main__.py +0 -0
  85. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/frame.py +0 -0
  86. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/gif.py +0 -0
  87. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/screen.py +0 -0
  88. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/signature.py +0 -0
  89. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/graphics/text.py +0 -0
  90. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/help/__init__.py +0 -0
  91. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/help/__main__.py +0 -0
  92. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/help/download.py +0 -0
  93. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/help/upload.py +0 -0
  94. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/host/__init__.py +0 -0
  95. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/host/__main__.py +0 -0
  96. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/host/functions.py +0 -0
  97. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/logger/__init__.py +0 -0
  98. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/logger/matrix.py +0 -0
  99. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/markdown.py +0 -0
  100. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/metadata/__init__.py +0 -0
  101. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/metadata/__main__.py +0 -0
  102. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/metadata/enums.py +0 -0
  103. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/metadata/get.py +0 -0
  104. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/metadata/post.py +0 -0
  105. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/__init__.py +0 -0
  106. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/__main__.py +0 -0
  107. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/cache.py +0 -0
  108. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/logging.py +0 -0
  109. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/models.py +0 -0
  110. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/objects.py +0 -0
  111. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/runs.py +0 -0
  112. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/tags.py +0 -0
  113. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/mlflow/testing.py +0 -0
  114. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/objects.py +0 -0
  115. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/path.py +0 -0
  116. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/sample.env +0 -0
  117. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/storage/WebDAV.py +0 -0
  118. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/storage/WebDAVzip.py +0 -0
  119. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/storage/__init__.py +0 -0
  120. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/storage/__main__.py +0 -0
  121. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/storage/base.py +0 -0
  122. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/__init__.py +0 -0
  123. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_README.py +0 -0
  124. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_env.py +0 -0
  125. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_file_load_save.py +0 -0
  126. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_fullname.py +0 -0
  127. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_graphics.py +0 -0
  128. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_graphics_frame.py +0 -0
  129. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_graphics_gif.py +0 -0
  130. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_graphics_screen.py +0 -0
  131. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_graphics_signature.py +0 -0
  132. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_graphics_text.py +0 -0
  133. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_logger.py +0 -0
  134. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_logger_matrix.py +0 -0
  135. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_markdown.py +0 -0
  136. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_metadata.py +0 -0
  137. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_mlflow.py +0 -0
  138. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_path.py +0 -0
  139. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_storage.py +0 -0
  140. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/tests/test_version.py +0 -0
  141. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects/urls.py +0 -0
  142. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects.egg-info/dependency_links.txt +0 -0
  143. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects.egg-info/requires.txt +0 -0
  144. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/bluer_objects.egg-info/top_level.txt +0 -0
  145. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/pyproject.toml +0 -0
  146. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/requirements.txt +0 -0
  147. {bluer_objects-6.32.1 → bluer_objects-6.33.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_objects
3
- Version: 6.32.1
3
+ Version: 6.33.1
4
4
  Summary: 🌀 data objects for Bash.
5
5
  Home-page: https://github.com/kamangir/bluer-objects
6
6
  Author: Arash Abadpour (Kamangir)
@@ -53,6 +53,6 @@ Also home to [blue README](https://github.com/kamangir/bluer-objects/blob/main/b
53
53
 
54
54
  [![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)
55
55
 
56
- built by 🌀 [`bluer_options-5.28.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`bluer_objects-6.32.1`](https://github.com/kamangir/bluer-objects).
56
+ built by 🌀 [`bluer_options-5.28.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`bluer_objects-6.33.1`](https://github.com/kamangir/bluer-objects).
57
57
 
58
58
  built by 🌀 [`blueness-3.96.1`](https://github.com/kamangir/blueness).
@@ -19,4 +19,4 @@ Also home to [blue README](./bluer_objects/README/).
19
19
 
20
20
  [![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)
21
21
 
22
- built by 🌀 [`bluer_options-5.28.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`bluer_objects-6.32.1`](https://github.com/kamangir/bluer-objects).
22
+ built by 🌀 [`bluer_options-5.28.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`bluer_objects-6.33.1`](https://github.com/kamangir/bluer-objects).
@@ -12,8 +12,8 @@ alias @cache=abcli_cache
12
12
  alias @ref="abcli_cache read"
13
13
  alias @tags=abcli_mlflow_tags
14
14
 
15
- alias @clone=abcli_clone
16
- alias @cp=abcli_clone
15
+ alias @clone=bluer_objects_clone
16
+ alias @cp=bluer_objects_clone
17
17
 
18
18
  alias @file=bluer_objects_file
19
19
 
@@ -1,37 +1,9 @@
1
1
  #! /usr/bin/env bash
2
2
 
3
- function abcli_clone() {
3
+ function bluer_objects_clone() {
4
4
  local options=$1
5
5
  local do_relate=$(abcli_option_int "$options" relate 1)
6
6
  local do_upload=$(abcli_option_int "$options" upload 0)
7
-
8
- local from_s3=$(abcli_option_int "$options" s3 0)
9
- if [[ "$from_s3" == 1 ]]; then
10
- local s3_uri=${2:-void}
11
-
12
- local object_name=$(abcli_clarify_object $3 .)
13
- local object_path=$ABCLI_OBJECT_ROOT/$object_name
14
- mkdir -pv $object_path
15
-
16
- abcli_log "$s3_uri -clone-> $object_name"
17
-
18
- aws s3 sync \
19
- "$s3_uri" \
20
- "$object_path" \
21
- --exact-timestamps
22
- [[ $? -ne 0 ]] && return 1
23
-
24
- [[ "$do_relate" == 1 ]] &&
25
- abcli_mlflow_tags set \
26
- $object_name \
27
- cloned.$s3_uri
28
-
29
- [[ "$do_upload" == 1 ]] &&
30
- bluer_objects_upload - $object_name
31
-
32
- return 0
33
- fi
34
-
35
7
  local clone_tags=$(abcli_option_int "$options" tags 1)
36
8
  local copy_content=$(abcli_option_int "$options" content 1)
37
9
  local do_download=$(abcli_option_int "$options" download 1)
@@ -0,0 +1,19 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function test_bluer_objects_clone() {
4
+ local options=$1
5
+
6
+ local source_object_name=test_bluer_objects_clone-$(abcli_string_timestamp_short)
7
+
8
+ python3 -m bluer_objects.testing \
9
+ create_test_asset \
10
+ --object_name $source_object_name
11
+ [[ $? -ne 0 ]] && return 1
12
+
13
+ local object_name=test_bluer_objects_clone-$(abcli_string_timestamp_short)
14
+
15
+ bluer_objects_clone \
16
+ ~relate,~tags,~upload,$options \
17
+ $source_object_name \
18
+ $object_name
19
+ }
@@ -0,0 +1,20 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function test_bluer_objects_gif() {
4
+ local options=$1
5
+
6
+ local source_object_name=test_bluer_objects_clone-$(abcli_string_timestamp_short)
7
+
8
+ python3 -m bluer_objects.testing \
9
+ create_test_asset \
10
+ --object_name $source_object_name
11
+ [[ $? -ne 0 ]] && return 1
12
+
13
+ abcli_gif \
14
+ ~upload,$options \
15
+ $source_object_name \
16
+ --frame_duration 200 \
17
+ --output_filename test.gif \
18
+ --scale 2 \
19
+ --suffix .png
20
+ }
@@ -11,6 +11,8 @@ function test_bluer_objects_help() {
11
11
  "@assets" \
12
12
  "@assets publish" \
13
13
  \
14
+ "@cp" \
15
+ \
14
16
  "@objects" \
15
17
  \
16
18
  "@objects pypi" \
@@ -7,25 +7,22 @@ function test_bluer_objects_storage() {
7
7
  local object_path=$ABCLI_OBJECT_ROOT/$object_name
8
8
  mkdir -pv $object_path
9
9
 
10
- local suffix
11
- local extension=yaml
12
- for suffix in this.$extension that.$extension subfolder/this.$extension subfolder/that.$extension; do
13
- python3 -m bluer_objects.file \
14
- create_a_file \
15
- --filename $object_path/$suffix
16
- done
10
+ python3 -m bluer_objects.testing \
11
+ create_test_asset \
12
+ --object_name $object_name
13
+ [[ $? -ne 0 ]] && return 1
17
14
 
18
15
  # testing upload
19
16
  abcli_hr
20
17
 
21
18
  bluer_objects_upload \
22
- filename=this.$extension \
19
+ filename=this.yaml \
23
20
  $object_name
24
21
  [[ $? -ne 0 ]] && return 1
25
22
  abcli_hr
26
23
 
27
24
  bluer_objects_upload \
28
- filename=subfolder/this.$extension \
25
+ filename=subfolder/this.yaml \
29
26
  $object_name
30
27
  [[ $? -ne 0 ]] && return 1
31
28
  abcli_hr
@@ -43,13 +40,13 @@ function test_bluer_objects_storage() {
43
40
  # testing download
44
41
 
45
42
  bluer_objects_download \
46
- filename=this.$extension \
43
+ filename=this.yaml \
47
44
  $object_name
48
45
  [[ $? -ne 0 ]] && return 1
49
46
  abcli_hr
50
47
 
51
48
  bluer_objects_download \
52
- filename=subfolder/this.$extension \
49
+ filename=subfolder/this.yaml \
53
50
  $object_name
54
51
  [[ $? -ne 0 ]] && return 1
55
52
  abcli_hr
@@ -4,7 +4,7 @@ ICON = "🌀"
4
4
 
5
5
  DESCRIPTION = f"{ICON} data objects for Bash."
6
6
 
7
- VERSION = "6.32.1"
7
+ VERSION = "6.33.1"
8
8
 
9
9
  REPO_NAME = "bluer-objects"
10
10
 
@@ -14,7 +14,7 @@ parser = argparse.ArgumentParser(NAME)
14
14
  parser.add_argument(
15
15
  "task",
16
16
  type=str,
17
- help="create_a_file | replace | size",
17
+ help="replace | size",
18
18
  )
19
19
  parser.add_argument(
20
20
  "--filename",
@@ -38,15 +38,7 @@ parser.add_argument(
38
38
  args = parser.parse_args()
39
39
 
40
40
  success = False
41
- if args.task == "create_a_file":
42
- success = file.save_yaml(
43
- args.filename,
44
- {
45
- string.random(length=args.size): string.random(length=args.size)
46
- for _ in range(args.size)
47
- },
48
- )
49
- elif args.task == "replace":
41
+ if args.task == "replace":
50
42
  logger.info(f"{NAME}.{args.task}: {args.this} -> {args.that} in {args.filename}")
51
43
 
52
44
  success, content = file.load_text(args.filename)
@@ -0,0 +1,28 @@
1
+ from typing import List
2
+
3
+ from bluer_options.terminal import show_usage, xtra
4
+
5
+
6
+ def help_clone(
7
+ tokens: List[str],
8
+ mono: bool,
9
+ ) -> str:
10
+ options = "".join(
11
+ [
12
+ xtra("~content,cp,~download,", mono=mono),
13
+ "~relate",
14
+ xtra(",~tags,", mono=mono),
15
+ "upload",
16
+ ]
17
+ )
18
+
19
+ return show_usage(
20
+ [
21
+ "@cp",
22
+ f"[{options}]",
23
+ "[..|<object-1>]",
24
+ "[.|<object-2>]",
25
+ ],
26
+ "copy <object-1> -> <object-2>.",
27
+ mono=mono,
28
+ )
@@ -1,6 +1,7 @@
1
1
  from bluer_ai.help.generic import help_functions as generic_help_functions
2
2
 
3
3
  from bluer_objects import ALIAS
4
+ from bluer_objects.help.clone import help_clone
4
5
  from bluer_objects.help.download import help_download
5
6
  from bluer_objects.help.upload import help_upload
6
7
 
@@ -8,6 +9,7 @@ help_functions = generic_help_functions(plugin_name=ALIAS)
8
9
 
9
10
  help_functions.update(
10
11
  {
12
+ "clone": help_clone,
11
13
  "download": help_download,
12
14
  "upload": help_upload,
13
15
  }
@@ -0,0 +1 @@
1
+ from bluer_objects.testing.functions import create_test_asset
@@ -0,0 +1,32 @@
1
+ import argparse
2
+
3
+ from blueness import module
4
+ from blueness.argparse.generic import sys_exit
5
+
6
+ from bluer_objects import NAME
7
+ from bluer_objects.testing import create_test_asset
8
+ from bluer_objects.logger import logger
9
+
10
+ NAME = module.name(__file__, NAME)
11
+
12
+ parser = argparse.ArgumentParser(NAME)
13
+ parser.add_argument(
14
+ "task",
15
+ type=str,
16
+ help="create_test_asset",
17
+ )
18
+ parser.add_argument(
19
+ "--object_name",
20
+ type=str,
21
+ )
22
+ args = parser.parse_args()
23
+
24
+ success = False
25
+ if args.task == "create_test_asset":
26
+ success = create_test_asset(
27
+ object_name=args.object_name,
28
+ )
29
+ else:
30
+ success = None
31
+
32
+ sys_exit(logger, NAME, args.task, success)
@@ -0,0 +1,60 @@
1
+ from blueness import module
2
+ import numpy as np
3
+
4
+ from bluer_options import string
5
+
6
+ from bluer_objects import NAME
7
+ from bluer_objects import file, objects
8
+ from bluer_objects.logger import logger
9
+
10
+
11
+ NAME = module.name(__file__, NAME)
12
+
13
+
14
+ def create_test_asset(
15
+ object_name: str,
16
+ depth: int = 10,
17
+ ) -> bool:
18
+ logger.info(f"{NAME}.create_test_asset: {object_name}")
19
+
20
+ for suffix in range(10):
21
+ if not file.save_image(
22
+ objects.path_of(
23
+ object_name=object_name,
24
+ filename=f"test-{suffix:02d}.png",
25
+ ),
26
+ (np.random.rand(512, 512, 3) * 255).astype(np.uint8),
27
+ log=True,
28
+ ):
29
+ return False
30
+
31
+ data = {
32
+ string.random(length=depth): string.random(length=depth) for _ in range(depth)
33
+ }
34
+
35
+ for filename in [
36
+ "this.yaml",
37
+ "that.yaml",
38
+ "subfolder/this.yaml",
39
+ "subfolder/that.yaml",
40
+ "test.yaml",
41
+ ]:
42
+ if not file.save_yaml(
43
+ objects.path_of(
44
+ object_name=object_name,
45
+ filename=filename,
46
+ ),
47
+ data,
48
+ ):
49
+ return False
50
+
51
+ if not file.save_json(
52
+ objects.path_of(
53
+ object_name=object_name,
54
+ filename="test.json",
55
+ ),
56
+ data,
57
+ ):
58
+ return False
59
+
60
+ return True
@@ -1,45 +1,15 @@
1
1
  import pytest
2
- import numpy as np
3
-
4
- from bluer_options import string
5
2
 
6
3
  from bluer_objects import file, path, objects
7
- from bluer_objects import storage
4
+ from bluer_objects.testing import create_test_asset
8
5
  from bluer_objects.logger import logger
9
6
 
10
7
 
11
8
  @pytest.fixture
12
9
  def test_object():
13
10
  object_name = objects.unique_object("test_object")
14
- for suffix in range(10):
15
- assert file.save_image(
16
- objects.path_of(
17
- object_name=object_name,
18
- filename=f"test-{suffix:02d}.png",
19
- ),
20
- (np.random.rand(512, 512, 3) * 255).astype(np.uint8),
21
- )
22
-
23
- depth = 10
24
- data = {
25
- string.random(length=depth): string.random(length=depth) for _ in range(depth)
26
- }
27
-
28
- assert file.save_yaml(
29
- objects.path_of(
30
- object_name=object_name,
31
- filename="test.yaml",
32
- ),
33
- data,
34
- )
35
11
 
36
- assert file.save_json(
37
- objects.path_of(
38
- object_name=object_name,
39
- filename="test.json",
40
- ),
41
- data,
42
- )
12
+ assert create_test_asset(object_name)
43
13
 
44
14
  yield object_name
45
15
 
@@ -0,0 +1,8 @@
1
+ from bluer_objects import objects
2
+ from bluer_objects.testing import create_test_asset
3
+
4
+
5
+ def test_bluer_objects_testing():
6
+ object_name = objects.unique_object("test_bluer_objects_testing")
7
+
8
+ assert create_test_asset(object_name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_objects
3
- Version: 6.32.1
3
+ Version: 6.33.1
4
4
  Summary: 🌀 data objects for Bash.
5
5
  Home-page: https://github.com/kamangir/bluer-objects
6
6
  Author: Arash Abadpour (Kamangir)
@@ -53,6 +53,6 @@ Also home to [blue README](https://github.com/kamangir/bluer-objects/blob/main/b
53
53
 
54
54
  [![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)
55
55
 
56
- built by 🌀 [`bluer_options-5.28.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`bluer_objects-6.32.1`](https://github.com/kamangir/bluer-objects).
56
+ built by 🌀 [`bluer_options-5.28.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`bluer_objects-6.33.1`](https://github.com/kamangir/bluer-objects).
57
57
 
58
58
  built by 🌀 [`blueness-3.96.1`](https://github.com/kamangir/blueness).
@@ -89,6 +89,7 @@ bluer_objects/graphics/signature.py
89
89
  bluer_objects/graphics/text.py
90
90
  bluer_objects/help/__init__.py
91
91
  bluer_objects/help/__main__.py
92
+ bluer_objects/help/clone.py
92
93
  bluer_objects/help/download.py
93
94
  bluer_objects/help/functions.py
94
95
  bluer_objects/help/upload.py
@@ -116,6 +117,9 @@ bluer_objects/storage/WebDAVzip.py
116
117
  bluer_objects/storage/__init__.py
117
118
  bluer_objects/storage/__main__.py
118
119
  bluer_objects/storage/base.py
120
+ bluer_objects/testing/__init__.py
121
+ bluer_objects/testing/__main__.py
122
+ bluer_objects/testing/functions.py
119
123
  bluer_objects/tests/__init__.py
120
124
  bluer_objects/tests/test_README.py
121
125
  bluer_objects/tests/test_env.py
@@ -135,4 +139,5 @@ bluer_objects/tests/test_mlflow.py
135
139
  bluer_objects/tests/test_objects.py
136
140
  bluer_objects/tests/test_path.py
137
141
  bluer_objects/tests/test_storage.py
142
+ bluer_objects/tests/test_testing.py
138
143
  bluer_objects/tests/test_version.py
@@ -18,6 +18,7 @@ setup(
18
18
  f"{NAME}.mlflow",
19
19
  f"{NAME}.README",
20
20
  f"{NAME}.storage",
21
+ f"{NAME}.testing",
21
22
  f"{NAME}.tests",
22
23
  ],
23
24
  include_package_data=True,
@@ -1,32 +0,0 @@
1
- #! /usr/bin/env bash
2
-
3
- function test_bluer_objects_clone() {
4
- local options=$1
5
-
6
- local source_object_name=$(abcli_mlflow_tags_search \
7
- contains=latest-giza \
8
- --log 0 \
9
- --count 1)
10
- abcli_assert $source_object_name - non-empty
11
-
12
- local from_s3
13
- for from_s3 in 0 1; do
14
- local object_name=test_bluer_objects_clone-$(abcli_string_timestamp_short)
15
-
16
- if [[ "$from_s3" == 0 ]]; then
17
- abcli_clone \
18
- ~relate,~tags,~upload,$options \
19
- $source_object_name \
20
- $object_name
21
- [[ $? -ne 0 ]] && return 1
22
- else
23
- abcli_clone \
24
- ~relate,s3,~upload,$options \
25
- $ABCLI_S3_OBJECT_PREFIX/$source_object_name \
26
- $object_name
27
- [[ $? -ne 0 ]] && return 1
28
- fi
29
- done
30
-
31
- return 0
32
- }
@@ -1,13 +0,0 @@
1
- #! /usr/bin/env bash
2
-
3
- function test_bluer_objects_gif() {
4
- local options=$1
5
-
6
- abcli_gif \
7
- ~upload,$options \
8
- $VANWATCH_TEST_OBJECT \
9
- --frame_duration 200 \
10
- --output_filename test.gif \
11
- --scale 2 \
12
- --suffix .png
13
- }
File without changes
File without changes