pinexq-client 0.10.3rc1__py3-none-any.whl → 0.10.4rc1__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.
@@ -19,6 +19,9 @@ class ApiEventsEndpointLink(LinkHco):
19
19
  class DeploymentRegistryEndpointLink(LinkHco):
20
20
  pass
21
21
 
22
+ class RemoteEndpointLink(LinkHco):
23
+ pass
24
+
22
25
  class InfoHco(Hco[InfoEntity]):
23
26
  api_version: str = Property()
24
27
  build_version: str = Property()
@@ -29,6 +32,7 @@ class InfoHco(Hco[InfoEntity]):
29
32
  self_link: InfoLink
30
33
  api_events_endpoint: ApiEventsEndpointLink
31
34
  deployment_registry_endpoint: DeploymentRegistryEndpointLink
35
+ remote_endpoint: RemoteEndpointLink
32
36
 
33
37
  @classmethod
34
38
  def from_entity(cls, entity: InfoEntity, client: httpx.Client) -> Self:
@@ -42,6 +46,7 @@ class InfoHco(Hco[InfoEntity]):
42
46
 
43
47
  instance.api_events_endpoint = ApiEventsEndpointLink.from_entity(instance._client, instance._entity, Relations.API_EVENTS_ENDPOINT)
44
48
  instance.deployment_registry_endpoint = DeploymentRegistryEndpointLink.from_entity_optional(instance._client, instance._entity, Relations.DEPLOYMENT_REGISTRY_ENDPOINT)
49
+ instance.remote_endpoint = RemoteEndpointLink.from_entity_optional(instance._client, instance._entity, Relations.REMOTE_ENDPOINT)
45
50
 
46
51
  instance._extract_current_user()
47
52
 
@@ -45,11 +45,13 @@ class InputDataSlotClearDataAction(ActionHco):
45
45
 
46
46
 
47
47
  class InputDataSlotHco(Hco[InputDataSlotEntity]):
48
- is_configured: bool | None = Property()
48
+
49
49
  title: str | None = Property()
50
50
  description: str | None = Property()
51
+ name: str | None = Property()
51
52
  media_type: str | None = Property()
52
53
  selected_workdatas: list[WorkDataHco]
54
+ is_configured: bool | None = Property()
53
55
 
54
56
  select_workdata_action: InputDataSlotSelectWorkDataAction | UnavailableAction
55
57
  select_workdata_collection_action: InputDataSlotSelectWorkDataCollectionAction | UnavailableAction
@@ -20,6 +20,7 @@ class OutputDataSlotLink(LinkHco):
20
20
  class OutputDataSlotHco(Hco[OutputDataSlotEntity]):
21
21
  title: str | None = Property()
22
22
  description: str | None = Property()
23
+ name: str | None = Property()
23
24
  media_type: str | None = Property()
24
25
  assigned_workdatas: list[WorkDataHco]
25
26
 
@@ -18,7 +18,7 @@ from pinexq_client.job_management.model import CopyPsFromUserToOrgActionParamete
18
18
  from pinexq_client.job_management.model.open_api_generated import (DataSpecificationHto,
19
19
  SetProcessingStepTagsParameters,
20
20
  EditProcessingStepParameters,
21
- ConfigureDeploymentParameters, DeploymentStates)
21
+ ConfigureDeploymentParameters, DeploymentStates, ProcessingStepDeploymentHto)
22
22
  from pinexq_client.job_management.model.sirenentities import ProcessingStepEntity
23
23
 
24
24
 
@@ -180,10 +180,12 @@ class ProcessingStepHco(Hco[ProcessingStepEntity]):
180
180
  return_schema: str | None = Property()
181
181
  error_schema: str | None = Property()
182
182
  hidden: bool | None = Property()
183
- deprecated_on: datetime | None = Property()
183
+
184
+ deprecated_at: datetime | None = Property()
184
185
  reason_for_deprecation: str | None = Property()
185
186
  is_deprecated: bool | None = Property()
186
187
  deployment_state: DeploymentStates = Property()
188
+ deployment: ProcessingStepDeploymentHto = Property()
187
189
 
188
190
  input_data_slot_specification: List[DataSpecificationHto] | None = Property()
189
191
  output_data_slot_specification: List[DataSpecificationHto] | None = Property()
@@ -38,3 +38,4 @@ class Relations(StrEnum):
38
38
 
39
39
  # Deployment
40
40
  DEPLOYMENT_REGISTRY_ENDPOINT = "Registry"
41
+ REMOTE_ENDPOINT = "Remote"
@@ -1,13 +1,21 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: openapi.json
3
- # timestamp: 2025-12-01T17:37:49+00:00
3
+ # timestamp: 2025-12-05T11:42:17+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from enum import Enum
7
+ from enum import StrEnum
8
8
  from typing import Any, List
9
9
 
10
- from pydantic import AwareDatetime, BaseModel, ConfigDict, Field, constr
10
+ from pydantic import AnyUrl, AwareDatetime, BaseModel, ConfigDict, Field, constr
11
+
12
+
13
+ class AdminHtoOpenApiProperties(BaseModel):
14
+ pass
15
+ model_config = ConfigDict(
16
+ extra='allow',
17
+ populate_by_name=True,
18
+ )
11
19
 
12
20
 
13
21
  class AdminJobQueryResultHtoOpenApiProperties(BaseModel):
@@ -48,7 +56,7 @@ class AssignCodeHashParameters(BaseModel):
48
56
  extra='allow',
49
57
  populate_by_name=True,
50
58
  )
51
- code_hash: constr(min_length=1) = Field(
59
+ code_hash: str = Field(
52
60
  ...,
53
61
  alias='CodeHash',
54
62
  description='The code hash of the processing to be deployed',
@@ -60,9 +68,9 @@ class CopyPsFromOrgToUserActionParameters(BaseModel):
60
68
  extra='allow',
61
69
  populate_by_name=True,
62
70
  )
63
- title: constr(min_length=1) = Field(..., alias='Title')
64
- function_name: constr(min_length=1) = Field(..., alias='FunctionName')
65
- version: constr(min_length=1) = Field(..., alias='Version')
71
+ title: str = Field(..., alias='Title')
72
+ function_name: str = Field(..., alias='FunctionName')
73
+ version: str = Field(..., alias='Version')
66
74
 
67
75
 
68
76
  class CopyPsFromUserToOrgActionParameters(BaseModel):
@@ -70,10 +78,10 @@ class CopyPsFromUserToOrgActionParameters(BaseModel):
70
78
  extra='allow',
71
79
  populate_by_name=True,
72
80
  )
73
- org_id: constr(min_length=1) = Field(..., alias='OrgId')
74
- title: constr(min_length=1) = Field(..., alias='Title')
75
- function_name: constr(min_length=1) = Field(..., alias='FunctionName')
76
- version: constr(min_length=1) = Field(..., alias='Version')
81
+ org_id: str = Field(..., alias='OrgId')
82
+ title: str = Field(..., alias='Title')
83
+ function_name: str = Field(..., alias='FunctionName')
84
+ version: str = Field(..., alias='Version')
77
85
 
78
86
 
79
87
  class CopyWorkDataFromUserToOrgActionParameters(BaseModel):
@@ -81,7 +89,7 @@ class CopyWorkDataFromUserToOrgActionParameters(BaseModel):
81
89
  extra='allow',
82
90
  populate_by_name=True,
83
91
  )
84
- org_id: constr(min_length=1) = Field(..., alias='OrgId')
92
+ org_id: str = Field(..., alias='OrgId')
85
93
 
86
94
 
87
95
  class CreateJobParameters(BaseModel):
@@ -89,7 +97,7 @@ class CreateJobParameters(BaseModel):
89
97
  extra='allow',
90
98
  populate_by_name=True,
91
99
  )
92
- name: constr(min_length=1) = Field(..., alias='Name')
100
+ name: str = Field(..., alias='Name')
93
101
 
94
102
 
95
103
  class CreateProcessingStepParameters(BaseModel):
@@ -97,9 +105,9 @@ class CreateProcessingStepParameters(BaseModel):
97
105
  extra='allow',
98
106
  populate_by_name=True,
99
107
  )
100
- title: constr(min_length=1) = Field(..., alias='Title')
101
- function_name: constr(min_length=1) = Field(..., alias='FunctionName')
102
- version: constr(min_length=1) = Field(..., alias='Version')
108
+ title: str = Field(..., alias='Title')
109
+ function_name: str = Field(..., alias='FunctionName')
110
+ version: str = Field(..., alias='Version')
103
111
 
104
112
 
105
113
  class CreateSubJobParameters(BaseModel):
@@ -107,8 +115,8 @@ class CreateSubJobParameters(BaseModel):
107
115
  extra='allow',
108
116
  populate_by_name=True,
109
117
  )
110
- name: constr(min_length=1) = Field(..., alias='Name')
111
- parent_job_url: str | None = Field(None, alias='ParentJobUrl')
118
+ name: str = Field(..., alias='Name')
119
+ parent_job_url: AnyUrl = Field(..., alias='ParentJobUrl')
112
120
 
113
121
 
114
122
  class DataSpecificationHto(BaseModel):
@@ -129,14 +137,14 @@ class DataSpecificationHto(BaseModel):
129
137
  max_slots: int | None = Field(None, alias='MaxSlots')
130
138
 
131
139
 
132
- class DeploymentResourcePresets(Enum):
140
+ class DeploymentResourcePresets(StrEnum):
133
141
  small = 'Small'
134
142
  medium = 'Medium'
135
143
  large = 'Large'
136
144
  x_large = 'XLarge'
137
145
 
138
146
 
139
- class DeploymentStates(Enum):
147
+ class DeploymentStates(StrEnum):
140
148
  undefined = 'Undefined'
141
149
  not_deployed = 'NotDeployed'
142
150
  platform = 'Platform'
@@ -145,6 +153,12 @@ class DeploymentStates(Enum):
145
153
  external_suspended = 'ExternalSuspended'
146
154
 
147
155
 
156
+ class DeploymentSuspensionTypes(StrEnum):
157
+ platform = 'Platform'
158
+ external = 'External'
159
+ all = 'All'
160
+
161
+
148
162
  class DeprecatePsActionParameters(BaseModel):
149
163
  model_config = ConfigDict(
150
164
  extra='allow',
@@ -158,10 +172,10 @@ class EditProcessingStepParameters(BaseModel):
158
172
  extra='allow',
159
173
  populate_by_name=True,
160
174
  )
161
- title: constr(min_length=1) = Field(..., alias='Title')
175
+ title: str = Field(..., alias='Title')
162
176
  is_public: bool = Field(..., alias='IsPublic')
163
- function_name: constr(min_length=1) = Field(..., alias='FunctionName')
164
- version: constr(min_length=1) = Field(..., alias='Version')
177
+ function_name: str = Field(..., alias='FunctionName')
178
+ version: str = Field(..., alias='Version')
165
179
 
166
180
 
167
181
  class EntryPointHtoOpenApiProperties(BaseModel):
@@ -187,7 +201,7 @@ class FieldModel(BaseModel):
187
201
  allow_multiple: bool | None = Field(None, alias='allowMultiple')
188
202
 
189
203
 
190
- class FunctionNameMatchTypes(Enum):
204
+ class FunctionNameMatchTypes(StrEnum):
191
205
  contains = 'Contains'
192
206
  match_exact = 'MatchExact'
193
207
 
@@ -223,13 +237,13 @@ class JobQueryResultHtoOpenApiProperties(BaseModel):
223
237
  remaining_tags: List[str] | None = Field(None, alias='RemainingTags')
224
238
 
225
239
 
226
- class JobSortProperties(Enum):
240
+ class JobSortProperties(StrEnum):
227
241
  name = 'Name'
228
242
  created_at = 'CreatedAt'
229
243
  completed_at = 'CompletedAt'
230
244
 
231
245
 
232
- class JobStates(Enum):
246
+ class JobStates(StrEnum):
233
247
  undefined = 'Undefined'
234
248
  created = 'Created'
235
249
  ready_for_processing = 'ReadyForProcessing'
@@ -338,7 +352,7 @@ class ProcessingStepRootHtoOpenApiProperties(BaseModel):
338
352
  )
339
353
 
340
354
 
341
- class ProcessingStepSortProperties(Enum):
355
+ class ProcessingStepSortProperties(StrEnum):
342
356
  title = 'Title'
343
357
  created_at = 'CreatedAt'
344
358
  last_modified_at = 'LastModifiedAt'
@@ -380,9 +394,9 @@ class RapidJobSetupParameters(BaseModel):
380
394
  extra='allow',
381
395
  populate_by_name=True,
382
396
  )
383
- name: constr(min_length=1) = Field(..., alias='Name')
384
- processing_step_url: str | None = Field(None, alias='ProcessingStepUrl')
385
- parent_job_url: str | None = Field(None, alias='ParentJobUrl')
397
+ name: str = Field(..., alias='Name')
398
+ processing_step_url: AnyUrl = Field(..., alias='ProcessingStepUrl')
399
+ parent_job_url: AnyUrl | None = Field(None, alias='ParentJobUrl')
386
400
  tags: List[str] | None = Field(None, alias='Tags')
387
401
  parameters: str | None = Field(None, alias='Parameters')
388
402
  allow_output_data_deletion: bool | None = Field(
@@ -399,10 +413,10 @@ class RenameJobParameters(BaseModel):
399
413
  extra='allow',
400
414
  populate_by_name=True,
401
415
  )
402
- new_name: constr(min_length=1) = Field(..., alias='NewName')
416
+ new_name: str = Field(..., alias='NewName')
403
417
 
404
418
 
405
- class ScalingBehaviours(Enum):
419
+ class ScalingBehaviours(StrEnum):
406
420
  aggressive = 'Aggressive'
407
421
  balanced = 'Balanced'
408
422
  conservative = 'Conservative'
@@ -424,7 +438,7 @@ class SelectProcessingParameters(BaseModel):
424
438
  extra='allow',
425
439
  populate_by_name=True,
426
440
  )
427
- processing_step_url: str | None = Field(None, alias='ProcessingStepUrl')
441
+ processing_step_url: AnyUrl = Field(..., alias='ProcessingStepUrl')
428
442
 
429
443
 
430
444
  class SelectWorkDataCollectionForDataSlotParameters(BaseModel):
@@ -432,7 +446,7 @@ class SelectWorkDataCollectionForDataSlotParameters(BaseModel):
432
446
  extra='allow',
433
447
  populate_by_name=True,
434
448
  )
435
- work_data_urls: List[str] | None = Field(None, alias='WorkDataUrls')
449
+ work_data_urls: List[AnyUrl] = Field(..., alias='WorkDataUrls')
436
450
 
437
451
 
438
452
  class SelectWorkDataForDataSlotParameters(BaseModel):
@@ -440,7 +454,7 @@ class SelectWorkDataForDataSlotParameters(BaseModel):
440
454
  extra='allow',
441
455
  populate_by_name=True,
442
456
  )
443
- work_data_url: str | None = Field(None, alias='WorkDataUrl')
457
+ work_data_url: AnyUrl = Field(..., alias='WorkDataUrl')
444
458
 
445
459
 
446
460
  class SetCommentWorkDataParameters(BaseModel):
@@ -456,7 +470,7 @@ class SetJobErrorStateParameters(BaseModel):
456
470
  extra='allow',
457
471
  populate_by_name=True,
458
472
  )
459
- message: constr(min_length=1) = Field(..., alias='Message')
473
+ message: str = Field(..., alias='Message')
460
474
 
461
475
 
462
476
  class SetJobTagsParameters(BaseModel):
@@ -467,12 +481,21 @@ class SetJobTagsParameters(BaseModel):
467
481
  tags: List[str] = Field(..., alias='Tags')
468
482
 
469
483
 
484
+ class SetJobsErrorStateParameters(BaseModel):
485
+ model_config = ConfigDict(
486
+ extra='allow',
487
+ populate_by_name=True,
488
+ )
489
+ message: str = Field(..., alias='Message')
490
+ created_before: AwareDatetime = Field(..., alias='CreatedBefore')
491
+
492
+
470
493
  class SetNameWorkDataParameters(BaseModel):
471
494
  model_config = ConfigDict(
472
495
  extra='allow',
473
496
  populate_by_name=True,
474
497
  )
475
- new_name: constr(min_length=1) = Field(..., alias='NewName')
498
+ new_name: str = Field(..., alias='NewName')
476
499
 
477
500
 
478
501
  class SetProcessingStepTagsParameters(BaseModel):
@@ -491,12 +514,20 @@ class SetTagsWorkDataParameters(BaseModel):
491
514
  tags: List[str] = Field(..., alias='Tags')
492
515
 
493
516
 
494
- class SortTypes(Enum):
517
+ class SortTypes(StrEnum):
495
518
  none = 'None'
496
519
  ascending = 'Ascending'
497
520
  descending = 'Descending'
498
521
 
499
522
 
523
+ class SuspendAllDeploymentsParameters(BaseModel):
524
+ model_config = ConfigDict(
525
+ extra='allow',
526
+ populate_by_name=True,
527
+ )
528
+ suspension_type: DeploymentSuspensionTypes = Field(..., alias='SuspensionType')
529
+
530
+
500
531
  class UserHtoOpenApiProperties(BaseModel):
501
532
  model_config = ConfigDict(
502
533
  extra='allow',
@@ -506,7 +537,7 @@ class UserHtoOpenApiProperties(BaseModel):
506
537
  user_grants: List[str] | None = Field(None, alias='UserGrants')
507
538
 
508
539
 
509
- class WorkDataKind(Enum):
540
+ class WorkDataKind(StrEnum):
510
541
  unknown = 'Unknown'
511
542
  client_upload = 'ClientUpload'
512
543
  processing_artefact = 'ProcessingArtefact'
@@ -532,7 +563,7 @@ class WorkDataRootHtoOpenApiProperties(BaseModel):
532
563
  )
533
564
 
534
565
 
535
- class WorkDataSortProperties(Enum):
566
+ class WorkDataSortProperties(StrEnum):
536
567
  name = 'Name'
537
568
  media_type = 'MediaType'
538
569
  kind = 'Kind'
@@ -587,23 +618,36 @@ class Action(BaseModel):
587
618
  fields: List[FieldModel] | None = None
588
619
 
589
620
 
621
+ class AdminHtoOpenApi(BaseModel):
622
+ model_config = ConfigDict(
623
+ extra='allow',
624
+ populate_by_name=True,
625
+ )
626
+ class_: List[str] | None = Field(None, alias='class')
627
+ title: str | None = None
628
+ properties: AdminHtoOpenApiProperties | None = None
629
+ entities: List[Any] | None = None
630
+ actions: List[Action] | None = None
631
+ links: List[Link] | None = None
632
+
633
+
590
634
  class AdminJobFilterParameter(BaseModel):
591
635
  model_config = ConfigDict(
592
636
  extra='allow',
593
637
  populate_by_name=True,
594
638
  )
595
- work_data_url: str | None = Field(None, alias='WorkDataUrl')
639
+ work_data_url: AnyUrl | None = Field(None, alias='WorkDataUrl')
596
640
  name: str | None = Field(None, alias='Name')
597
641
  state: JobStates | None = Field(None, alias='State')
598
642
  show_hidden: bool | None = Field(None, alias='ShowHidden')
599
- processing_step_url: str | None = Field(None, alias='ProcessingStepUrl')
643
+ processing_step_url: AnyUrl | None = Field(None, alias='ProcessingStepUrl')
600
644
  created_before: AwareDatetime | None = Field(None, alias='CreatedBefore')
601
645
  created_after: AwareDatetime | None = Field(None, alias='CreatedAfter')
602
646
  tags_by_and: List[str] | None = Field(None, alias='TagsByAnd')
603
647
  tags_by_or: List[str] | None = Field(None, alias='TagsByOr')
604
- parent_job_url: str | None = Field(None, alias='ParentJobUrl')
648
+ parent_job_url: AnyUrl | None = Field(None, alias='ParentJobUrl')
605
649
  is_sub_job: bool | None = Field(None, alias='IsSubJob')
606
- user_url: str | None = Field(None, alias='UserUrl')
650
+ user_url: AnyUrl | None = Field(None, alias='UserUrl')
607
651
 
608
652
 
609
653
  class AdminJobQueryResultHtoOpenApi(BaseModel):
@@ -614,7 +658,7 @@ class AdminJobQueryResultHtoOpenApi(BaseModel):
614
658
  class_: List[str] | None = Field(None, alias='class')
615
659
  title: str | None = None
616
660
  properties: AdminJobQueryResultHtoOpenApiProperties | None = None
617
- entities: List | None = None
661
+ entities: List[Any] | None = None
618
662
  actions: List[Action] | None = None
619
663
  links: List[Link] | None = None
620
664
 
@@ -648,7 +692,7 @@ class AdminProcessingStepQueryResultHtoOpenApi(BaseModel):
648
692
  class_: List[str] | None = Field(None, alias='class')
649
693
  title: str | None = None
650
694
  properties: AdminProcessingStepQueryResultHtoOpenApiProperties | None = None
651
- entities: List | None = None
695
+ entities: List[Any] | None = None
652
696
  actions: List[Action] | None = None
653
697
  links: List[Link] | None = None
654
698
 
@@ -658,11 +702,11 @@ class AdminWorkDataFilterParameter(BaseModel):
658
702
  extra='allow',
659
703
  populate_by_name=True,
660
704
  )
661
- producer_processing_step_url: str | None = Field(
705
+ producer_processing_step_url: AnyUrl | None = Field(
662
706
  None, alias='ProducerProcessingStepUrl'
663
707
  )
664
708
  name_contains: str | None = Field(None, alias='NameContains')
665
- user_url: str | None = Field(None, alias='UserUrl')
709
+ user_url: AnyUrl | None = Field(None, alias='UserUrl')
666
710
  show_hidden: bool | None = Field(None, alias='ShowHidden')
667
711
  media_type_contains: str | None = Field(None, alias='MediaTypeContains')
668
712
  tags_by_and: List[str] | None = Field(None, alias='TagsByAnd')
@@ -693,7 +737,7 @@ class AdminWorkDataQueryResultHtoOpenApi(BaseModel):
693
737
  class_: List[str] | None = Field(None, alias='class')
694
738
  title: str | None = None
695
739
  properties: AdminWorkDataQueryResultHtoOpenApiProperties | None = None
696
- entities: List | None = None
740
+ entities: List[Any] | None = None
697
741
  actions: List[Action] | None = None
698
742
  links: List[Link] | None = None
699
743
 
@@ -704,7 +748,7 @@ class ConfigureDeploymentParameters(BaseModel):
704
748
  populate_by_name=True,
705
749
  )
706
750
  resource_preset: DeploymentResourcePresets = Field(..., alias='ResourcePreset')
707
- entrypoint: constr(min_length=1) = Field(
751
+ entrypoint: str = Field(
708
752
  ...,
709
753
  alias='Entrypoint',
710
754
  description='Specifies the container entry point, aka ProCon file to use',
@@ -720,7 +764,7 @@ class EntryPointHtoOpenApi(BaseModel):
720
764
  class_: List[str] | None = Field(None, alias='class')
721
765
  title: str | None = None
722
766
  properties: EntryPointHtoOpenApiProperties | None = None
723
- entities: List | None = None
767
+ entities: List[Any] | None = None
724
768
  actions: List[Action] | None = None
725
769
  links: List[Link] | None = None
726
770
 
@@ -733,7 +777,7 @@ class InfoHtoOpenApi(BaseModel):
733
777
  class_: List[str] | None = Field(None, alias='class')
734
778
  title: str | None = None
735
779
  properties: InfoHtoOpenApiProperties | None = None
736
- entities: List | None = None
780
+ entities: List[Any] | None = None
737
781
  actions: List[Action] | None = None
738
782
  links: List[Link] | None = None
739
783
 
@@ -746,14 +790,14 @@ class JobFilterParameter(BaseModel):
746
790
  state: JobStates | None = Field(None, alias='State')
747
791
  name: str | None = Field(None, alias='Name')
748
792
  show_hidden: bool | None = Field(None, alias='ShowHidden')
749
- work_data_url: str | None = Field(None, alias='WorkDataUrl')
793
+ work_data_url: AnyUrl | None = Field(None, alias='WorkDataUrl')
750
794
  created_before: AwareDatetime | None = Field(None, alias='CreatedBefore')
751
795
  created_after: AwareDatetime | None = Field(None, alias='CreatedAfter')
752
796
  tags_by_and: List[str] | None = Field(None, alias='TagsByAnd')
753
797
  tags_by_or: List[str] | None = Field(None, alias='TagsByOr')
754
- processing_step_url: str | None = Field(None, alias='ProcessingStepUrl')
798
+ processing_step_url: AnyUrl | None = Field(None, alias='ProcessingStepUrl')
755
799
  is_sub_job: bool | None = Field(None, alias='IsSubJob')
756
- parent_job_url: str | None = Field(None, alias='ParentJobUrl')
800
+ parent_job_url: AnyUrl | None = Field(None, alias='ParentJobUrl')
757
801
 
758
802
 
759
803
  class JobHtoOpenApiProperties(BaseModel):
@@ -787,7 +831,7 @@ class JobQueryResultHtoOpenApi(BaseModel):
787
831
  class_: List[str] | None = Field(None, alias='class')
788
832
  title: str | None = None
789
833
  properties: JobQueryResultHtoOpenApiProperties | None = None
790
- entities: List | None = None
834
+ entities: List[Any] | None = None
791
835
  actions: List[Action] | None = None
792
836
  links: List[Link] | None = None
793
837
 
@@ -809,7 +853,7 @@ class JobUsedTagsAdminHtoOpenApi(BaseModel):
809
853
  class_: List[str] | None = Field(None, alias='class')
810
854
  title: str | None = None
811
855
  properties: JobUsedTagsAdminHtoOpenApiProperties | None = None
812
- entities: List | None = None
856
+ entities: List[Any] | None = None
813
857
  actions: List[Action] | None = None
814
858
  links: List[Link] | None = None
815
859
 
@@ -822,7 +866,7 @@ class JobUsedTagsHtoOpenApi(BaseModel):
822
866
  class_: List[str] | None = Field(None, alias='class')
823
867
  title: str | None = None
824
868
  properties: JobUsedTagsHtoOpenApiProperties | None = None
825
- entities: List | None = None
869
+ entities: List[Any] | None = None
826
870
  actions: List[Action] | None = None
827
871
  links: List[Link] | None = None
828
872
 
@@ -835,7 +879,7 @@ class JobsRootHtoOpenApi(BaseModel):
835
879
  class_: List[str] | None = Field(None, alias='class')
836
880
  title: str | None = None
837
881
  properties: JobsRootHtoOpenApiProperties | None = None
838
- entities: List | None = None
882
+ entities: List[Any] | None = None
839
883
  actions: List[Action] | None = None
840
884
  links: List[Link] | None = None
841
885
 
@@ -894,7 +938,7 @@ class ProcessingStepHtoOpenApiProperties(BaseModel):
894
938
  is_configured: bool | None = Field(None, alias='IsConfigured')
895
939
  hidden: bool | None = Field(None, alias='Hidden')
896
940
  is_deprecated: bool | None = Field(None, alias='IsDeprecated')
897
- deprecated_on: AwareDatetime | None = Field(None, alias='DeprecatedOn')
941
+ deprecated_at: AwareDatetime | None = Field(None, alias='DeprecatedAt')
898
942
  reason_for_deprecation: str | None = Field(None, alias='ReasonForDeprecation')
899
943
  created_at: AwareDatetime | None = Field(None, alias='CreatedAt')
900
944
  last_modified_at: AwareDatetime | None = Field(None, alias='LastModifiedAt')
@@ -920,7 +964,7 @@ class ProcessingStepQueryResultHtoOpenApi(BaseModel):
920
964
  class_: List[str] | None = Field(None, alias='class')
921
965
  title: str | None = None
922
966
  properties: ProcessingStepQueryResultHtoOpenApiProperties | None = None
923
- entities: List | None = None
967
+ entities: List[Any] | None = None
924
968
  actions: List[Action] | None = None
925
969
  links: List[Link] | None = None
926
970
 
@@ -933,7 +977,7 @@ class ProcessingStepRootHtoOpenApi(BaseModel):
933
977
  class_: List[str] | None = Field(None, alias='class')
934
978
  title: str | None = None
935
979
  properties: ProcessingStepRootHtoOpenApiProperties | None = None
936
- entities: List | None = None
980
+ entities: List[Any] | None = None
937
981
  actions: List[Action] | None = None
938
982
  links: List[Link] | None = None
939
983
 
@@ -957,7 +1001,7 @@ class ProcessingStepUsedTagsAdminHtoOpenApi(BaseModel):
957
1001
  class_: List[str] | None = Field(None, alias='class')
958
1002
  title: str | None = None
959
1003
  properties: ProcessingStepUsedTagsAdminHtoOpenApiProperties | None = None
960
- entities: List | None = None
1004
+ entities: List[Any] | None = None
961
1005
  actions: List[Action] | None = None
962
1006
  links: List[Link] | None = None
963
1007
 
@@ -970,7 +1014,7 @@ class ProcessingStepUsedTagsHtoOpenApi(BaseModel):
970
1014
  class_: List[str] | None = Field(None, alias='class')
971
1015
  title: str | None = None
972
1016
  properties: ProcessingStepUsedTagsHtoOpenApiProperties | None = None
973
- entities: List | None = None
1017
+ entities: List[Any] | None = None
974
1018
  actions: List[Action] | None = None
975
1019
  links: List[Link] | None = None
976
1020
 
@@ -983,7 +1027,7 @@ class UserHtoOpenApi(BaseModel):
983
1027
  class_: List[str] | None = Field(None, alias='class')
984
1028
  title: str | None = None
985
1029
  properties: UserHtoOpenApiProperties | None = None
986
- entities: List | None = None
1030
+ entities: List[Any] | None = None
987
1031
  actions: List[Action] | None = None
988
1032
  links: List[Link] | None = None
989
1033
 
@@ -994,7 +1038,7 @@ class WorkDataFilterParameter(BaseModel):
994
1038
  populate_by_name=True,
995
1039
  )
996
1040
  name_contains: str | None = Field(None, alias='NameContains')
997
- producer_processing_step_url: str | None = Field(
1041
+ producer_processing_step_url: AnyUrl | None = Field(
998
1042
  None, alias='ProducerProcessingStepUrl'
999
1043
  )
1000
1044
  show_hidden: bool | None = Field(None, alias='ShowHidden')
@@ -1050,7 +1094,7 @@ class WorkDataQueryResultHtoOpenApi(BaseModel):
1050
1094
  class_: List[str] | None = Field(None, alias='class')
1051
1095
  title: str | None = None
1052
1096
  properties: WorkDataQueryResultHtoOpenApiProperties | None = None
1053
- entities: List | None = None
1097
+ entities: List[Any] | None = None
1054
1098
  actions: List[Action] | None = None
1055
1099
  links: List[Link] | None = None
1056
1100
 
@@ -1063,7 +1107,7 @@ class WorkDataRootHtoOpenApi(BaseModel):
1063
1107
  class_: List[str] | None = Field(None, alias='class')
1064
1108
  title: str | None = None
1065
1109
  properties: WorkDataRootHtoOpenApiProperties | None = None
1066
- entities: List | None = None
1110
+ entities: List[Any] | None = None
1067
1111
  actions: List[Action] | None = None
1068
1112
  links: List[Link] | None = None
1069
1113
 
@@ -1076,7 +1120,7 @@ class WorkDataUsedTagsAdminQueryResultHtoOpenApi(BaseModel):
1076
1120
  class_: List[str] | None = Field(None, alias='class')
1077
1121
  title: str | None = None
1078
1122
  properties: WorkDataUsedTagsAdminQueryResultHtoOpenApiProperties | None = None
1079
- entities: List | None = None
1123
+ entities: List[Any] | None = None
1080
1124
  actions: List[Action] | None = None
1081
1125
  links: List[Link] | None = None
1082
1126
 
@@ -1089,7 +1133,7 @@ class WorkDataUsedTagsQueryResultHtoOpenApi(BaseModel):
1089
1133
  class_: List[str] | None = Field(None, alias='class')
1090
1134
  title: str | None = None
1091
1135
  properties: WorkDataUsedTagsQueryResultHtoOpenApiProperties | None = None
1092
- entities: List | None = None
1136
+ entities: List[Any] | None = None
1093
1137
  actions: List[Action] | None = None
1094
1138
  links: List[Link] | None = None
1095
1139
 
@@ -1126,7 +1170,7 @@ class JobHtoOpenApi(BaseModel):
1126
1170
  class_: List[str] | None = Field(None, alias='class')
1127
1171
  title: str | None = None
1128
1172
  properties: JobHtoOpenApiProperties | None = None
1129
- entities: List | None = None
1173
+ entities: List[Any] | None = None
1130
1174
  actions: List[Action] | None = None
1131
1175
  links: List[Link] | None = None
1132
1176
 
@@ -1150,7 +1194,7 @@ class ProcessingStepHtoOpenApi(BaseModel):
1150
1194
  class_: List[str] | None = Field(None, alias='class')
1151
1195
  title: str | None = None
1152
1196
  properties: ProcessingStepHtoOpenApiProperties | None = None
1153
- entities: List | None = None
1197
+ entities: List[Any] | None = None
1154
1198
  actions: List[Action] | None = None
1155
1199
  links: List[Link] | None = None
1156
1200
 
@@ -1176,6 +1220,6 @@ class WorkDataHtoOpenApi(BaseModel):
1176
1220
  class_: List[str] | None = Field(None, alias='class')
1177
1221
  title: str | None = None
1178
1222
  properties: WorkDataHtoOpenApiProperties | None = None
1179
- entities: List | None = None
1223
+ entities: List[Any] | None = None
1180
1224
  actions: List[Action] | None = None
1181
1225
  links: List[Link] | None = None
@@ -629,29 +629,47 @@ class Job:
629
629
  delete_subjobs_with_data: bool = True
630
630
  ) -> Self:
631
631
  """Delete this job after deleting output workdata and subjobs (recursive call) depending on the flag.
632
- Afterward, also deletes input workdata depending on the flag. This is a best effort operation,
633
- if an operation can not be executed a warning will be printed but the process continues.
632
+ Afterward, also deletes input workdata depending on the flag. This is a best effort operation,
633
+ if an operation can not be executed a warning will be printed but the process continues.
634
634
 
635
- Args:
636
- delete_output_workdata: boolean flag to specify if output WorkData should be attempted for deletion. Default: True
637
- delete_input_workdata: boolean flag to specify if input WorkData should be attempted for deletion. Default: False
638
- delete_subjobs_with_data: boolean flag tp specify if Sub jobs should be attempted for deletion. Default: True
635
+ Args:
636
+ delete_output_workdata: boolean flag to specify if output WorkData should be attempted for deletion. Default: True
637
+ delete_input_workdata: boolean flag to specify if input WorkData should be attempted for deletion. Default: False
638
+ delete_subjobs_with_data: boolean flag tp specify if Sub jobs should be attempted for deletion. Default: True
639
639
 
640
- Returns:
641
- This `Job` object
640
+ Returns:
641
+ This `Job` object
642
642
  """
643
+ self._delete_with_associated_internal(
644
+ delete_output_workdata=delete_output_workdata,
645
+ delete_input_workdata=delete_input_workdata,
646
+ delete_subjobs_with_data=delete_subjobs_with_data,
647
+ recursion_depth = 0)
648
+
649
+ def _delete_with_associated_internal(
650
+ self,
651
+ *,
652
+ delete_output_workdata: bool = True,
653
+ delete_input_workdata: bool = False,
654
+ delete_subjobs_with_data: bool = True,
655
+ recursion_depth: int = 0
656
+ ) -> Self:
643
657
  self._raise_if_no_hco()
644
658
 
645
659
  # delete subjobs
646
- if delete_subjobs_with_data is True:
660
+ if delete_subjobs_with_data:
661
+ if recursion_depth > 20:
662
+ raise Exception("Recursion limit of subjob deletion exceeded.")
663
+
647
664
  for subjob in self._get_sub_jobs().iter_flat():
648
665
  try:
649
666
  # recursion
650
667
  subjob_wrapper = Job.from_hco(subjob)
651
- subjob_wrapper.delete_with_associated(
668
+ subjob_wrapper._delete_with_associated_internal(
652
669
  delete_output_workdata=delete_output_workdata,
653
670
  delete_input_workdata=delete_input_workdata,
654
- delete_subjobs_with_data=delete_subjobs_with_data)
671
+ delete_subjobs_with_data=delete_subjobs_with_data,
672
+ recursion_depth = recursion_depth + 1)
655
673
  if subjob.self_link.exists():
656
674
  warnings.warn(f"Could not delete subjob: {subjob.self_link.get_url()}")
657
675
  except (ClientException, ApiException) as e:
@@ -660,7 +678,7 @@ class Job:
660
678
  self.refresh()
661
679
 
662
680
  # delete output workdatas
663
- if delete_output_workdata is True:
681
+ if delete_output_workdata:
664
682
  for slot in self.job_hco.output_dataslots:
665
683
  for wd in slot.assigned_workdatas:
666
684
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pinexq-client
3
- Version: 0.10.3rc1
3
+ Version: 0.10.4rc1
4
4
  Summary: A hypermedia-based client for the DataCybernetics PinexQ platform.
5
5
  Author: Sebastian Höfer, Mathias Reichardt, Jasim Ahmed, Pratik Poudel
6
6
  Author-email: Sebastian Höfer <hoefer@data-cybernetics.com>, Mathias Reichardt <reichardt@data-cybernetics.com>, Jasim Ahmed <ahmed@data-cybernetics.com>, Pratik Poudel <poudel@data-cybernetics.com>
@@ -14,9 +14,9 @@ Maintainer-email: Mathias Reichardt <reichardt@data-cybernetics.com>, Sebastian
14
14
  Requires-Python: >=3.11
15
15
  Description-Content-Type: text/markdown
16
16
 
17
- # Pine-x-Q Python Client
17
+ # PineXQ Python Client
18
18
 
19
- A hypermedia-based client for the DataCybernetics PinexQ platform.
19
+ A hypermedia-based client for the DataCybernetics PineXQ platform.
20
20
 
21
21
  This module contains the submodules:
22
22
 
@@ -22,14 +22,14 @@ pinexq_client/job_management/__init__.py,sha256=of3nrM8wMG-rvSDV4cTN6CyDaxdtBw1h
22
22
  pinexq_client/job_management/enterjma.py,sha256=A9Uo9QSJAuAm9oHAhs0BIpEat77cRuWZvJ5zEOijhPs,3386
23
23
  pinexq_client/job_management/hcos/__init__.py,sha256=TZgs5kuBk3lSBxPfn5ehgbdUgzPy2jn1PC3Ea6VQY-k,584
24
24
  pinexq_client/job_management/hcos/entrypoint_hco.py,sha256=yeGw-tirgJf4MYziGnFQFfYaOOovrUf3kkb1U_wgN4k,2423
25
- pinexq_client/job_management/hcos/info_hco.py,sha256=Y2nqDZRvqm3087-EzSGfV4QShe9Hy-eu0s-M953ggyw,1899
26
- pinexq_client/job_management/hcos/input_dataslot_hco.py,sha256=SDflhyW8kjpcTUfKAXnJxNR-etPzAHfoTqlYUcJZrxs,3442
25
+ pinexq_client/job_management/hcos/info_hco.py,sha256=9PZfx3SCuZiAvXsCsRR7XMfae18kd0Z1C_FLUyxiN_M,2122
26
+ pinexq_client/job_management/hcos/input_dataslot_hco.py,sha256=QTTn0L1czLfu3HNMsCUCYihHDQBSUMicL-lFV9wtLD4,3474
27
27
  pinexq_client/job_management/hcos/job_hco.py,sha256=8Lq5RABq7XUp3Z6jhYegPgVPfm591-38eC8CCLes0KQ,8934
28
28
  pinexq_client/job_management/hcos/job_query_result_hco.py,sha256=I0G8YIlYDhTahLz8n06L8BywlcsMGNWUEsmEr4Sk0GU,3315
29
29
  pinexq_client/job_management/hcos/job_used_tags_hco.py,sha256=JKbZerZRway_HU6ujXiBjgP9TlLho1WD0syTmivsZpk,1706
30
30
  pinexq_client/job_management/hcos/jobsroot_hco.py,sha256=8ba2vFmTeVcW0GZrtUfyrxWt-OCTtKeGOc-NeCq1Rrg,4971
31
- pinexq_client/job_management/hcos/output_dataslot_hco.py,sha256=zxpo-fI9eHcp_pMKcf2l-gRoPHX1RzQO53auHMRB_T8,1549
32
- pinexq_client/job_management/hcos/processing_step_hco.py,sha256=9WkAzoRCrQw_og8Y7fTio3TRTI8EowOJPxq9MNCQKX8,12657
31
+ pinexq_client/job_management/hcos/output_dataslot_hco.py,sha256=xIU5AsJT6zPqaR39gKOi_9N_VwdiUUPjvaXXMyA7HUU,1583
32
+ pinexq_client/job_management/hcos/processing_step_hco.py,sha256=XueKT4zK4oudZS6FoK24H7pefKjjdb_6Mm1rNKu2Pds,12744
33
33
  pinexq_client/job_management/hcos/processing_step_used_tags_hco.py,sha256=K4Ub5FVK5ge8CtUeit9D23MPjQTMTC-X75dS9561oyw,1947
34
34
  pinexq_client/job_management/hcos/processingstep_query_result_hco.py,sha256=YcCgigKvOIggILixgaEbmnM23FlkjCgxnhZC2Eh98dY,3817
35
35
  pinexq_client/job_management/hcos/processingsteproot_hco.py,sha256=MC7qxNMXwoKtMReSVzYiNqI_2MUdT3gbxoxULyYXU6c,4172
@@ -38,15 +38,15 @@ pinexq_client/job_management/hcos/workdata_hco.py,sha256=QI1m_IUWVBesCft9UR1svCR
38
38
  pinexq_client/job_management/hcos/workdata_query_result_hco.py,sha256=yxEnu_COMxP3mt553JZD13jjPyqSp3DJjgd8es5Nq_E,3520
39
39
  pinexq_client/job_management/hcos/workdata_used_tags_query_result_hco.py,sha256=oMHyG4NLOOPljzIE5324vVfo4zoGiNsQnT_HEuRi-nY,1991
40
40
  pinexq_client/job_management/hcos/workdataroot_hco.py,sha256=92Q3J8q28XRL7cw1Ac5F_hl_Y5ZNaZ2gThYLbTIrka0,4441
41
- pinexq_client/job_management/known_relations.py,sha256=Xe5QhDZY_0bH6Bdqb-DJdh8Mu8Uhcas3kF2v1UJe56A,874
41
+ pinexq_client/job_management/known_relations.py,sha256=do-u2wjb6u_HK2-y604f2gs3rk9O19MTIZpvbkfTSpA,905
42
42
  pinexq_client/job_management/model/__init__.py,sha256=iuAKRXdW_Mxo0i3HsBfEzhJJZUKkNe3qs4gLW-ge1PU,63
43
- pinexq_client/job_management/model/open_api_generated.py,sha256=l5TroQbIM1ho0-CpwseorQ2nehDx4LwdrCmSeeLIsMc,39658
43
+ pinexq_client/job_management/model/open_api_generated.py,sha256=_7_PO0I1I7M-S6bYyhCk6myNPM2o3qjm8qK7WnkcHaI,40563
44
44
  pinexq_client/job_management/model/sirenentities.py,sha256=75ivnSU5OSuocITfluJ5o4o0CZldgtaP5PZqj4LhjJc,3950
45
45
  pinexq_client/job_management/tool/__init__.py,sha256=zPobd-hQyANHzC0-TjJG91z9XrewvE54ZJ6VViymW5M,128
46
- pinexq_client/job_management/tool/job.py,sha256=pD8O47N5okIOflVADy-9MSSDll1aSoV3CCyfzJxejG4,34262
46
+ pinexq_client/job_management/tool/job.py,sha256=YOnNXk_tUSTjmHPcTwn_jYskjoqDg183tRHqG63HCuI,35037
47
47
  pinexq_client/job_management/tool/job_group.py,sha256=olwnPNqfT32XtLKJOzoq7j_Hb6NovUxy6YRJtQgLsW0,11221
48
48
  pinexq_client/job_management/tool/processing_step.py,sha256=3_KIk5IPqKXuJw4Gn3S6t2TYPf_EBCxZhBpHZqEHfUQ,16797
49
49
  pinexq_client/job_management/tool/workdata.py,sha256=E1Qt945tocXiSZuQo2IbTnlgW2VRnq2ODEFQ96lXTDI,6270
50
- pinexq_client-0.10.3rc1.dist-info/WHEEL,sha256=ePp19eyRASTHUPCpRsqjeFjsybXoCLYnd2O6QHdRRAY,79
51
- pinexq_client-0.10.3rc1.dist-info/METADATA,sha256=M9QJ3veg77CzUMA0Am6ksoVQg0wNuJddFXpwt4idTv4,3520
52
- pinexq_client-0.10.3rc1.dist-info/RECORD,,
50
+ pinexq_client-0.10.4rc1.dist-info/WHEEL,sha256=93kfTGt3a0Dykt_T-gsjtyS5_p8F_d6CE1NwmBOirzo,79
51
+ pinexq_client-0.10.4rc1.dist-info/METADATA,sha256=OHzR31fMGWtwcA8EujjKVSRk3653-SxZBh3aCJPeBtE,3518
52
+ pinexq_client-0.10.4rc1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.14
2
+ Generator: uv 0.9.16
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any