digitalhub 0.13.0b3__py3-none-any.whl → 0.14.9__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.
Files changed (139) hide show
  1. digitalhub/__init__.py +3 -8
  2. digitalhub/context/api.py +43 -6
  3. digitalhub/context/builder.py +1 -5
  4. digitalhub/context/context.py +28 -13
  5. digitalhub/entities/_base/_base/entity.py +0 -15
  6. digitalhub/entities/_base/context/entity.py +1 -4
  7. digitalhub/entities/_base/entity/builder.py +5 -5
  8. digitalhub/entities/_base/entity/entity.py +0 -8
  9. digitalhub/entities/_base/executable/entity.py +195 -87
  10. digitalhub/entities/_base/material/entity.py +11 -23
  11. digitalhub/entities/_base/material/utils.py +28 -4
  12. digitalhub/entities/_base/runtime_entity/builder.py +53 -18
  13. digitalhub/entities/_base/unversioned/entity.py +1 -1
  14. digitalhub/entities/_base/versioned/entity.py +1 -1
  15. digitalhub/entities/_commons/enums.py +1 -31
  16. digitalhub/entities/_commons/metrics.py +64 -30
  17. digitalhub/entities/_commons/utils.py +119 -30
  18. digitalhub/entities/_constructors/_resources.py +151 -0
  19. digitalhub/entities/{_base/entity/_constructors → _constructors}/name.py +18 -0
  20. digitalhub/entities/_processors/base/crud.py +381 -0
  21. digitalhub/entities/_processors/base/import_export.py +118 -0
  22. digitalhub/entities/_processors/base/processor.py +299 -0
  23. digitalhub/entities/_processors/base/special_ops.py +104 -0
  24. digitalhub/entities/_processors/context/crud.py +652 -0
  25. digitalhub/entities/_processors/context/import_export.py +242 -0
  26. digitalhub/entities/_processors/context/material.py +123 -0
  27. digitalhub/entities/_processors/context/processor.py +400 -0
  28. digitalhub/entities/_processors/context/special_ops.py +476 -0
  29. digitalhub/entities/_processors/processors.py +12 -0
  30. digitalhub/entities/_processors/utils.py +38 -102
  31. digitalhub/entities/artifact/crud.py +58 -22
  32. digitalhub/entities/artifact/utils.py +28 -13
  33. digitalhub/entities/builders.py +2 -0
  34. digitalhub/entities/dataitem/crud.py +63 -20
  35. digitalhub/entities/dataitem/table/entity.py +27 -22
  36. digitalhub/entities/dataitem/utils.py +82 -32
  37. digitalhub/entities/function/_base/entity.py +3 -6
  38. digitalhub/entities/function/crud.py +55 -24
  39. digitalhub/entities/model/_base/entity.py +62 -20
  40. digitalhub/entities/model/crud.py +59 -23
  41. digitalhub/entities/model/mlflow/utils.py +29 -20
  42. digitalhub/entities/model/utils.py +28 -13
  43. digitalhub/entities/project/_base/builder.py +0 -6
  44. digitalhub/entities/project/_base/entity.py +337 -164
  45. digitalhub/entities/project/_base/spec.py +4 -4
  46. digitalhub/entities/project/crud.py +28 -71
  47. digitalhub/entities/project/utils.py +7 -3
  48. digitalhub/entities/run/_base/builder.py +0 -4
  49. digitalhub/entities/run/_base/entity.py +70 -63
  50. digitalhub/entities/run/crud.py +79 -26
  51. digitalhub/entities/secret/_base/entity.py +1 -5
  52. digitalhub/entities/secret/crud.py +31 -28
  53. digitalhub/entities/task/_base/builder.py +0 -4
  54. digitalhub/entities/task/_base/entity.py +5 -5
  55. digitalhub/entities/task/_base/models.py +13 -16
  56. digitalhub/entities/task/crud.py +61 -29
  57. digitalhub/entities/trigger/_base/entity.py +1 -5
  58. digitalhub/entities/trigger/crud.py +89 -30
  59. digitalhub/entities/workflow/_base/entity.py +3 -8
  60. digitalhub/entities/workflow/crud.py +55 -24
  61. digitalhub/factory/entity.py +283 -0
  62. digitalhub/factory/enums.py +18 -0
  63. digitalhub/factory/registry.py +197 -0
  64. digitalhub/factory/runtime.py +44 -0
  65. digitalhub/factory/utils.py +3 -54
  66. digitalhub/runtimes/_base.py +2 -2
  67. digitalhub/stores/client/{dhcore/api_builder.py → api_builder.py} +3 -3
  68. digitalhub/stores/client/builder.py +19 -31
  69. digitalhub/stores/client/client.py +322 -0
  70. digitalhub/stores/client/configurator.py +408 -0
  71. digitalhub/stores/client/enums.py +50 -0
  72. digitalhub/stores/client/{dhcore/error_parser.py → error_parser.py} +0 -4
  73. digitalhub/stores/client/header_manager.py +61 -0
  74. digitalhub/stores/client/http_handler.py +152 -0
  75. digitalhub/stores/client/{_base/key_builder.py → key_builder.py} +14 -14
  76. digitalhub/stores/client/params_builder.py +330 -0
  77. digitalhub/stores/client/response_processor.py +102 -0
  78. digitalhub/stores/client/utils.py +35 -0
  79. digitalhub/stores/{credentials → configurator}/api.py +5 -9
  80. digitalhub/stores/configurator/configurator.py +123 -0
  81. digitalhub/stores/{credentials → configurator}/enums.py +27 -10
  82. digitalhub/stores/configurator/handler.py +213 -0
  83. digitalhub/stores/{credentials → configurator}/ini_module.py +31 -22
  84. digitalhub/stores/data/_base/store.py +0 -20
  85. digitalhub/stores/data/api.py +5 -7
  86. digitalhub/stores/data/builder.py +53 -27
  87. digitalhub/stores/data/local/store.py +0 -103
  88. digitalhub/stores/data/remote/store.py +0 -4
  89. digitalhub/stores/data/s3/configurator.py +39 -77
  90. digitalhub/stores/data/s3/store.py +57 -37
  91. digitalhub/stores/data/sql/configurator.py +66 -46
  92. digitalhub/stores/data/sql/store.py +171 -104
  93. digitalhub/stores/readers/data/factory.py +0 -8
  94. digitalhub/stores/readers/data/pandas/reader.py +9 -19
  95. digitalhub/utils/file_utils.py +0 -17
  96. digitalhub/utils/generic_utils.py +1 -14
  97. digitalhub/utils/git_utils.py +0 -8
  98. digitalhub/utils/io_utils.py +0 -12
  99. digitalhub/utils/store_utils.py +44 -0
  100. {digitalhub-0.13.0b3.dist-info → digitalhub-0.14.9.dist-info}/METADATA +5 -4
  101. {digitalhub-0.13.0b3.dist-info → digitalhub-0.14.9.dist-info}/RECORD +112 -113
  102. {digitalhub-0.13.0b3.dist-info → digitalhub-0.14.9.dist-info}/WHEEL +1 -1
  103. digitalhub/entities/_commons/types.py +0 -9
  104. digitalhub/entities/_processors/base.py +0 -531
  105. digitalhub/entities/_processors/context.py +0 -1299
  106. digitalhub/entities/task/_base/utils.py +0 -22
  107. digitalhub/factory/factory.py +0 -381
  108. digitalhub/stores/client/_base/api_builder.py +0 -34
  109. digitalhub/stores/client/_base/client.py +0 -243
  110. digitalhub/stores/client/_base/params_builder.py +0 -34
  111. digitalhub/stores/client/api.py +0 -36
  112. digitalhub/stores/client/dhcore/client.py +0 -613
  113. digitalhub/stores/client/dhcore/configurator.py +0 -675
  114. digitalhub/stores/client/dhcore/enums.py +0 -34
  115. digitalhub/stores/client/dhcore/key_builder.py +0 -62
  116. digitalhub/stores/client/dhcore/models.py +0 -40
  117. digitalhub/stores/client/dhcore/params_builder.py +0 -278
  118. digitalhub/stores/client/dhcore/utils.py +0 -94
  119. digitalhub/stores/client/local/api_builder.py +0 -116
  120. digitalhub/stores/client/local/client.py +0 -573
  121. digitalhub/stores/client/local/enums.py +0 -15
  122. digitalhub/stores/client/local/key_builder.py +0 -62
  123. digitalhub/stores/client/local/params_builder.py +0 -120
  124. digitalhub/stores/credentials/__init__.py +0 -3
  125. digitalhub/stores/credentials/configurator.py +0 -210
  126. digitalhub/stores/credentials/handler.py +0 -176
  127. digitalhub/stores/credentials/store.py +0 -81
  128. digitalhub/stores/data/enums.py +0 -15
  129. digitalhub/stores/data/s3/utils.py +0 -78
  130. /digitalhub/entities/{_base/entity/_constructors → _constructors}/__init__.py +0 -0
  131. /digitalhub/entities/{_base/entity/_constructors → _constructors}/metadata.py +0 -0
  132. /digitalhub/entities/{_base/entity/_constructors → _constructors}/spec.py +0 -0
  133. /digitalhub/entities/{_base/entity/_constructors → _constructors}/status.py +0 -0
  134. /digitalhub/entities/{_base/entity/_constructors → _constructors}/uuid.py +0 -0
  135. /digitalhub/{stores/client/_base → entities/_processors/base}/__init__.py +0 -0
  136. /digitalhub/{stores/client/dhcore → entities/_processors/context}/__init__.py +0 -0
  137. /digitalhub/stores/{client/local → configurator}/__init__.py +0 -0
  138. {digitalhub-0.13.0b3.dist-info → digitalhub-0.14.9.dist-info}/licenses/AUTHORS +0 -0
  139. {digitalhub-0.13.0b3.dist-info → digitalhub-0.14.9.dist-info}/licenses/LICENSE +0 -0
@@ -11,8 +11,8 @@ from typing import Any
11
11
  from digitalhub.context.api import build_context
12
12
  from digitalhub.entities._base.entity.entity import Entity
13
13
  from digitalhub.entities._commons.enums import EntityTypes
14
- from digitalhub.entities._processors.base import base_processor
15
- from digitalhub.entities._processors.context import context_processor
14
+ from digitalhub.entities._constructors.uuid import build_uuid
15
+ from digitalhub.entities._processors.processors import base_processor, context_processor
16
16
  from digitalhub.entities.artifact.crud import (
17
17
  delete_artifact,
18
18
  get_artifact,
@@ -71,10 +71,9 @@ from digitalhub.entities.workflow.crud import (
71
71
  new_workflow,
72
72
  update_workflow,
73
73
  )
74
- from digitalhub.factory.factory import factory
75
- from digitalhub.stores.client.api import get_client
74
+ from digitalhub.factory.entity import entity_factory
75
+ from digitalhub.stores.client.builder import get_client
76
76
  from digitalhub.utils.exceptions import BackendError, EntityAlreadyExistsError, EntityError
77
- from digitalhub.utils.generic_utils import get_timestamp
78
77
  from digitalhub.utils.io_utils import write_yaml
79
78
  from digitalhub.utils.uri_utils import has_local_scheme
80
79
 
@@ -107,7 +106,6 @@ class Project(Entity):
107
106
  spec: ProjectSpec,
108
107
  status: ProjectStatus,
109
108
  user: str | None = None,
110
- local: bool = False,
111
109
  ) -> None:
112
110
  super().__init__(kind, metadata, spec, status, user)
113
111
  self.spec: ProjectSpec
@@ -115,12 +113,12 @@ class Project(Entity):
115
113
 
116
114
  self.id = name
117
115
  self.name = name
118
- self.key = base_processor.build_project_key(self.name, local=local)
116
+ self.key = base_processor.build_project_key(self.name)
119
117
 
120
118
  self._obj_attr.extend(["id", "name"])
121
119
 
122
120
  # Set client
123
- self._client = get_client(local)
121
+ self._client = get_client()
124
122
 
125
123
  # Set context
126
124
  build_context(self)
@@ -144,13 +142,10 @@ class Project(Entity):
144
142
  Entity saved.
145
143
  """
146
144
  if update:
147
- if self._client.is_local():
148
- self.metadata.updated = get_timestamp()
149
145
  new_obj = base_processor.update_project_entity(
150
146
  entity_type=self.ENTITY_TYPE,
151
147
  entity_name=self.name,
152
148
  entity_dict=self.to_dict(),
153
- local=self._client.is_local(),
154
149
  )
155
150
  else:
156
151
  new_obj = base_processor.create_project_entity(_entity=self)
@@ -169,7 +164,6 @@ class Project(Entity):
169
164
  new_obj = base_processor.read_project_entity(
170
165
  entity_type=self.ENTITY_TYPE,
171
166
  entity_name=self.name,
172
- local=self._client.is_local(),
173
167
  )
174
168
  self._update_attributes(new_obj)
175
169
  return self
@@ -241,7 +235,7 @@ class Project(Entity):
241
235
  Exported filepath.
242
236
  """
243
237
  obj = self._refresh_to_dict()
244
- pth = Path(self.spec.context) / f"{self.ENTITY_TYPE}s-{self.name}.yaml"
238
+ pth = Path(self.spec.source) / f"{self.ENTITY_TYPE}s-{self.name}.yaml"
245
239
  obj = self._export_not_embedded(obj)
246
240
  write_yaml(pth, obj)
247
241
  return str(pth)
@@ -290,7 +284,7 @@ class Project(Entity):
290
284
  # Return updated object
291
285
  return obj
292
286
 
293
- def _import_entities(self, obj: dict) -> None:
287
+ def _import_entities(self, obj: dict, reset_id: bool = False) -> None:
294
288
  """
295
289
  Import project entities.
296
290
 
@@ -298,10 +292,6 @@ class Project(Entity):
298
292
  ----------
299
293
  obj : dict
300
294
  Project object in dictionary format.
301
-
302
- Returns
303
- -------
304
- None
305
295
  """
306
296
  entity_types = self._get_entity_types()
307
297
 
@@ -319,11 +309,19 @@ class Project(Entity):
319
309
  try:
320
310
  # Artifacts, Dataitems and Models
321
311
  if entity_type in entity_types[:3]:
322
- context_processor.import_context_entity(ref)
312
+ context_processor.import_context_entity(
313
+ file=ref,
314
+ reset_id=reset_id,
315
+ context=self.name,
316
+ )
323
317
 
324
318
  # Functions and Workflows
325
319
  elif entity_type in entity_types[3:]:
326
- context_processor.import_executable_entity(ref)
320
+ context_processor.import_executable_entity(
321
+ file=ref,
322
+ reset_id=reset_id,
323
+ context=self.name,
324
+ )
327
325
 
328
326
  except FileNotFoundError:
329
327
  msg = f"File not found: {ref}."
@@ -335,8 +333,13 @@ class Project(Entity):
335
333
  if entity["metadata"].get("embedded") is None:
336
334
  entity["metadata"]["embedded"] = True
337
335
 
336
+ if reset_id:
337
+ new_id = build_uuid()
338
+ entity["id"] = new_id
339
+ entity["metadata"]["version"] = new_id
340
+
338
341
  try:
339
- factory.build_entity_from_dict(entity).save()
342
+ entity_factory.build_entity_from_dict(entity).save()
340
343
  except EntityAlreadyExistsError:
341
344
  pass
342
345
 
@@ -348,10 +351,6 @@ class Project(Entity):
348
351
  ----------
349
352
  obj : dict
350
353
  Project object in dictionary format.
351
-
352
- Returns
353
- -------
354
- None
355
354
  """
356
355
  entity_types = self._get_entity_types()
357
356
 
@@ -527,7 +526,6 @@ class Project(Entity):
527
526
  self,
528
527
  identifier: str,
529
528
  entity_id: str | None = None,
530
- **kwargs,
531
529
  ) -> Artifact:
532
530
  """
533
531
  Get object from backend.
@@ -538,8 +536,6 @@ class Project(Entity):
538
536
  Entity key (store://...) or entity name.
539
537
  entity_id : str
540
538
  Entity ID.
541
- **kwargs : dict
542
- Parameters to pass to the API call.
543
539
 
544
540
  Returns
545
541
  -------
@@ -559,7 +555,6 @@ class Project(Entity):
559
555
  identifier=identifier,
560
556
  project=self.name,
561
557
  entity_id=entity_id,
562
- **kwargs,
563
558
  )
564
559
  self.refresh()
565
560
  return obj
@@ -567,7 +562,6 @@ class Project(Entity):
567
562
  def get_artifact_versions(
568
563
  self,
569
564
  identifier: str,
570
- **kwargs,
571
565
  ) -> list[Artifact]:
572
566
  """
573
567
  Get object versions from backend.
@@ -576,8 +570,6 @@ class Project(Entity):
576
570
  ----------
577
571
  identifier : str
578
572
  Entity key (store://...) or entity name.
579
- **kwargs : dict
580
- Parameters to pass to the API call.
581
573
 
582
574
  Returns
583
575
  -------
@@ -592,16 +584,40 @@ class Project(Entity):
592
584
  Using entity name:
593
585
  >>> obj = project.get_artifact_versions("my-artifact-name")
594
586
  """
595
- return get_artifact_versions(identifier, project=self.name, **kwargs)
587
+ return get_artifact_versions(identifier, project=self.name)
596
588
 
597
- def list_artifacts(self, **kwargs) -> list[Artifact]:
589
+ def list_artifacts(
590
+ self,
591
+ q: str | None = None,
592
+ name: str | None = None,
593
+ kind: str | None = None,
594
+ user: str | None = None,
595
+ state: str | None = None,
596
+ created: str | None = None,
597
+ updated: str | None = None,
598
+ versions: str | None = None,
599
+ ) -> list[Artifact]:
598
600
  """
599
601
  List all latest version objects from backend.
600
602
 
601
603
  Parameters
602
604
  ----------
603
- **kwargs : dict
604
- Parameters to pass to the API call.
605
+ q : str
606
+ Query string to filter objects.
607
+ name : str
608
+ Object name.
609
+ kind : str
610
+ Kind of the object.
611
+ user : str
612
+ User that created the object.
613
+ state : str
614
+ Object state.
615
+ created : str
616
+ Creation date filter.
617
+ updated : str
618
+ Update date filter.
619
+ version : str
620
+ Object version, default is latest.
605
621
 
606
622
  Returns
607
623
  -------
@@ -612,12 +628,23 @@ class Project(Entity):
612
628
  --------
613
629
  >>> objs = project.list_artifacts()
614
630
  """
615
- return list_artifacts(self.name, **kwargs)
631
+ return list_artifacts(
632
+ self.name,
633
+ q=q,
634
+ name=name,
635
+ kind=kind,
636
+ user=user,
637
+ state=state,
638
+ created=created,
639
+ updated=updated,
640
+ versions=versions,
641
+ )
616
642
 
617
643
  def import_artifact(
618
644
  self,
619
- file: str,
620
- **kwargs,
645
+ file: str | None = None,
646
+ key: str | None = None,
647
+ reset_id: bool = True,
621
648
  ) -> Artifact:
622
649
  """
623
650
  Import object from a YAML file and create a new object into the backend.
@@ -626,8 +653,10 @@ class Project(Entity):
626
653
  ----------
627
654
  file : str
628
655
  Path to YAML file.
629
- **kwargs : dict
630
- Parameters to pass to the API call.
656
+ key : str
657
+ Entity key (store://...).
658
+ reset_id : bool
659
+ Flag to determine if the ID of context entities should be reset.
631
660
 
632
661
  Returns
633
662
  -------
@@ -638,7 +667,7 @@ class Project(Entity):
638
667
  --------
639
668
  >>> obj = project.import_artifact("my-artifact.yaml")
640
669
  """
641
- return import_artifact(file, **kwargs)
670
+ return import_artifact(file, key, reset_id, self.name)
642
671
 
643
672
  def update_artifact(self, entity: Artifact) -> Artifact:
644
673
  """
@@ -667,7 +696,7 @@ class Project(Entity):
667
696
  identifier: str,
668
697
  entity_id: str | None = None,
669
698
  delete_all_versions: bool = False,
670
- **kwargs,
699
+ cascade: bool = False,
671
700
  ) -> None:
672
701
  """
673
702
  Delete object from backend.
@@ -680,8 +709,8 @@ class Project(Entity):
680
709
  Entity ID.
681
710
  delete_all_versions : bool
682
711
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
683
- **kwargs : dict
684
- Parameters to pass to the API call.
712
+ cascade : bool
713
+ Cascade delete related entities.
685
714
 
686
715
  Returns
687
716
  -------
@@ -702,7 +731,7 @@ class Project(Entity):
702
731
  project=self.name,
703
732
  entity_id=entity_id,
704
733
  delete_all_versions=delete_all_versions,
705
- **kwargs,
734
+ cascade=cascade,
706
735
  )
707
736
  self.refresh()
708
737
 
@@ -830,7 +859,6 @@ class Project(Entity):
830
859
  self,
831
860
  identifier: str,
832
861
  entity_id: str | None = None,
833
- **kwargs,
834
862
  ) -> Dataitem:
835
863
  """
836
864
  Get object from backend.
@@ -841,8 +869,6 @@ class Project(Entity):
841
869
  Entity key (store://...) or entity name.
842
870
  entity_id : str
843
871
  Entity ID.
844
- **kwargs : dict
845
- Parameters to pass to the API call.
846
872
 
847
873
  Returns
848
874
  -------
@@ -862,7 +888,6 @@ class Project(Entity):
862
888
  identifier=identifier,
863
889
  project=self.name,
864
890
  entity_id=entity_id,
865
- **kwargs,
866
891
  )
867
892
  self.refresh()
868
893
  return obj
@@ -870,7 +895,6 @@ class Project(Entity):
870
895
  def get_dataitem_versions(
871
896
  self,
872
897
  identifier: str,
873
- **kwargs,
874
898
  ) -> list[Dataitem]:
875
899
  """
876
900
  Get object versions from backend.
@@ -879,8 +903,6 @@ class Project(Entity):
879
903
  ----------
880
904
  identifier : str
881
905
  Entity key (store://...) or entity name.
882
- **kwargs : dict
883
- Parameters to pass to the API call.
884
906
 
885
907
  Returns
886
908
  -------
@@ -895,16 +917,40 @@ class Project(Entity):
895
917
  Using entity name:
896
918
  >>> obj = project.get_dataitem_versions("my-dataitem-name")
897
919
  """
898
- return get_dataitem_versions(identifier, project=self.name, **kwargs)
920
+ return get_dataitem_versions(identifier, project=self.name)
899
921
 
900
- def list_dataitems(self, **kwargs) -> list[Dataitem]:
922
+ def list_dataitems(
923
+ self,
924
+ q: str | None = None,
925
+ name: str | None = None,
926
+ kind: str | None = None,
927
+ user: str | None = None,
928
+ state: str | None = None,
929
+ created: str | None = None,
930
+ updated: str | None = None,
931
+ versions: str | None = None,
932
+ ) -> list[Dataitem]:
901
933
  """
902
934
  List all latest version objects from backend.
903
935
 
904
936
  Parameters
905
937
  ----------
906
- **kwargs : dict
907
- Parameters to pass to the API call.
938
+ q : str
939
+ Query string to filter objects.
940
+ name : str
941
+ Object name.
942
+ kind : str
943
+ Kind of the object.
944
+ user : str
945
+ User that created the object.
946
+ state : str
947
+ Object state.
948
+ created : str
949
+ Creation date filter.
950
+ updated : str
951
+ Update date filter.
952
+ version : str
953
+ Object version, default is latest.
908
954
 
909
955
  Returns
910
956
  -------
@@ -915,12 +961,23 @@ class Project(Entity):
915
961
  --------
916
962
  >>> objs = project.list_dataitems()
917
963
  """
918
- return list_dataitems(self.name, **kwargs)
964
+ return list_dataitems(
965
+ self.name,
966
+ q=q,
967
+ name=name,
968
+ kind=kind,
969
+ user=user,
970
+ state=state,
971
+ created=created,
972
+ updated=updated,
973
+ versions=versions,
974
+ )
919
975
 
920
976
  def import_dataitem(
921
977
  self,
922
- file: str,
923
- **kwargs,
978
+ file: str | None = None,
979
+ key: str | None = None,
980
+ reset_id: bool = True,
924
981
  ) -> Dataitem:
925
982
  """
926
983
  Import object from a YAML file and create a new object into the backend.
@@ -929,8 +986,10 @@ class Project(Entity):
929
986
  ----------
930
987
  file : str
931
988
  Path to YAML file.
932
- **kwargs : dict
933
- Parameters to pass to the API call.
989
+ key : str
990
+ Entity key (store://...).
991
+ reset_id : bool
992
+ Flag to determine if the ID of context entities should be reset.
934
993
 
935
994
  Returns
936
995
  -------
@@ -941,7 +1000,7 @@ class Project(Entity):
941
1000
  --------
942
1001
  >>> obj = project.import_dataitem("my-dataitem.yaml")
943
1002
  """
944
- return import_dataitem(file, **kwargs)
1003
+ return import_dataitem(file, key, reset_id, self.name)
945
1004
 
946
1005
  def update_dataitem(self, entity: Dataitem) -> Dataitem:
947
1006
  """
@@ -970,7 +1029,7 @@ class Project(Entity):
970
1029
  identifier: str,
971
1030
  entity_id: str | None = None,
972
1031
  delete_all_versions: bool = False,
973
- **kwargs,
1032
+ cascade: bool = False,
974
1033
  ) -> None:
975
1034
  """
976
1035
  Delete object from backend.
@@ -983,8 +1042,8 @@ class Project(Entity):
983
1042
  Entity ID.
984
1043
  delete_all_versions : bool
985
1044
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
986
- **kwargs : dict
987
- Parameters to pass to the API call.
1045
+ cascade : bool
1046
+ Cascade delete related entities.
988
1047
 
989
1048
  Returns
990
1049
  -------
@@ -1006,7 +1065,7 @@ class Project(Entity):
1006
1065
  project=self.name,
1007
1066
  entity_id=entity_id,
1008
1067
  delete_all_versions=delete_all_versions,
1009
- **kwargs,
1068
+ cascade=cascade,
1010
1069
  )
1011
1070
  self.refresh()
1012
1071
 
@@ -1122,7 +1181,6 @@ class Project(Entity):
1122
1181
  self,
1123
1182
  identifier: str,
1124
1183
  entity_id: str | None = None,
1125
- **kwargs,
1126
1184
  ) -> Model:
1127
1185
  """
1128
1186
  Get object from backend.
@@ -1133,8 +1191,6 @@ class Project(Entity):
1133
1191
  Entity key (store://...) or entity name.
1134
1192
  entity_id : str
1135
1193
  Entity ID.
1136
- **kwargs : dict
1137
- Parameters to pass to the API call.
1138
1194
 
1139
1195
  Returns
1140
1196
  -------
@@ -1154,7 +1210,6 @@ class Project(Entity):
1154
1210
  identifier=identifier,
1155
1211
  project=self.name,
1156
1212
  entity_id=entity_id,
1157
- **kwargs,
1158
1213
  )
1159
1214
  self.refresh()
1160
1215
  return obj
@@ -1162,7 +1217,6 @@ class Project(Entity):
1162
1217
  def get_model_versions(
1163
1218
  self,
1164
1219
  identifier: str,
1165
- **kwargs,
1166
1220
  ) -> list[Model]:
1167
1221
  """
1168
1222
  Get object versions from backend.
@@ -1171,8 +1225,6 @@ class Project(Entity):
1171
1225
  ----------
1172
1226
  identifier : str
1173
1227
  Entity key (store://...) or entity name.
1174
- **kwargs : dict
1175
- Parameters to pass to the API call.
1176
1228
 
1177
1229
  Returns
1178
1230
  -------
@@ -1187,16 +1239,40 @@ class Project(Entity):
1187
1239
  Using entity name:
1188
1240
  >>> obj = project.get_model_versions("my-model-name")
1189
1241
  """
1190
- return get_model_versions(identifier, project=self.name, **kwargs)
1242
+ return get_model_versions(identifier, project=self.name)
1191
1243
 
1192
- def list_models(self, **kwargs) -> list[Model]:
1244
+ def list_models(
1245
+ self,
1246
+ q: str | None = None,
1247
+ name: str | None = None,
1248
+ kind: str | None = None,
1249
+ user: str | None = None,
1250
+ state: str | None = None,
1251
+ created: str | None = None,
1252
+ updated: str | None = None,
1253
+ versions: str | None = None,
1254
+ ) -> list[Model]:
1193
1255
  """
1194
1256
  List all latest version objects from backend.
1195
1257
 
1196
1258
  Parameters
1197
1259
  ----------
1198
- **kwargs : dict
1199
- Parameters to pass to the API call.
1260
+ q : str
1261
+ Query string to filter objects.
1262
+ name : str
1263
+ Object name.
1264
+ kind : str
1265
+ Kind of the object.
1266
+ user : str
1267
+ User that created the object.
1268
+ state : str
1269
+ Object state.
1270
+ created : str
1271
+ Creation date filter.
1272
+ updated : str
1273
+ Update date filter.
1274
+ version : str
1275
+ Object version, default is latest.
1200
1276
 
1201
1277
  Returns
1202
1278
  -------
@@ -1207,12 +1283,23 @@ class Project(Entity):
1207
1283
  --------
1208
1284
  >>> objs = project.list_models()
1209
1285
  """
1210
- return list_models(self.name, **kwargs)
1286
+ return list_models(
1287
+ self.name,
1288
+ q=q,
1289
+ name=name,
1290
+ kind=kind,
1291
+ user=user,
1292
+ state=state,
1293
+ created=created,
1294
+ updated=updated,
1295
+ versions=versions,
1296
+ )
1211
1297
 
1212
1298
  def import_model(
1213
1299
  self,
1214
- file: str,
1215
- **kwargs,
1300
+ file: str | None = None,
1301
+ key: str | None = None,
1302
+ reset_id: bool = True,
1216
1303
  ) -> Model:
1217
1304
  """
1218
1305
  Import object from a YAML file and create a new object into the backend.
@@ -1221,8 +1308,10 @@ class Project(Entity):
1221
1308
  ----------
1222
1309
  file : str
1223
1310
  Path to YAML file.
1224
- **kwargs : dict
1225
- Parameters to pass to the API call.
1311
+ key : str
1312
+ Entity key (store://...).
1313
+ reset_id : bool
1314
+ Flag to determine if the ID of context entities should be reset.
1226
1315
 
1227
1316
  Returns
1228
1317
  -------
@@ -1233,7 +1322,7 @@ class Project(Entity):
1233
1322
  --------
1234
1323
  >>> obj = project.import_model("my-model.yaml")
1235
1324
  """
1236
- return import_model(file, **kwargs)
1325
+ return import_model(file, key, reset_id, self.name)
1237
1326
 
1238
1327
  def update_model(self, entity: Model) -> Model:
1239
1328
  """
@@ -1262,7 +1351,7 @@ class Project(Entity):
1262
1351
  identifier: str,
1263
1352
  entity_id: str | None = None,
1264
1353
  delete_all_versions: bool = False,
1265
- **kwargs,
1354
+ cascade: bool = False,
1266
1355
  ) -> None:
1267
1356
  """
1268
1357
  Delete object from backend.
@@ -1275,8 +1364,8 @@ class Project(Entity):
1275
1364
  Entity ID.
1276
1365
  delete_all_versions : bool
1277
1366
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
1278
- **kwargs : dict
1279
- Parameters to pass to the API call.
1367
+ cascade : bool
1368
+ Cascade delete related entities.
1280
1369
 
1281
1370
  Returns
1282
1371
  -------
@@ -1298,7 +1387,7 @@ class Project(Entity):
1298
1387
  project=self.name,
1299
1388
  entity_id=entity_id,
1300
1389
  delete_all_versions=delete_all_versions,
1301
- **kwargs,
1390
+ cascade=cascade,
1302
1391
  )
1303
1392
  self.refresh()
1304
1393
 
@@ -1365,7 +1454,6 @@ class Project(Entity):
1365
1454
  self,
1366
1455
  identifier: str,
1367
1456
  entity_id: str | None = None,
1368
- **kwargs,
1369
1457
  ) -> Function:
1370
1458
  """
1371
1459
  Get object from backend.
@@ -1376,8 +1464,6 @@ class Project(Entity):
1376
1464
  Entity key (store://...) or entity name.
1377
1465
  entity_id : str
1378
1466
  Entity ID.
1379
- **kwargs : dict
1380
- Parameters to pass to the API call.
1381
1467
 
1382
1468
  Returns
1383
1469
  -------
@@ -1397,7 +1483,6 @@ class Project(Entity):
1397
1483
  identifier=identifier,
1398
1484
  project=self.name,
1399
1485
  entity_id=entity_id,
1400
- **kwargs,
1401
1486
  )
1402
1487
  self.refresh()
1403
1488
  return obj
@@ -1405,7 +1490,6 @@ class Project(Entity):
1405
1490
  def get_function_versions(
1406
1491
  self,
1407
1492
  identifier: str,
1408
- **kwargs,
1409
1493
  ) -> list[Function]:
1410
1494
  """
1411
1495
  Get object versions from backend.
@@ -1414,8 +1498,6 @@ class Project(Entity):
1414
1498
  ----------
1415
1499
  identifier : str
1416
1500
  Entity key (store://...) or entity name.
1417
- **kwargs : dict
1418
- Parameters to pass to the API call.
1419
1501
 
1420
1502
  Returns
1421
1503
  -------
@@ -1430,16 +1512,40 @@ class Project(Entity):
1430
1512
  Using entity name:
1431
1513
  >>> obj = project.get_function_versions("my-function-name")
1432
1514
  """
1433
- return get_function_versions(identifier, project=self.name, **kwargs)
1515
+ return get_function_versions(identifier, project=self.name)
1434
1516
 
1435
- def list_functions(self, **kwargs) -> list[Function]:
1517
+ def list_functions(
1518
+ self,
1519
+ q: str | None = None,
1520
+ name: str | None = None,
1521
+ kind: str | None = None,
1522
+ user: str | None = None,
1523
+ state: str | None = None,
1524
+ created: str | None = None,
1525
+ updated: str | None = None,
1526
+ versions: str | None = None,
1527
+ ) -> list[Function]:
1436
1528
  """
1437
1529
  List all latest version objects from backend.
1438
1530
 
1439
1531
  Parameters
1440
1532
  ----------
1441
- **kwargs : dict
1442
- Parameters to pass to the API call.
1533
+ q : str
1534
+ Query string to filter objects.
1535
+ name : str
1536
+ Object name.
1537
+ kind : str
1538
+ Kind of the object.
1539
+ user : str
1540
+ User that created the object.
1541
+ state : str
1542
+ Object state.
1543
+ created : str
1544
+ Creation date filter.
1545
+ updated : str
1546
+ Update date filter.
1547
+ version : str
1548
+ Object version, default is latest.
1443
1549
 
1444
1550
  Returns
1445
1551
  -------
@@ -1450,12 +1556,23 @@ class Project(Entity):
1450
1556
  --------
1451
1557
  >>> objs = project.list_functions()
1452
1558
  """
1453
- return list_functions(self.name, **kwargs)
1559
+ return list_functions(
1560
+ self.name,
1561
+ q=q,
1562
+ name=name,
1563
+ kind=kind,
1564
+ user=user,
1565
+ state=state,
1566
+ created=created,
1567
+ updated=updated,
1568
+ versions=versions,
1569
+ )
1454
1570
 
1455
1571
  def import_function(
1456
1572
  self,
1457
- file: str,
1458
- **kwargs,
1573
+ file: str | None = None,
1574
+ key: str | None = None,
1575
+ reset_id: bool = True,
1459
1576
  ) -> Function:
1460
1577
  """
1461
1578
  Import object from a YAML file and create a new object into the backend.
@@ -1464,8 +1581,10 @@ class Project(Entity):
1464
1581
  ----------
1465
1582
  file : str
1466
1583
  Path to YAML file.
1467
- **kwargs : dict
1468
- Parameters to pass to the API call.
1584
+ key : str
1585
+ Entity key (store://...).
1586
+ reset_id : bool
1587
+ Flag to determine if the ID of context entities should be reset.
1469
1588
 
1470
1589
  Returns
1471
1590
  -------
@@ -1476,7 +1595,7 @@ class Project(Entity):
1476
1595
  --------
1477
1596
  >>> obj = project.import_function("my-function.yaml")
1478
1597
  """
1479
- return import_function(file, **kwargs)
1598
+ return import_function(file, key, reset_id, self.name)
1480
1599
 
1481
1600
  def update_function(self, entity: Function) -> Function:
1482
1601
  """
@@ -1506,7 +1625,6 @@ class Project(Entity):
1506
1625
  entity_id: str | None = None,
1507
1626
  delete_all_versions: bool = False,
1508
1627
  cascade: bool = True,
1509
- **kwargs,
1510
1628
  ) -> None:
1511
1629
  """
1512
1630
  Delete object from backend.
@@ -1521,8 +1639,6 @@ class Project(Entity):
1521
1639
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
1522
1640
  cascade : bool
1523
1641
  Cascade delete.
1524
- **kwargs : dict
1525
- Parameters to pass to the API call.
1526
1642
 
1527
1643
  Returns
1528
1644
  -------
@@ -1544,7 +1660,6 @@ class Project(Entity):
1544
1660
  entity_id=entity_id,
1545
1661
  delete_all_versions=delete_all_versions,
1546
1662
  cascade=cascade,
1547
- **kwargs,
1548
1663
  )
1549
1664
  self.refresh()
1550
1665
 
@@ -1611,7 +1726,6 @@ class Project(Entity):
1611
1726
  self,
1612
1727
  identifier: str,
1613
1728
  entity_id: str | None = None,
1614
- **kwargs,
1615
1729
  ) -> Workflow:
1616
1730
  """
1617
1731
  Get object from backend.
@@ -1622,8 +1736,6 @@ class Project(Entity):
1622
1736
  Entity key (store://...) or entity name.
1623
1737
  entity_id : str
1624
1738
  Entity ID.
1625
- **kwargs : dict
1626
- Parameters to pass to the API call.
1627
1739
 
1628
1740
  Returns
1629
1741
  -------
@@ -1643,7 +1755,6 @@ class Project(Entity):
1643
1755
  identifier=identifier,
1644
1756
  project=self.name,
1645
1757
  entity_id=entity_id,
1646
- **kwargs,
1647
1758
  )
1648
1759
  self.refresh()
1649
1760
  return obj
@@ -1651,7 +1762,6 @@ class Project(Entity):
1651
1762
  def get_workflow_versions(
1652
1763
  self,
1653
1764
  identifier: str,
1654
- **kwargs,
1655
1765
  ) -> list[Workflow]:
1656
1766
  """
1657
1767
  Get object versions from backend.
@@ -1660,8 +1770,6 @@ class Project(Entity):
1660
1770
  ----------
1661
1771
  identifier : str
1662
1772
  Entity key (store://...) or entity name.
1663
- **kwargs : dict
1664
- Parameters to pass to the API call.
1665
1773
 
1666
1774
  Returns
1667
1775
  -------
@@ -1676,16 +1784,40 @@ class Project(Entity):
1676
1784
  Using entity name:
1677
1785
  >>> obj = project.get_workflow_versions("my-workflow-name")
1678
1786
  """
1679
- return get_workflow_versions(identifier, project=self.name, **kwargs)
1787
+ return get_workflow_versions(identifier, project=self.name)
1680
1788
 
1681
- def list_workflows(self, **kwargs) -> list[Workflow]:
1789
+ def list_workflows(
1790
+ self,
1791
+ q: str | None = None,
1792
+ name: str | None = None,
1793
+ kind: str | None = None,
1794
+ user: str | None = None,
1795
+ state: str | None = None,
1796
+ created: str | None = None,
1797
+ updated: str | None = None,
1798
+ versions: str | None = None,
1799
+ ) -> list[Workflow]:
1682
1800
  """
1683
1801
  List all latest version objects from backend.
1684
1802
 
1685
1803
  Parameters
1686
1804
  ----------
1687
- **kwargs : dict
1688
- Parameters to pass to the API call.
1805
+ q : str
1806
+ Query string to filter objects.
1807
+ name : str
1808
+ Object name.
1809
+ kind : str
1810
+ Kind of the object.
1811
+ user : str
1812
+ User that created the object.
1813
+ state : str
1814
+ Object state.
1815
+ created : str
1816
+ Creation date filter.
1817
+ updated : str
1818
+ Update date filter.
1819
+ version : str
1820
+ Object version, default is latest.
1689
1821
 
1690
1822
  Returns
1691
1823
  -------
@@ -1696,12 +1828,23 @@ class Project(Entity):
1696
1828
  --------
1697
1829
  >>> objs = project.list_workflows()
1698
1830
  """
1699
- return list_workflows(self.name, **kwargs)
1831
+ return list_workflows(
1832
+ self.name,
1833
+ q=q,
1834
+ name=name,
1835
+ kind=kind,
1836
+ user=user,
1837
+ state=state,
1838
+ created=created,
1839
+ updated=updated,
1840
+ versions=versions,
1841
+ )
1700
1842
 
1701
1843
  def import_workflow(
1702
1844
  self,
1703
- file: str,
1704
- **kwargs,
1845
+ file: str | None = None,
1846
+ key: str | None = None,
1847
+ reset_id: bool = True,
1705
1848
  ) -> Workflow:
1706
1849
  """
1707
1850
  Import object from a YAML file and create a new object into the backend.
@@ -1710,8 +1853,10 @@ class Project(Entity):
1710
1853
  ----------
1711
1854
  file : str
1712
1855
  Path to YAML file.
1713
- **kwargs : dict
1714
- Parameters to pass to the API call.
1856
+ key : str
1857
+ Entity key (store://...).
1858
+ reset_id : bool
1859
+ Flag to determine if the ID of context entities should be reset.
1715
1860
 
1716
1861
  Returns
1717
1862
  -------
@@ -1722,7 +1867,7 @@ class Project(Entity):
1722
1867
  --------
1723
1868
  >>> obj = project.import_workflow("my-workflow.yaml")
1724
1869
  """
1725
- return import_workflow(file, **kwargs)
1870
+ return import_workflow(file, key, reset_id, self.name)
1726
1871
 
1727
1872
  def update_workflow(self, entity: Workflow) -> Workflow:
1728
1873
  """
@@ -1752,7 +1897,6 @@ class Project(Entity):
1752
1897
  entity_id: str | None = None,
1753
1898
  delete_all_versions: bool = False,
1754
1899
  cascade: bool = True,
1755
- **kwargs,
1756
1900
  ) -> None:
1757
1901
  """
1758
1902
  Delete object from backend.
@@ -1767,8 +1911,6 @@ class Project(Entity):
1767
1911
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
1768
1912
  cascade : bool
1769
1913
  Cascade delete.
1770
- **kwargs : dict
1771
- Parameters to pass to the API call.
1772
1914
 
1773
1915
  Returns
1774
1916
  -------
@@ -1790,7 +1932,6 @@ class Project(Entity):
1790
1932
  entity_id=entity_id,
1791
1933
  delete_all_versions=delete_all_versions,
1792
1934
  cascade=cascade,
1793
- **kwargs,
1794
1935
  )
1795
1936
  self.refresh()
1796
1937
 
@@ -1855,7 +1996,6 @@ class Project(Entity):
1855
1996
  self,
1856
1997
  identifier: str,
1857
1998
  entity_id: str | None = None,
1858
- **kwargs,
1859
1999
  ) -> Secret:
1860
2000
  """
1861
2001
  Get object from backend.
@@ -1866,8 +2006,6 @@ class Project(Entity):
1866
2006
  Entity key (store://...) or entity name.
1867
2007
  entity_id : str
1868
2008
  Entity ID.
1869
- **kwargs : dict
1870
- Parameters to pass to the API call.
1871
2009
 
1872
2010
  Returns
1873
2011
  -------
@@ -1887,7 +2025,6 @@ class Project(Entity):
1887
2025
  identifier=identifier,
1888
2026
  project=self.name,
1889
2027
  entity_id=entity_id,
1890
- **kwargs,
1891
2028
  )
1892
2029
  self.refresh()
1893
2030
  return obj
@@ -1895,7 +2032,6 @@ class Project(Entity):
1895
2032
  def get_secret_versions(
1896
2033
  self,
1897
2034
  identifier: str,
1898
- **kwargs,
1899
2035
  ) -> list[Secret]:
1900
2036
  """
1901
2037
  Get object versions from backend.
@@ -1904,8 +2040,6 @@ class Project(Entity):
1904
2040
  ----------
1905
2041
  identifier : str
1906
2042
  Entity key (store://...) or entity name.
1907
- **kwargs : dict
1908
- Parameters to pass to the API call.
1909
2043
 
1910
2044
  Returns
1911
2045
  -------
@@ -1920,9 +2054,9 @@ class Project(Entity):
1920
2054
  Using entity name:
1921
2055
  >>> obj = project.get_secret_versions("my-secret-name")
1922
2056
  """
1923
- return get_secret_versions(identifier, project=self.name, **kwargs)
2057
+ return get_secret_versions(identifier, project=self.name)
1924
2058
 
1925
- def list_secrets(self, **kwargs) -> list[Secret]:
2059
+ def list_secrets(self) -> list[Secret]:
1926
2060
  """
1927
2061
  List all latest version objects from backend.
1928
2062
 
@@ -1940,12 +2074,13 @@ class Project(Entity):
1940
2074
  --------
1941
2075
  >>> objs = project.list_secrets()
1942
2076
  """
1943
- return list_secrets(self.name, **kwargs)
2077
+ return list_secrets(self.name)
1944
2078
 
1945
2079
  def import_secret(
1946
2080
  self,
1947
- file: str,
1948
- **kwargs,
2081
+ file: str | None = None,
2082
+ key: str | None = None,
2083
+ reset_id: bool = True,
1949
2084
  ) -> Secret:
1950
2085
  """
1951
2086
  Import object from a YAML file and create a new object into the backend.
@@ -1954,8 +2089,10 @@ class Project(Entity):
1954
2089
  ----------
1955
2090
  file : str
1956
2091
  Path to YAML file.
1957
- **kwargs : dict
1958
- Parameters to pass to the API call.
2092
+ key : str
2093
+ Entity key (store://...).
2094
+ reset_id : bool
2095
+ Flag to determine if the ID of context entities should be reset.
1959
2096
 
1960
2097
  Returns
1961
2098
  -------
@@ -1966,7 +2103,7 @@ class Project(Entity):
1966
2103
  --------
1967
2104
  >>> obj = project.import_secret("my-secret.yaml")
1968
2105
  """
1969
- return import_secret(file, **kwargs)
2106
+ return import_secret(file, key, reset_id, self.name)
1970
2107
 
1971
2108
  def update_secret(self, entity: Secret) -> Secret:
1972
2109
  """
@@ -1995,7 +2132,6 @@ class Project(Entity):
1995
2132
  identifier: str,
1996
2133
  entity_id: str | None = None,
1997
2134
  delete_all_versions: bool = False,
1998
- **kwargs,
1999
2135
  ) -> None:
2000
2136
  """
2001
2137
  Delete object from backend.
@@ -2008,8 +2144,6 @@ class Project(Entity):
2008
2144
  Entity ID.
2009
2145
  delete_all_versions : bool
2010
2146
  Delete all versions of the named entity. If True, use entity name instead of entity key as identifier.
2011
- **kwargs : dict
2012
- Parameters to pass to the API call.
2013
2147
 
2014
2148
  Returns
2015
2149
  -------
@@ -2030,7 +2164,6 @@ class Project(Entity):
2030
2164
  project=self.name,
2031
2165
  entity_id=entity_id,
2032
2166
  delete_all_versions=delete_all_versions,
2033
- **kwargs,
2034
2167
  )
2035
2168
  self.refresh()
2036
2169
 
@@ -2041,7 +2174,6 @@ class Project(Entity):
2041
2174
  def get_run(
2042
2175
  self,
2043
2176
  identifier: str,
2044
- **kwargs,
2045
2177
  ) -> Run:
2046
2178
  """
2047
2179
  Get object from backend.
@@ -2050,8 +2182,6 @@ class Project(Entity):
2050
2182
  ----------
2051
2183
  identifier : str
2052
2184
  Entity key (store://...) or entity ID.
2053
- **kwargs : dict
2054
- Parameters to pass to the API call.
2055
2185
 
2056
2186
  Returns
2057
2187
  -------
@@ -2069,19 +2199,51 @@ class Project(Entity):
2069
2199
  obj = get_run(
2070
2200
  identifier=identifier,
2071
2201
  project=self.name,
2072
- **kwargs,
2073
2202
  )
2074
2203
  self.refresh()
2075
2204
  return obj
2076
2205
 
2077
- def list_runs(self, **kwargs) -> list[Run]:
2206
+ def list_runs(
2207
+ self,
2208
+ q: str | None = None,
2209
+ name: str | None = None,
2210
+ kind: str | None = None,
2211
+ user: str | None = None,
2212
+ state: str | None = None,
2213
+ created: str | None = None,
2214
+ updated: str | None = None,
2215
+ function: str | None = None,
2216
+ workflow: str | None = None,
2217
+ task: str | None = None,
2218
+ action: str | None = None,
2219
+ ) -> list[Run]:
2078
2220
  """
2079
2221
  List all latest objects from backend.
2080
2222
 
2081
2223
  Parameters
2082
2224
  ----------
2083
- **kwargs : dict
2084
- Parameters to pass to the API call.
2225
+ q : str
2226
+ Query string to filter objects.
2227
+ name : str
2228
+ Object name.
2229
+ kind : str
2230
+ Kind of the object.
2231
+ user : str
2232
+ User that created the object.
2233
+ state : str
2234
+ Object state.
2235
+ created : str
2236
+ Creation date filter.
2237
+ updated : str
2238
+ Update date filter.
2239
+ function : str
2240
+ Function key filter.
2241
+ workflow : str
2242
+ Workflow key filter.
2243
+ task : str
2244
+ Task string filter.
2245
+ action : str
2246
+ Action name filter.
2085
2247
 
2086
2248
  Returns
2087
2249
  -------
@@ -2092,12 +2254,25 @@ class Project(Entity):
2092
2254
  --------
2093
2255
  >>> objs = project.list_runs()
2094
2256
  """
2095
- return list_runs(self.name, **kwargs)
2257
+ return list_runs(
2258
+ self.name,
2259
+ q=q,
2260
+ name=name,
2261
+ kind=kind,
2262
+ user=user,
2263
+ state=state,
2264
+ created=created,
2265
+ updated=updated,
2266
+ function=function,
2267
+ workflow=workflow,
2268
+ task=task,
2269
+ action=action,
2270
+ )
2096
2271
 
2097
2272
  def delete_run(
2098
2273
  self,
2099
2274
  identifier: str,
2100
- **kwargs,
2275
+ entity_id: str,
2101
2276
  ) -> None:
2102
2277
  """
2103
2278
  Delete run from backend.
@@ -2105,9 +2280,9 @@ class Project(Entity):
2105
2280
  Parameters
2106
2281
  ----------
2107
2282
  identifier : str
2108
- Entity key (store://...) or entity ID.
2109
- **kwargs : dict
2110
- Parameters to pass to the API call.
2283
+ Entity key (store://...) or entity name.
2284
+ entity_id : str
2285
+ Entity ID.
2111
2286
 
2112
2287
  Returns
2113
2288
  -------
@@ -2122,7 +2297,7 @@ class Project(Entity):
2122
2297
  delete_run(
2123
2298
  identifier=identifier,
2124
2299
  project=self.name,
2125
- **kwargs,
2300
+ entity_id=entity_id,
2126
2301
  )
2127
2302
  self.refresh()
2128
2303
 
@@ -2177,7 +2352,6 @@ class Project(Entity):
2177
2352
  entity_name=self.name,
2178
2353
  user=user,
2179
2354
  unshare=False,
2180
- local=self._client.is_local(),
2181
2355
  )
2182
2356
 
2183
2357
  def unshare(self, user: str) -> None:
@@ -2197,5 +2371,4 @@ class Project(Entity):
2197
2371
  entity_name=self.name,
2198
2372
  user=user,
2199
2373
  unshare=True,
2200
- local=self._client.is_local(),
2201
2374
  )