yellowdog-python-examples 8.5.2__tar.gz → 8.5.4__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 (82) hide show
  1. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/PKG-INFO +2 -2
  2. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/README.md +1 -1
  3. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/requirements.txt +1 -1
  4. yellowdog_python_examples-8.5.4/yellowdog_cli/__init__.py +1 -0
  5. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/show.py +6 -6
  6. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/entity_utils.py +2 -4
  7. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/printing.py +12 -0
  8. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/rclone_utils.py +7 -8
  9. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/settings.py +3 -0
  10. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_python_examples.egg-info/PKG-INFO +2 -2
  11. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_python_examples.egg-info/requires.txt +1 -1
  12. yellowdog_python_examples-8.5.2/yellowdog_cli/__init__.py +0 -1
  13. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/LICENSE +0 -0
  14. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/PYPI_README.md +0 -0
  15. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/pyproject.toml +0 -0
  16. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/setup.cfg +0 -0
  17. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_create_remove.py +0 -0
  18. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_demos.py +0 -0
  19. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_dryruns.py +0 -0
  20. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_entrypoints.py +0 -0
  21. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_gui.py +0 -0
  22. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_list.py +0 -0
  23. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_objects.py +0 -0
  24. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/tests/test_variable_processing.py +0 -0
  25. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/abort.py +0 -0
  26. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/admin.py +0 -0
  27. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/application.py +0 -0
  28. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/boost.py +0 -0
  29. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/cancel.py +0 -0
  30. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/cloudwizard.py +0 -0
  31. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/compare.py +0 -0
  32. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/create.py +0 -0
  33. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/delete.py +0 -0
  34. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/download.py +0 -0
  35. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/finish.py +0 -0
  36. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/follow.py +0 -0
  37. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/format_json.py +0 -0
  38. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/hold.py +0 -0
  39. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/instantiate.py +0 -0
  40. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/jsonnet2json.py +0 -0
  41. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/list.py +0 -0
  42. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/provision.py +0 -0
  43. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/remove.py +0 -0
  44. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/resize.py +0 -0
  45. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/shutdown.py +0 -0
  46. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/start.py +0 -0
  47. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/submit.py +0 -0
  48. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/terminate.py +0 -0
  49. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/upload.py +0 -0
  50. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/__init__.py +0 -0
  51. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/args.py +0 -0
  52. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/check_imports.py +0 -0
  53. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/cloudwizard_aws.py +0 -0
  54. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/cloudwizard_aws_types.py +0 -0
  55. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/cloudwizard_azure.py +0 -0
  56. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/cloudwizard_common.py +0 -0
  57. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/cloudwizard_gcp.py +0 -0
  58. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/compact_json.py +0 -0
  59. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/config_types.py +0 -0
  60. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/csv_data.py +0 -0
  61. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/follow_utils.py +0 -0
  62. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/interactive.py +0 -0
  63. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/items.py +0 -0
  64. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/load_config.py +0 -0
  65. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/load_resources.py +0 -0
  66. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/misc_utils.py +0 -0
  67. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/property_names.py +0 -0
  68. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/provision_utils.py +0 -0
  69. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/rich_console_input_fixed.py +0 -0
  70. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/start_hold_common.py +0 -0
  71. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/submit_utils.py +0 -0
  72. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/type_check.py +0 -0
  73. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/upload_utils.py +0 -0
  74. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/validate_properties.py +0 -0
  75. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/variables.py +0 -0
  76. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/wrapper.py +0 -0
  77. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/utils/ydid_utils.py +0 -0
  78. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_cli/version.py +0 -0
  79. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_python_examples.egg-info/SOURCES.txt +0 -0
  80. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_python_examples.egg-info/dependency_links.txt +0 -0
  81. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_python_examples.egg-info/entry_points.txt +0 -0
  82. {yellowdog_python_examples-8.5.2 → yellowdog_python_examples-8.5.4}/yellowdog_python_examples.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yellowdog-python-examples
3
- Version: 8.5.2
3
+ Version: 8.5.4
4
4
  Summary: Python CLI commands using the YellowDog Python SDK
5
5
  Author-email: YellowDog Limited <support@yellowdog.co>
6
6
  License-Expression: Apache-2.0
@@ -22,7 +22,7 @@ Requires-Dist: rclone-api
22
22
  Requires-Dist: rich==13.9.4
23
23
  Requires-Dist: tabulate>=0.9.0
24
24
  Requires-Dist: tomli>=2.4.0
25
- Requires-Dist: yellowdog-sdk>=13.2.0
25
+ Requires-Dist: yellowdog-sdk>=13.3.0
26
26
  Provides-Extra: jsonnet
27
27
  Requires-Dist: jsonnet; extra == "jsonnet"
28
28
  Provides-Extra: cloudwizard
@@ -1279,7 +1279,7 @@ JSON:
1279
1279
  ],
1280
1280
  ```
1281
1281
 
1282
- The specified local file will be uploaded to the rclone target specified by the `source` property. The local file can be specified using an absolute or relative pathname; the base directory can be optionally adjusted using the `--content-path <directory>` option supplied to `yd-submit`.
1282
+ The specified local file will be uploaded to the rclone target specified by the `source` property. The local file can be specified using an absolute or relative pathname, and the base files directory can be adjusted using the `--content-path <directory>`/`-F` option supplied to `yd-submit`.
1283
1283
 
1284
1284
  If `yd-submit` fails for any reason, the uploaded objects will be deleted automatically.
1285
1285
 
@@ -6,4 +6,4 @@ rclone-api
6
6
  rich == 13.9.4
7
7
  tabulate >= 0.9.0
8
8
  tomli >= 2.4.0
9
- yellowdog-sdk >= 13.2.0
9
+ yellowdog-sdk >= 13.3.0
@@ -0,0 +1 @@
1
+ __version__ = "8.5.4"
@@ -177,11 +177,7 @@ def show_details(ydid: str, initial_indent: int = 0, with_final_comma: bool = Fa
177
177
 
178
178
  elif ydid_type == YDIDType.TASK:
179
179
  print_info(f"Showing details of Task ID '{ydid}'")
180
- try:
181
- print_yd_object(CLIENT.work_client.get_task_by_id(ydid))
182
- except Exception as e:
183
- if "404" in str(e):
184
- print_error(f"Task ID '{ydid}' not found")
180
+ print_yd_object(CLIENT.work_client.get_task_by_id(ydid))
185
181
 
186
182
  elif ydid_type == YDIDType.IMAGE_FAMILY:
187
183
  print_info(f"Showing details of Image Family ID '{ydid}'")
@@ -276,9 +272,13 @@ def show_details(ydid: str, initial_indent: int = 0, with_final_comma: bool = Fa
276
272
 
277
273
  else:
278
274
  print_error(f"Unknown (or unsupported) YellowDog ID type for '{ydid}'")
275
+ return
279
276
 
280
277
  except Exception as e:
281
- print_error(f"Unable to show details for '{ydid}': {e}")
278
+ if "404" in str(e):
279
+ print_error(f"{ydid_type.value} ID '{ydid}' not found")
280
+ else:
281
+ print_error(f"Unable to show details for '{ydid}': {e}")
282
282
 
283
283
 
284
284
  def _report_variables(variable_names: list[str]):
@@ -243,9 +243,7 @@ def find_compute_source_template_id_by_name(
243
243
  """
244
244
  template_id = _find_id_by_name(name, client, get_compute_source_templates)
245
245
  if template_id is not None:
246
- print_info(
247
- f"Replaced Compute Source Template name '{name}' with ID {template_id}"
248
- )
246
+ print_info(f"Compute Source Template name '{name}' -> ID {template_id}")
249
247
  return template_id
250
248
 
251
249
 
@@ -420,7 +418,7 @@ def find_image_name_or_id(
420
418
  """
421
419
  if report_substitutions and return_val != original_image_name_or_id:
422
420
  msg = f"{return_val}" if is_ydid else f"'{return_val}'"
423
- print_info(f"Replaced Images ID '{original_image_name_or_id}' with {msg}")
421
+ print_info(f"Images ID '{original_image_name_or_id}' -> {msg}")
424
422
  return return_val
425
423
 
426
424
  split_name = image_name_or_id.split("/")
@@ -77,13 +77,17 @@ from yellowdog_cli.utils.settings import (
77
77
  NAMESPACE_OBJECT_STORE_PREFIX_SEPARATOR,
78
78
  PROP_ACCESS_DELEGATES,
79
79
  PROP_ADMIN_GROUP,
80
+ PROP_BULK_INSERT_SINGLE_REQUEST_MAX,
80
81
  PROP_CREATED_BY_ID,
81
82
  PROP_CREATED_BY_USER_ID,
82
83
  PROP_CREATED_TIME,
84
+ PROP_DEFAULT_ASSIGN_PUBLIC_IP,
83
85
  PROP_DELETABLE,
84
86
  PROP_ID,
85
87
  PROP_INSTANCE_PRICING,
88
+ PROP_PROVIDER,
86
89
  PROP_REMAINING_HOURS,
90
+ PROP_SOURCE,
87
91
  PROP_SUPPORTING_RESOURCE_CREATED,
88
92
  PROP_TRAITS,
89
93
  WARNING_STYLE,
@@ -1162,9 +1166,11 @@ def print_yd_object(
1162
1166
  PROP_ID,
1163
1167
  PROP_ACCESS_DELEGATES,
1164
1168
  PROP_ADMIN_GROUP,
1169
+ PROP_BULK_INSERT_SINGLE_REQUEST_MAX,
1165
1170
  PROP_CREATED_BY_ID,
1166
1171
  PROP_CREATED_BY_USER_ID,
1167
1172
  PROP_CREATED_TIME,
1173
+ PROP_DEFAULT_ASSIGN_PUBLIC_IP,
1168
1174
  PROP_DELETABLE,
1169
1175
  PROP_INSTANCE_PRICING,
1170
1176
  PROP_REMAINING_HOURS,
@@ -1181,6 +1187,12 @@ def print_yd_object(
1181
1187
 
1182
1188
  if ARGS_PARSER.strip_ids:
1183
1189
  object_data = remove_unused_props(object_data)
1190
+ # Remove the 'provider' property from CST/source data only
1191
+ # 'object_data' is always a dict in practice
1192
+ try:
1193
+ object_data.get(PROP_SOURCE).pop(PROP_PROVIDER)
1194
+ except (AttributeError, KeyError):
1195
+ pass
1184
1196
 
1185
1197
  if add_fields is not None:
1186
1198
  # Requires a copy of the 'object' datatype to be made,
@@ -6,7 +6,7 @@ import re
6
6
  from dataclasses import dataclass
7
7
  from functools import cache
8
8
  from os import chdir, getcwd
9
- from os.path import exists
9
+ from os.path import abspath, exists
10
10
  from pathlib import Path
11
11
 
12
12
  from rclone_api import Config, Rclone
@@ -38,10 +38,10 @@ class RcloneUploadedFiles:
38
38
 
39
39
  def __init__(
40
40
  self,
41
- files_directory: str = "",
41
+ files_directory: str = ".",
42
42
  ):
43
43
  self._rcloned_files: list[RcloneUploadedFile] = []
44
- self._files_directory = files_directory
44
+ self._files_directory = abspath(files_directory)
45
45
  self._working_directory = getcwd()
46
46
  self._reported_duplicates: list[RcloneUploadedFile] = []
47
47
 
@@ -64,12 +64,12 @@ class RcloneUploadedFiles:
64
64
  Rclone a DataClient inputs file if it hasn't already been uploaded to
65
65
  the same location.
66
66
  """
67
- if self._files_directory != "":
68
- chdir(self._files_directory)
67
+ chdir(self._files_directory)
69
68
 
70
69
  if not exists(local_file):
71
70
  raise Exception(
72
- f"File '{local_file}' does not exist and cannot be uploaded"
71
+ f"File '{Path(self._files_directory)/local_file}' does not exist "
72
+ "and cannot be uploaded"
73
73
  )
74
74
 
75
75
  rclone_uploaded_file = RcloneUploadedFile(local_file, rclone_source)
@@ -97,8 +97,7 @@ class RcloneUploadedFiles:
97
97
 
98
98
  self._rcloned_files.append(rclone_uploaded_file)
99
99
 
100
- if self._files_directory != "":
101
- chdir(self._working_directory)
100
+ chdir(self._working_directory)
102
101
 
103
102
  def _upload_rclone_file_core(self, rclone_upload_file: RcloneUploadedFile):
104
103
  """
@@ -147,11 +147,13 @@ RN_UPDATE_GROUP_REQUEST = "UpdateGroupRequest"
147
147
  PROP_ACCESS_DELEGATES = "accessDelegates"
148
148
  PROP_ADMIN_GROUP = "adminGroup"
149
149
  PROP_AUTOSCALING_MAX_NODES = "autoscalingMaxNodes"
150
+ PROP_BULK_INSERT_SINGLE_REQUEST_MAX = "BULK_INSERT_SINGLE_REQUEST_MAX"
150
151
  PROP_CREATED_BY_ID = "createdById"
151
152
  PROP_CREATED_BY_USER_ID = "createdByUserId"
152
153
  PROP_CREATED_TIME = "createdTime"
153
154
  PROP_CREDENTIAL = "credential"
154
155
  PROP_CST_ID = "sourceTemplateId"
156
+ PROP_DEFAULT_ASSIGN_PUBLIC_IP = "DEFAULT_ASSIGN_PUBLIC_IP"
155
157
  PROP_DEFAULT_RANK_ORDER = "defaultRankOrder"
156
158
  PROP_DELETABLE = "deletable"
157
159
  PROP_DESCRIPTION = "description"
@@ -171,6 +173,7 @@ PROP_NAMESPACE = "namespace"
171
173
  PROP_NAMESPACES = "namespaces"
172
174
  PROP_OPTIONS = "options"
173
175
  PROP_OS_TYPE = "osType"
176
+ PROP_PROVIDER = "provider"
174
177
  PROP_RANGE = "range"
175
178
  PROP_REMAINING_HOURS = "remainingHours"
176
179
  PROP_REQUIREMENT_CREATED_FROM = "requirementCreatedFromId"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yellowdog-python-examples
3
- Version: 8.5.2
3
+ Version: 8.5.4
4
4
  Summary: Python CLI commands using the YellowDog Python SDK
5
5
  Author-email: YellowDog Limited <support@yellowdog.co>
6
6
  License-Expression: Apache-2.0
@@ -22,7 +22,7 @@ Requires-Dist: rclone-api
22
22
  Requires-Dist: rich==13.9.4
23
23
  Requires-Dist: tabulate>=0.9.0
24
24
  Requires-Dist: tomli>=2.4.0
25
- Requires-Dist: yellowdog-sdk>=13.2.0
25
+ Requires-Dist: yellowdog-sdk>=13.3.0
26
26
  Provides-Extra: jsonnet
27
27
  Requires-Dist: jsonnet; extra == "jsonnet"
28
28
  Provides-Extra: cloudwizard
@@ -6,7 +6,7 @@ rclone-api
6
6
  rich==13.9.4
7
7
  tabulate>=0.9.0
8
8
  tomli>=2.4.0
9
- yellowdog-sdk>=13.2.0
9
+ yellowdog-sdk>=13.3.0
10
10
 
11
11
  [cloudwizard]
12
12
  boto3
@@ -1 +0,0 @@
1
- __version__ = "8.5.2"