yellowdog-python-examples 8.1.7__py3-none-any.whl → 8.2.0__py3-none-any.whl

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.
yellowdog_cli/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "8.1.7"
1
+ __version__ = "8.2.0"
yellowdog_cli/abort.py CHANGED
@@ -37,9 +37,9 @@ def main():
37
37
  return
38
38
 
39
39
  print_log(
40
- "Finding active Work Requirements in"
41
- f"namespace '{CONFIG_COMMON.namespace}' with "
42
- f"'{CONFIG_COMMON.name_tag}' in tag"
40
+ "Finding active Work Requirements in "
41
+ f"namespace '{CONFIG_COMMON.namespace}' with tags "
42
+ f"including '{CONFIG_COMMON.name_tag}'"
43
43
  )
44
44
 
45
45
  # Abort Tasks is always interactive
yellowdog_cli/cancel.py CHANGED
@@ -32,8 +32,8 @@ def main():
32
32
 
33
33
  print_log(
34
34
  "Cancelling Work Requirements in namespace "
35
- f"'{CONFIG_COMMON.namespace}' with "
36
- f"'{CONFIG_COMMON.name_tag}' in tag"
35
+ f"'{CONFIG_COMMON.namespace}' with tags "
36
+ f"including '{CONFIG_COMMON.name_tag}'"
37
37
  )
38
38
 
39
39
  selected_work_requirement_summaries: List[WorkRequirementSummary] = (
yellowdog_cli/create.py CHANGED
@@ -7,7 +7,7 @@ A script to create or update YellowDog resources.
7
7
  from copy import deepcopy
8
8
  from dataclasses import dataclass
9
9
  from datetime import datetime
10
- from typing import Dict, List, Optional, Set
10
+ from typing import Dict, List, Optional, Set, Tuple
11
11
 
12
12
  import yellowdog_client.model as model
13
13
  from dateparser import parse as date_parse
@@ -278,7 +278,7 @@ def create_compute_source_template(resource: Dict):
278
278
  compute_source = CLIENT.compute_client.add_compute_source_template(
279
279
  compute_source_template
280
280
  )
281
- print_log(f"Created Compute Source Template '{name}'" f" ({compute_source.id})")
281
+ print_log(f"Created Compute Source Template '{name}' ({compute_source.id})")
282
282
  else:
283
283
  if not confirmed(f"Update existing Compute Source Template '{name}'?"):
284
284
  return
@@ -405,9 +405,7 @@ def create_compute_requirement_template(resource: Dict):
405
405
  template = CLIENT.compute_client.update_compute_requirement_template(
406
406
  compute_template
407
407
  )
408
- print_log(
409
- f"Updated existing Compute Requirement Template '{name}'" f" ({template.id})"
410
- )
408
+ print_log(f"Updated existing Compute Requirement Template '{name}' ({template.id})")
411
409
  if ARGS_PARSER.quiet:
412
410
  print(template.id)
413
411
 
@@ -446,7 +444,7 @@ def create_keyring(resource: Dict, show_secrets: bool = False):
446
444
  print_error(f"Failed to create Keyring '{name}': {e}")
447
445
 
448
446
 
449
- def create_keyring_via_api(name: str, description: str) -> (Keyring, str):
447
+ def create_keyring_via_api(name: str, description: str) -> Tuple[Keyring, str]:
450
448
  """
451
449
  Temporary direct API call to create a Keyring and return the shown-once
452
450
  password. The password is not available via the SDK call.
yellowdog_cli/finish.py CHANGED
@@ -31,8 +31,8 @@ def main():
31
31
 
32
32
  print_log(
33
33
  "Finishing Work Requirements in namespace "
34
- f"'{CONFIG_COMMON.namespace}' with "
35
- f"'{CONFIG_COMMON.name_tag}' in tag"
34
+ f"'{CONFIG_COMMON.namespace}' with tags "
35
+ f"including '{CONFIG_COMMON.name_tag}'"
36
36
  )
37
37
 
38
38
  selected_work_requirement_summaries: List[WorkRequirementSummary] = (
@@ -59,7 +59,7 @@ def main():
59
59
  )
60
60
 
61
61
  if len(selected_work_requirement_summaries) > 0 and confirmed(
62
- f"Finish {len(selected_work_requirement_summaries)} " f"Work Requirement(s)?"
62
+ f"Finish {len(selected_work_requirement_summaries)} Work Requirement(s)?"
63
63
  ):
64
64
  for work_summary in selected_work_requirement_summaries:
65
65
  if work_summary.status != WorkRequirementStatus.FINISHING:
yellowdog_cli/list.py CHANGED
@@ -115,7 +115,7 @@ def main():
115
115
  ARGS_PARSER.details = True
116
116
 
117
117
  if ARGS_PARSER.details and ARGS_PARSER.strip_ids:
118
- print_log("Omitting YellowDog IDs (etc.) from detailed JSON objects")
118
+ print_log("Stripping YellowDog IDs (etc.) from detailed JSON objects")
119
119
 
120
120
  if ARGS_PARSER.output_file and ARGS_PARSER.details:
121
121
  if exists(ARGS_PARSER.output_file):
yellowdog_cli/show.py CHANGED
@@ -44,7 +44,7 @@ def main():
44
44
  generate_json_list = len(ARGS_PARSER.yellowdog_ids) > 1 and ARGS_PARSER.quiet
45
45
 
46
46
  if ARGS_PARSER.strip_ids:
47
- print_log("Omitting YellowDog IDs (etc.) from detailed JSON objects")
47
+ print_log("Stripping YellowDog IDs (etc.) from detailed JSON objects")
48
48
 
49
49
  if generate_json_list:
50
50
  print("[")
yellowdog_cli/shutdown.py CHANGED
@@ -34,7 +34,7 @@ def main():
34
34
 
35
35
  print_log(
36
36
  "Shutting down Worker Pools in "
37
- f"namespace '{CONFIG_COMMON.namespace}' and "
37
+ f"namespace '{CONFIG_COMMON.namespace}' with "
38
38
  f"names including '{CONFIG_COMMON.name_tag}'"
39
39
  )
40
40
 
yellowdog_cli/submit.py CHANGED
@@ -477,6 +477,7 @@ def create_task_group(
477
477
  if providers_data is None
478
478
  else [CloudProvider(provider) for provider in providers_data]
479
479
  )
480
+
480
481
  task_timeout_minutes: Optional[float] = check_float_or_int(
481
482
  task_group_data.get(TASK_TIMEOUT, config_wr.task_timeout)
482
483
  )
@@ -486,6 +487,24 @@ def create_task_group(
486
487
  else timedelta(minutes=task_timeout_minutes)
487
488
  )
488
489
 
490
+ exclusive_workers = check_bool(
491
+ task_group_data.get(
492
+ EXCLUSIVE_WORKERS,
493
+ wr_data.get(EXCLUSIVE_WORKERS, config_wr.exclusive_workers),
494
+ )
495
+ )
496
+ batch_allocation = check_bool(
497
+ task_group_data.get(
498
+ BATCH_ALLOCATION,
499
+ wr_data.get(BATCH_ALLOCATION, config_wr.batch_allocation),
500
+ )
501
+ )
502
+ if batch_allocation and not exclusive_workers:
503
+ raise Exception(
504
+ f"Property '{EXCLUSIVE_WORKERS}' must be set when "
505
+ f"'{BATCH_ALLOCATION}' is specified"
506
+ )
507
+
489
508
  run_specification = RunSpecification(
490
509
  taskTypes=task_types,
491
510
  maximumTaskRetries=check_int(
@@ -498,12 +517,8 @@ def create_task_group(
498
517
  WORKER_TAGS, wr_data.get(WORKER_TAGS, config_wr.worker_tags)
499
518
  )
500
519
  ),
501
- exclusiveWorkers=check_bool(
502
- task_group_data.get(
503
- EXCLUSIVE_WORKERS,
504
- wr_data.get(EXCLUSIVE_WORKERS, config_wr.exclusive_workers),
505
- )
506
- ),
520
+ exclusiveWorkers=exclusive_workers,
521
+ batchAllocation=batch_allocation,
507
522
  instanceTypes=check_list(
508
523
  task_group_data.get(
509
524
  INSTANCE_TYPES, wr_data.get(INSTANCE_TYPES, config_wr.instance_types)
@@ -40,7 +40,7 @@ def main():
40
40
 
41
41
  print_log(
42
42
  "Terminating Compute Requirements in "
43
- f"namespace '{CONFIG_COMMON.namespace}' and tag "
43
+ f"namespace '{CONFIG_COMMON.namespace}' with tags "
44
44
  f"including '{CONFIG_COMMON.name_tag}'"
45
45
  )
46
46
 
@@ -23,6 +23,7 @@ class ConfigWorkRequirement:
23
23
  add_yd_env_vars: bool = False
24
24
  always_upload: bool = True
25
25
  args: List[str] = field(default_factory=list)
26
+ batch_allocation: Optional[bool] = None
26
27
  completed_task_ttl: Optional[float] = None # In minutes
27
28
  csv_files: Optional[List[str]] = None
28
29
  docker_env: Optional[Dict] = None
@@ -54,7 +54,7 @@ from yellowdog_client.model import (
54
54
 
55
55
  from yellowdog_cli.utils.args import ARGS_PARSER
56
56
  from yellowdog_cli.utils.interactive import confirmed, select
57
- from yellowdog_cli.utils.printing import print_log, print_warning
57
+ from yellowdog_cli.utils.printing import print_log
58
58
  from yellowdog_cli.utils.settings import NAMESPACE_PREFIX_SEPARATOR
59
59
  from yellowdog_cli.utils.ydid_utils import YDIDType, get_ydid_type
60
60
 
@@ -309,6 +309,7 @@ def load_config_work_requirement() -> ConfigWorkRequirement:
309
309
  add_yd_env_vars=wr_section.get(ADD_YD_ENV_VARS, False),
310
310
  always_upload=wr_section.get(ALWAYS_UPLOAD, True),
311
311
  args=wr_section.get(ARGS, []),
312
+ batch_allocation=wr_section.get(BATCH_ALLOCATION, None),
312
313
  upload_taskoutput=wr_section.get(UPLOAD_TASKOUTPUT, False),
313
314
  completed_task_ttl=wr_section.get(COMPLETED_TASK_TTL, None),
314
315
  csv_files=csv_files,
@@ -5,6 +5,7 @@ Property names.
5
5
  ADD_YD_ENV_VARS = "addYDEnvironmentVariables"
6
6
  ALWAYS_UPLOAD = "alwaysUpload" # Bool
7
7
  ARGS = "arguments" # List
8
+ BATCH_ALLOCATION = "batchAllocation" # Bool
8
9
  CERTIFICATES = "certificates"
9
10
  COMMON_SECTION = "common" # No value
10
11
  COMPLETED_TASK_TTL = "completedTaskTtl" # Float
@@ -37,7 +38,7 @@ IMAGES_ID = "imagesId" # String
37
38
  IMPORT_COMMON = "importCommon" # String
38
39
  INPUTS_OPTIONAL = "inputsOptional" # List of Strings
39
40
  INPUTS_REQUIRED = "inputs" # List of Strings
40
- INSTANCE_TAGS = "instanceTags" # List of Strings
41
+ INSTANCE_TAGS = "instanceTags" # Dictionary
41
42
  INSTANCE_TYPES = "instanceTypes" # List of Strings
42
43
  KEY = "key" # String
43
44
  LOCAL_PATH = "localPath" # String
@@ -119,6 +120,7 @@ ALL_KEYS = [
119
120
  ADD_YD_ENV_VARS,
120
121
  ALWAYS_UPLOAD,
121
122
  ARGS,
123
+ BATCH_ALLOCATION,
122
124
  CERTIFICATES,
123
125
  COMMON_SECTION,
124
126
  COMPLETED_TASK_TTL,
@@ -11,7 +11,6 @@ from yellowdog_cli.utils.config_types import ConfigWorkerPool
11
11
  from yellowdog_cli.utils.entity_utils import (
12
12
  find_compute_requirement_template_id_by_name,
13
13
  find_image_name_or_id,
14
- split_namespace_and_name,
15
14
  )
16
15
  from yellowdog_cli.utils.load_config import CONFIG_FILE_DIR
17
16
  from yellowdog_cli.utils.printing import print_log
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yellowdog-python-examples
3
- Version: 8.1.7
3
+ Version: 8.2.0
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
@@ -26,7 +26,7 @@ Requires-Dist: requests
26
26
  Requires-Dist: rich==13.9.4
27
27
  Requires-Dist: tabulate>=0.9.0
28
28
  Requires-Dist: toml
29
- Requires-Dist: yellowdog-sdk>=11.6.0
29
+ Requires-Dist: yellowdog-sdk>=11.7.0
30
30
  Provides-Extra: jsonnet
31
31
  Requires-Dist: jsonnet; extra == "jsonnet"
32
32
  Provides-Extra: cloudwizard
@@ -1,28 +1,28 @@
1
- yellowdog_cli/__init__.py,sha256=DSjpcTXEMbKTSEhH-ChqB5reU3Hdp38wfe3HkEnrtRQ,22
2
- yellowdog_cli/abort.py,sha256=3mzTL8DH5InpJry4wPhwi3WJjC8_vCmPpkyf6jLDrBM,4302
1
+ yellowdog_cli/__init__.py,sha256=Xb24P8T6pG5QQaEw-UTO0iybyDoxvRGJaUR_qFoVAJQ,22
2
+ yellowdog_cli/abort.py,sha256=S8tCr-Fcc8zM7luQ5_xunEeo-eqmkO4pmahDZEpxWF4,4311
3
3
  yellowdog_cli/admin.py,sha256=Iipc0_A-Rf997hSDjOOYTaPpB3dsuqekV8Slmm154GI,1010
4
4
  yellowdog_cli/boost.py,sha256=JOUkXpl7yvmVZCAS_iv8GJ6g2wF1siVjGGJ-EUDI0FI,1268
5
- yellowdog_cli/cancel.py,sha256=KWUOZbH4Nh6jcOKDXyHOHlgW-UdcW2BAdjfRHSJd2jk,6349
5
+ yellowdog_cli/cancel.py,sha256=Eu0FIH-VNNhW7WzvC0tcHgp7KxMVc35n5Rinu_YPeZc,6357
6
6
  yellowdog_cli/cloudwizard.py,sha256=UC1CDNPAsUMh_0C9ScLF4wGmvJ2Rbryravj67LHdFnI,2647
7
7
  yellowdog_cli/compare.py,sha256=yihgygtxedvRXz0mQV9hmvvMeKaNYIMfgBlTHetaa_s,24311
8
- yellowdog_cli/create.py,sha256=Jrkf6IeIMnNpFdtiU19e60oMqIPVHvvnkWjoTXGBbpw,51954
8
+ yellowdog_cli/create.py,sha256=QD9Su3GXEQTOsfNt0BswEWpKcD65kpJZnwcUZMf_6-c,51944
9
9
  yellowdog_cli/delete.py,sha256=7YWGY8vI9ec3QP2y7VSEFFyAsY3IWcsZndDDXhlUNTY,3023
10
10
  yellowdog_cli/download.py,sha256=zYlfr7jCoJGzoayjhpoy3Ku9unmXnLu5XORRuUIuDlo,5479
11
- yellowdog_cli/finish.py,sha256=tPKophQty2aDUrnQ-A6zSrYk3W-ZRS7uQM3bAavGWXI,5227
11
+ yellowdog_cli/finish.py,sha256=Edcz9__13ppE2KUffuLoLTjo4Cj9FKLhj-ttxYiEKvs,5231
12
12
  yellowdog_cli/follow.py,sha256=1CUVKNZYjEge6AY0lqtc-i6MAp63p509T3CVnldXzdQ,345
13
13
  yellowdog_cli/format_json.py,sha256=NrgE0jAUK46Kd4yWxuVbjKXQMzWewP3I8us8QkZZx1s,1502
14
14
  yellowdog_cli/hold.py,sha256=wqSsI8UhFZX4pE-pTefxvnVCb0uCY1P_kJjm_YMedsM,306
15
15
  yellowdog_cli/instantiate.py,sha256=TDwvUVwqWLY4m0updxbWPTgLX2J0SOmT-EqZRDHgOgI,11996
16
16
  yellowdog_cli/jsonnet2json.py,sha256=kv-AZSR-xwIbXnUdL3gYGjYdSiHq7cAvlEGPz4StdTE,765
17
- yellowdog_cli/list.py,sha256=WxaKGQ5Upou8wkTeRsgAGPGH5U1yLuWq-DM1ozsuvJc,33344
17
+ yellowdog_cli/list.py,sha256=MNiIJkTygRMtNvfcscys-wWg8_18_PO672z4HnwQprM,33345
18
18
  yellowdog_cli/provision.py,sha256=-rbFJYzd3Kfq6zpFhbM_KM0VUSkJAa3mvY2YODTNc5Q,19667
19
19
  yellowdog_cli/remove.py,sha256=yPZSVXY0shzcb_FN8MvW1friuixVzuVGmwqZAnFLDno,20904
20
20
  yellowdog_cli/resize.py,sha256=5oMqZmT1KXjnqEClCVzQbCDyZaEu-oc06mypy0TlTBo,4353
21
- yellowdog_cli/show.py,sha256=rOi6ROkG_o-c65XB84JvQgDHxV-h3zvTX9H09fIV2BE,11014
22
- yellowdog_cli/shutdown.py,sha256=Coc4qljvpUzG1r3ZuOLSLzTglzXZVbWbh3GzUH7tpeU,5605
21
+ yellowdog_cli/show.py,sha256=tXKl5QgO2o1AgcGXXpxTA1MvmLzm1df1UnwcFBAYrNo,11015
22
+ yellowdog_cli/shutdown.py,sha256=JlgdJWv4hfVf_eTQU5z_tlSLFXNw4Pb31rA2NjxBijM,5606
23
23
  yellowdog_cli/start.py,sha256=9PHUAbS6vSq9RbttKkymOBzltIlWssQvk4zHJ8R-bWw,314
24
- yellowdog_cli/submit.py,sha256=Q0qUul2WqswvuxCGkpsDEAIh0Ju-iYJWaVU76S6aV5g,61680
25
- yellowdog_cli/terminate.py,sha256=G-4yeeF6eN_VHT9wkfMeyRmu0HYm2kZ_BxiseIBAwQ0,4685
24
+ yellowdog_cli/submit.py,sha256=nsP3ooUvri70yieB91I3_YwDxJ8MdAdpDmepZVtiAXA,62126
25
+ yellowdog_cli/terminate.py,sha256=GCHAvK3iQBoKoea6UVT63f7stejSEhJGRGUcLRW8VGw,4687
26
26
  yellowdog_cli/upload.py,sha256=tCqspQ5xNqUFsAIqBxzvyVQ5Uhk5uZFTf1xM3JFSgBs,5389
27
27
  yellowdog_cli/version.py,sha256=IADl53F8zo2pe1FrgZqo3hKNQXmfz7GnynIbXZ7ryQo,1208
28
28
  yellowdog_cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -34,18 +34,18 @@ yellowdog_cli/utils/cloudwizard_azure.py,sha256=aWtMeBNnIIotLpFllKtDTBxwSFL3Io09
34
34
  yellowdog_cli/utils/cloudwizard_common.py,sha256=3cXOVlHkyg80ZSbZN14_6P2pMCml6AcRc62Omvc4CAg,13989
35
35
  yellowdog_cli/utils/cloudwizard_gcp.py,sha256=zb4WdNrkMgbWWgko3zOb8uTyeQ6BuWsdeVtVEBCdQxQ,12278
36
36
  yellowdog_cli/utils/compact_json.py,sha256=l-tOoOaiS7Th8ravH66F_xam0dPX2CXLRq-gEBIcNl8,3757
37
- yellowdog_cli/utils/config_types.py,sha256=Oe2YIz9Vgms3C2CVuit5qVFWpiqdll2XFm7YmL27XpA,3919
37
+ yellowdog_cli/utils/config_types.py,sha256=RYgL_Ms8BYlEwh6Vb7Awr9wBfXSgbl2yC2iDYFovchQ,3963
38
38
  yellowdog_cli/utils/csv_data.py,sha256=vyLhb6ZRzQXzSjK9VWzoP6AP43SuHoWxbD5kEAzUwvM,14409
39
- yellowdog_cli/utils/entity_utils.py,sha256=hozm5RiI8Pg-XygCQ5TwjOBpQy3uc0YO0GybFAedVIc,33022
39
+ yellowdog_cli/utils/entity_utils.py,sha256=CAzKhYDB3QNzvMNQqWsCMgIJum4xySIuMu4fTe3jZPk,33007
40
40
  yellowdog_cli/utils/follow_utils.py,sha256=Tiq6n86v1cEMBACVoz6IFj_GLW0Fp0qKB2EZINX8wKE,4320
41
41
  yellowdog_cli/utils/interactive.py,sha256=VQZKZ9GtA-bSsWGJgEoOQ0WrOeXbeALpkRhHENCJ8q0,5778
42
42
  yellowdog_cli/utils/items.py,sha256=AhSyhgi-p6EZpwozFIxwIxbjxRwKgR2_wt6QdZtORj8,1333
43
- yellowdog_cli/utils/load_config.py,sha256=aOuq09E-RLRGgk-i8P-LJoLCwGtrmaeAwXVLv3uB01Y,19231
43
+ yellowdog_cli/utils/load_config.py,sha256=vFe9tegO2IVUm90_Yg2mHx02S5sGn22j1J76FgP6Xa0,19300
44
44
  yellowdog_cli/utils/load_resources.py,sha256=tJlXuDjNKLu5yB7defWxRf4Rl_5zE4tHALlZT8VM_q0,4560
45
45
  yellowdog_cli/utils/misc_utils.py,sha256=pZIIS1s9LfeI24ef_cXJsth3nDdIJvbVX7VToTM0LzQ,8565
46
46
  yellowdog_cli/utils/printing.py,sha256=gGgvshfcBcQHI50yMSDrCCJpzkLAecumzst4Cx8gMMg,46403
47
- yellowdog_cli/utils/property_names.py,sha256=bfLlAOKY2hlmcjgd9w2PMg3U3m9h8xj0_PN4aC7G39g,6963
48
- yellowdog_cli/utils/provision_utils.py,sha256=tog_BWcaBPLHnT97LkZ3f13UC4LoX3lUTVM_UvVUaFE,3703
47
+ yellowdog_cli/utils/property_names.py,sha256=eM550eiMD6-o5RjjHovU5y1Ki8RCkacaKN-Az6msXSk,7025
48
+ yellowdog_cli/utils/provision_utils.py,sha256=oLiOWvb-V38asFFEFNpF_T-vyz2c-ez47yrZ8skzemk,3673
49
49
  yellowdog_cli/utils/rich_console_input_fixed.py,sha256=-ij5gI11Y2P-jRNH5JCx4RlagxoLay_m20N4qj1DAvA,1417
50
50
  yellowdog_cli/utils/settings.py,sha256=D21yQ80nMrYG75WOZKLy7p1ZPlF_rqW_eDylATiZMX0,5807
51
51
  yellowdog_cli/utils/start_hold_common.py,sha256=h8fnxbj9jYkuqhJF_QFREg0h4vHixvSFLHCjlzzkRU4,5283
@@ -56,9 +56,9 @@ yellowdog_cli/utils/validate_properties.py,sha256=TsroKrf4jcAg_uQLRb9DpoSjRZ49XB
56
56
  yellowdog_cli/utils/variables.py,sha256=AHaolW682lkqm1P9MqWZnwvvK-Gd8hgV0HgzX76A1Ck,20542
57
57
  yellowdog_cli/utils/wrapper.py,sha256=TtvHmPKqKRk9meQw3LcsZcpkYNyuPSGcS0tC3fbQ4U4,3846
58
58
  yellowdog_cli/utils/ydid_utils.py,sha256=Gs98Pidkpd6v-cpL28t3z8mOW9JMB7ZY2MkGBX8EhMo,2360
59
- yellowdog_python_examples-8.1.7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
60
- yellowdog_python_examples-8.1.7.dist-info/METADATA,sha256=5W5dmjQmQeHcAMN0ISUtdkZAez8yiFqxHS_8zyJ40Qw,3927
61
- yellowdog_python_examples-8.1.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
- yellowdog_python_examples-8.1.7.dist-info/entry_points.txt,sha256=KABYVOB3kO7kVqnUplNNoz4l36KUUVY05ynsZ9jSVL8,1016
63
- yellowdog_python_examples-8.1.7.dist-info/top_level.txt,sha256=RfffFF4rsBrBbPB1qRkJsRpUn_5icIZSdCqMDLO3hgA,14
64
- yellowdog_python_examples-8.1.7.dist-info/RECORD,,
59
+ yellowdog_python_examples-8.2.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
60
+ yellowdog_python_examples-8.2.0.dist-info/METADATA,sha256=wHbZAMaPm1-uvj6HCtfMBBpZlGWPx19JCRqtTQS5Hy0,3927
61
+ yellowdog_python_examples-8.2.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
62
+ yellowdog_python_examples-8.2.0.dist-info/entry_points.txt,sha256=KABYVOB3kO7kVqnUplNNoz4l36KUUVY05ynsZ9jSVL8,1016
63
+ yellowdog_python_examples-8.2.0.dist-info/top_level.txt,sha256=RfffFF4rsBrBbPB1qRkJsRpUn_5icIZSdCqMDLO3hgA,14
64
+ yellowdog_python_examples-8.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5