dnastack-client-library 3.1.174__py3-none-any.whl → 3.1.176__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.
@@ -192,8 +192,9 @@ def init_workflows_commands(group: Group):
192
192
  ),
193
193
  ArgumentSpec(
194
194
  name='labels',
195
- arg_names=['--labels'],
196
- help='Comma-separated list of labels for the workflow (e.g., "tag1,tag2,tag3")',
195
+ arg_names=['--label'],
196
+ help='Label for the workflow. This flag can be repeated to specify multiple labels (e.g., --label tag1 --label tag2)',
197
+ multiple=True,
197
198
  ),
198
199
  NAMESPACE_ARG,
199
200
  CONTEXT_ARG,
@@ -209,7 +210,7 @@ def init_workflows_commands(group: Group):
209
210
  organization: Optional[str],
210
211
  entrypoint: str,
211
212
  workflow_file: List[FileOrValue],
212
- labels: Optional[str]):
213
+ labels: List[str]):
213
214
  """
214
215
  Create a new workflow
215
216
 
@@ -239,8 +240,8 @@ def init_workflows_commands(group: Group):
239
240
  entrypoint = loader.entrypoint
240
241
 
241
242
  if labels:
242
- # Parse and validate labels, but keep as string for WorkflowCreate
243
- parsed_labels = [label.strip() for label in labels.split(',') if label.strip()]
243
+ # Filter out empty labels and strip whitespace
244
+ parsed_labels = [label.strip() for label in labels if label.strip()]
244
245
  if parsed_labels:
245
246
  label_list = ','.join(parsed_labels)
246
247
  else:
@@ -334,8 +335,9 @@ def init_workflows_commands(group: Group):
334
335
  ),
335
336
  ArgumentSpec(
336
337
  name='labels',
337
- arg_names=['--labels'],
338
- help='A list of labels to apply. This value can be a comma separated list, a file or JSON literal',
338
+ arg_names=['--label'],
339
+ help='Label to apply to the workflow. This flag can be repeated to specify multiple labels (e.g., --label tag1 --label tag2)',
340
+ multiple=True,
339
341
  ),
340
342
  CONTEXT_ARG,
341
343
  SINGLE_ENDPOINT_ID_ARG,
@@ -348,7 +350,7 @@ def init_workflows_commands(group: Group):
348
350
  name: Optional[str],
349
351
  description: FileOrValue,
350
352
  authors: Optional[str],
351
- labels: Optional[str]):
353
+ labels: List[str]):
352
354
  """
353
355
  Update an existing workflow
354
356
 
@@ -202,14 +202,12 @@ def _get_replace_patch(path: str, value: str) -> Union[JsonPatch, None]:
202
202
  return None
203
203
 
204
204
 
205
- def _get_labels_patch(labels: Optional[str]) -> Union[JsonPatch, None]:
206
- if labels is None:
205
+ def _get_labels_patch(labels: Optional[List[str]]) -> Union[JsonPatch, None]:
206
+ if labels is None or len(labels) == 0:
207
207
  return None
208
- if labels.strip() == "":
209
- return JsonPatch(path="/labels", op="remove")
210
-
208
+
211
209
  # Clean and validate labels
212
- cleaned_labels = [label.strip() for label in labels.split(",") if label.strip()]
210
+ cleaned_labels = [label.strip() for label in labels if label and label.strip()]
213
211
  if not cleaned_labels:
214
212
  return JsonPatch(path="/labels", op="remove")
215
213
 
dnastack/constants.py CHANGED
@@ -1,5 +1,5 @@
1
1
  import os
2
2
 
3
- __version__ = "v3.1.174"
3
+ __version__ = "v3.1.176"
4
4
 
5
5
  LOCAL_STORAGE_DIRECTORY = os.path.join(os.path.expanduser("~"), '.dnastack')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dnastack-client-library
3
- Version: 3.1.174
3
+ Version: 3.1.176
4
4
  Summary: DNAstack's GA4GH library and CLI
5
5
  Author-email: DNAstack <devs@dnastack.com>
6
6
  License: Apache License, Version 2.0
@@ -1,6 +1,6 @@
1
1
  dnastack/__init__.py,sha256=mslf7se8vBSK_HkqWTGPdibeVhT4xyKXgzQBV7dEK1M,333
2
2
  dnastack/__main__.py,sha256=EKmtIs4TBseQJi-OT_U6LqRyKLiyrGTBuTQg9zE-G2I,4376
3
- dnastack/constants.py,sha256=vbKzJJ---CEwR9P2AZ8zLB38xcayn3Rx2YAgVujUQC8,114
3
+ dnastack/constants.py,sha256=0ctvdp7uEjEx-1RcQge1ARbYyqF9nN5FUtMjwD2KoYk,114
4
4
  dnastack/feature_flags.py,sha256=RK_V_Ovncoe6NeTheAA_frP-kYkZC1fDlTbbup2KYG4,1419
5
5
  dnastack/json_path.py,sha256=TyghhDf7nGQmnsUWBhenU_fKsE_Ez-HLVER6HgH5-hU,2700
6
6
  dnastack/omics_cli.py,sha256=ZppKZTHv_XjUUZyRIzSkx0Ug5ODAYrCOTsU0ezCOVrA,3694
@@ -88,8 +88,8 @@ dnastack/cli/commands/workbench/storage/commands.py,sha256=m_h2hUhTZ24YCreavRjIc
88
88
  dnastack/cli/commands/workbench/storage/update.py,sha256=man43AfkFA-9STQiSH4_SuIIgVx8GFH-RRt7ZZbc9ek,10525
89
89
  dnastack/cli/commands/workbench/storage/utils.py,sha256=uZPN6rx14y8Wymc2uDOiGj4imSJOWbDWMm1Fmta_pYE,3204
90
90
  dnastack/cli/commands/workbench/workflows/__init__.py,sha256=GLUXWR2UD5ZOlvfcUv2o2oz_k7mmPWU8650egt3rDfM,513
91
- dnastack/cli/commands/workbench/workflows/commands.py,sha256=EHNNx3uN2SpZobw6jc0a-EFC7C4NZpPP4AR7a0wOdv8,15028
92
- dnastack/cli/commands/workbench/workflows/utils.py,sha256=0k31Gud5E4Vgxkd-Di_7PrcxBwx4FMOg1DSAy2PsZhk,12517
91
+ dnastack/cli/commands/workbench/workflows/commands.py,sha256=opDNFNXHAdNL9pKy7LEdTlmm0HCASOgQ6seD9dd_eTE,15114
92
+ dnastack/cli/commands/workbench/workflows/utils.py,sha256=9cEmJUy5MgrQShygc-PrBvX2AIMbfKsucj1P_mA9Xx0,12463
93
93
  dnastack/cli/commands/workbench/workflows/versions/__init__.py,sha256=tiVcCClMNuxmBwJEJQrvm8_t-ytzjOHaILAfAGFCoQY,979
94
94
  dnastack/cli/commands/workbench/workflows/versions/commands.py,sha256=fS5YrQcTSbHUig8kDuD3daWatZtXnopUT4eyWuzQT5w,16150
95
95
  dnastack/cli/commands/workbench/workflows/versions/defaults.py,sha256=NoDsUpkrFFLzw9J6l3ebdViwt6OaNFrmGxjv3yBFMak,12265
@@ -196,9 +196,9 @@ dnastack/http/authenticators/oauth2_adapter/device_code_flow.py,sha256=dXI5CyUcs
196
196
  dnastack/http/authenticators/oauth2_adapter/factory.py,sha256=ZtNXOklWEim-26ooNoPp3ji_hRg1vf4fHHnY94F0wLI,1087
197
197
  dnastack/http/authenticators/oauth2_adapter/models.py,sha256=iY7asrSElyjubInrGV5rJKKZAxJWeq7csnaj-EqMq00,943
198
198
  dnastack/http/authenticators/oauth2_adapter/token_exchange.py,sha256=nSuAsSKWa_UNqHSbPMOEk4komaFITYAnE04Sk5WOrLc,6332
199
- dnastack_client_library-3.1.174.dist-info/licenses/LICENSE,sha256=uwybO-wUbQhxkosgjhJlxmYATMy-AzoULFO9FUedE34,11580
200
- dnastack_client_library-3.1.174.dist-info/METADATA,sha256=JU8SXKzCq8yUGGEQi9Jw-xFnmNbY1UTTRjpXfOKNoqU,1766
201
- dnastack_client_library-3.1.174.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
202
- dnastack_client_library-3.1.174.dist-info/entry_points.txt,sha256=Y6OeicsiyGn3-8D-SiV4NiKlJgXfkSqK88kFBR6R1rY,89
203
- dnastack_client_library-3.1.174.dist-info/top_level.txt,sha256=P2RgRyqJ7hfNy1wLVRoVLJYEppUVkCX3syGK9zBqkt8,9
204
- dnastack_client_library-3.1.174.dist-info/RECORD,,
199
+ dnastack_client_library-3.1.176.dist-info/licenses/LICENSE,sha256=uwybO-wUbQhxkosgjhJlxmYATMy-AzoULFO9FUedE34,11580
200
+ dnastack_client_library-3.1.176.dist-info/METADATA,sha256=UYRTL_7-fiulgFqCrGyLrlgPvxItaJXjlwwU1li1pxs,1766
201
+ dnastack_client_library-3.1.176.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
202
+ dnastack_client_library-3.1.176.dist-info/entry_points.txt,sha256=Y6OeicsiyGn3-8D-SiV4NiKlJgXfkSqK88kFBR6R1rY,89
203
+ dnastack_client_library-3.1.176.dist-info/top_level.txt,sha256=P2RgRyqJ7hfNy1wLVRoVLJYEppUVkCX3syGK9zBqkt8,9
204
+ dnastack_client_library-3.1.176.dist-info/RECORD,,