pinexq-client 0.9.2.20250828.47__py3-none-any.whl → 0.9.2.20250908.48__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.
@@ -22,4 +22,4 @@ from .model import JobSortPropertiesSortParameter, ProcessingView
22
22
  from .tool import Job, JobGroup, ProcessingStep, WorkData
23
23
 
24
24
  # Protocol version the JMA is using
25
- __jma_version__ = [8, 2, 0]
25
+ __jma_version__ = [8, 3, 0]
@@ -5,6 +5,7 @@ import httpx
5
5
  from pinexq_client.core.hco.hco_base import Hco, Property
6
6
  from pinexq_client.core.hco.link_hco import LinkHco
7
7
  from pinexq_client.job_management.known_relations import Relations
8
+ from pinexq_client.job_management.model import JobUsedTagsEntityAdmin
8
9
  from pinexq_client.job_management.model.sirenentities import JobUsedTagsEntity
9
10
 
10
11
 
@@ -28,3 +29,24 @@ class JobUsedTagsLink(LinkHco):
28
29
  def navigate(self) -> JobUsedTagsHco:
29
30
  return JobUsedTagsHco.from_entity(self._navigate_internal(JobUsedTagsEntity), self._client)
30
31
 
32
+
33
+ class JobUsedTagsAdminHco(Hco[JobUsedTagsEntityAdmin]):
34
+ tags: List[str] | None = Property()
35
+
36
+ self_link: 'JobUsedTagsAdminLink'
37
+
38
+ @classmethod
39
+ def from_entity(cls, entity: JobUsedTagsEntityAdmin, client: httpx.Client) -> Self:
40
+ instance = cls(client, entity)
41
+
42
+ Hco.check_classes(instance._entity.class_, ["JobUsedTagsAdmin"])
43
+
44
+ instance.self_link = JobUsedTagsAdminLink.from_entity(instance._client, instance._entity, Relations.SELF)
45
+
46
+ return instance
47
+
48
+
49
+ class JobUsedTagsAdminLink(LinkHco):
50
+ def navigate(self) -> JobUsedTagsAdminHco:
51
+ return JobUsedTagsAdminHco.from_entity(self._navigate_internal(JobUsedTagsEntityAdmin), self._client)
52
+
@@ -13,7 +13,7 @@ from pinexq_client.job_management.hcos.job_query_result_hco import (
13
13
  JobQueryResultHco,
14
14
  JobQueryResultLink
15
15
  )
16
- from pinexq_client.job_management.hcos.job_used_tags_hco import JobUsedTagsLink
16
+ from pinexq_client.job_management.hcos.job_used_tags_hco import JobUsedTagsLink, JobUsedTagsAdminLink
17
17
  from pinexq_client.job_management.known_relations import Relations
18
18
  from pinexq_client.job_management.model import RapidJobSetupParameters
19
19
  from pinexq_client.job_management.model.open_api_generated import (
@@ -71,6 +71,7 @@ class JobsRootHco(Hco[JobsRootEntity]):
71
71
  job_query_action: JobQueryAction | UnavailableAction
72
72
  create_subjob_action: CreateSubJobAction | UnavailableAction
73
73
  used_tags_link: JobUsedTagsLink | UnavailableLink
74
+ used_tags_admin_link: JobUsedTagsAdminLink | UnavailableLink
74
75
 
75
76
  self_link: 'JobsRootLink'
76
77
 
@@ -87,6 +88,8 @@ class JobsRootHco(Hco[JobsRootEntity]):
87
88
  instance.job_query_action = JobQueryAction.from_entity_optional(client, instance._entity, "CreateJobQuery")
88
89
  instance.used_tags_link = JobUsedTagsLink.from_entity_optional(
89
90
  instance._client, instance._entity, Relations.USED_TAGS)
91
+ instance.used_tags_admin_link = JobUsedTagsAdminLink.from_entity_optional(
92
+ instance._client, instance._entity, Relations.USED_TAGS_ADMIN)
90
93
  instance.self_link = JobsRootLink.from_entity(instance._client, instance._entity, Relations.SELF)
91
94
 
92
95
  return instance
@@ -5,10 +5,11 @@ import httpx
5
5
  from pinexq_client.core.hco.hco_base import Hco, Property
6
6
  from pinexq_client.core.hco.link_hco import LinkHco
7
7
  from pinexq_client.job_management.known_relations import Relations
8
+ from pinexq_client.job_management.model import ProcessingStepUsedTagsEntityAdmin
8
9
  from pinexq_client.job_management.model.sirenentities import ProcessingStepUsedTagsEntity
9
10
 
10
11
 
11
- class ProcessingStepUsedTagsHco(Hco[{ProcessingStepUsedTagsEntity}]):
12
+ class ProcessingStepUsedTagsHco(Hco[ProcessingStepUsedTagsEntity]):
12
13
  tags: List[str] | None = Property()
13
14
 
14
15
  self_link: 'ProcessingStepUsedTagsLink'
@@ -28,3 +29,23 @@ class ProcessingStepUsedTagsLink(LinkHco):
28
29
  def navigate(self) -> ProcessingStepUsedTagsHco:
29
30
  return ProcessingStepUsedTagsHco.from_entity(self._navigate_internal(ProcessingStepUsedTagsEntity), self._client)
30
31
 
32
+
33
+ class ProcessingStepUsedTagsAdminHco(Hco[ProcessingStepUsedTagsEntityAdmin]):
34
+ tags: List[str] | None = Property()
35
+
36
+ self_link: 'ProcessingStepUsedTagsAdminLink'
37
+
38
+ @classmethod
39
+ def from_entity(cls, entity: ProcessingStepUsedTagsEntityAdmin, client: httpx.Client) -> Self:
40
+ instance = cls(client, entity)
41
+
42
+ Hco.check_classes(instance._entity.class_, ["ProcessingStepUsedTagsAdmin"])
43
+
44
+ instance.self_link = ProcessingStepUsedTagsAdminLink.from_entity(instance._client, instance._entity, Relations.SELF)
45
+
46
+ return instance
47
+
48
+
49
+ class ProcessingStepUsedTagsAdminLink(LinkHco):
50
+ def navigate(self) -> ProcessingStepUsedTagsAdminHco:
51
+ return ProcessingStepUsedTagsAdminHco.from_entity(self._navigate_internal(ProcessingStepUsedTagsEntityAdmin), self._client)
@@ -8,11 +8,12 @@ from pinexq_client.core.hco.hco_base import Hco
8
8
  from pinexq_client.core.hco.link_hco import LinkHco
9
9
  from pinexq_client.core.hco.unavailable import UnavailableAction, UnavailableLink
10
10
  from pinexq_client.job_management.hcos.processing_step_hco import ProcessingStepLink, ProcessingStepHco
11
- from pinexq_client.job_management.hcos.processing_step_used_tags_hco import ProcessingStepUsedTagsLink
11
+ from pinexq_client.job_management.hcos.processing_step_used_tags_hco import ProcessingStepUsedTagsLink, \
12
+ ProcessingStepUsedTagsAdminLink
12
13
  from pinexq_client.job_management.hcos.processingstep_query_result_hco import (
13
- ProcessingStepQueryResultHco,
14
- ProcessingStepQueryResultLink,
15
- ProcessingStepQueryResultPaginationLink
14
+ ProcessingStepQueryResultHco,
15
+ ProcessingStepQueryResultLink,
16
+ ProcessingStepQueryResultPaginationLink
16
17
  )
17
18
  from pinexq_client.job_management.known_relations import Relations
18
19
  from pinexq_client.job_management.model import ProcessingStepQueryParameters, CreateProcessingStepParameters
@@ -20,54 +21,57 @@ from pinexq_client.job_management.model.sirenentities import ProcessingStepsRoot
20
21
 
21
22
 
22
23
  class ProcessingStepQueryAction(ActionWithParametersHco[ProcessingStepQueryParameters]):
23
- def execute(self, parameters: ProcessingStepQueryParameters) -> ProcessingStepQueryResultHco:
24
- url = self._execute_returns_url(parameters)
25
- link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created query", MediaTypes.SIREN)
26
- # resolve link immediately
27
- return ProcessingStepQueryResultLink.from_link(self._client, link).navigate()
24
+ def execute(self, parameters: ProcessingStepQueryParameters) -> ProcessingStepQueryResultHco:
25
+ url = self._execute_returns_url(parameters)
26
+ link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created query", MediaTypes.SIREN)
27
+ # resolve link immediately
28
+ return ProcessingStepQueryResultLink.from_link(self._client, link).navigate()
28
29
 
29
- def default_parameters(self) -> ProcessingStepQueryParameters:
30
- return self._get_default_parameters(ProcessingStepQueryParameters, ProcessingStepQueryParameters())
30
+ def default_parameters(self) -> ProcessingStepQueryParameters:
31
+ return self._get_default_parameters(ProcessingStepQueryParameters, ProcessingStepQueryParameters())
31
32
 
32
33
 
33
34
  class ProcessingStepRegisterNewAction(ActionWithParametersHco[CreateProcessingStepParameters]):
34
- def execute(self, parameters: CreateProcessingStepParameters) -> ProcessingStepHco:
35
- url = self._execute_returns_url(parameters)
36
- link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created processing-step", MediaTypes.SIREN)
37
- # resolve link immediately
38
- return ProcessingStepLink.from_link(self._client, link).navigate()
35
+ def execute(self, parameters: CreateProcessingStepParameters) -> ProcessingStepHco:
36
+ url = self._execute_returns_url(parameters)
37
+ link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created processing-step", MediaTypes.SIREN)
38
+ # resolve link immediately
39
+ return ProcessingStepLink.from_link(self._client, link).navigate()
39
40
 
40
- def default_parameters(self) -> CreateProcessingStepParameters:
41
- return self._get_default_parameters(CreateProcessingStepParameters, CreateProcessingStepParameters())
41
+ def default_parameters(self) -> CreateProcessingStepParameters:
42
+ return self._get_default_parameters(CreateProcessingStepParameters, CreateProcessingStepParameters())
42
43
 
43
44
 
44
45
  class ProcessingStepsRootLink(LinkHco):
45
- def navigate(self) -> 'ProcessingStepsRootHco':
46
- return ProcessingStepsRootHco.from_entity(self._navigate_internal(ProcessingStepsRootEntity), self._client)
46
+ def navigate(self) -> 'ProcessingStepsRootHco':
47
+ return ProcessingStepsRootHco.from_entity(self._navigate_internal(ProcessingStepsRootEntity), self._client)
47
48
 
48
49
 
49
50
  class ProcessingStepsRootHco(Hco[ProcessingStepsRootEntity]):
50
- query_action: ProcessingStepQueryAction | UnavailableAction
51
- register_new_action: ProcessingStepRegisterNewAction | UnavailableAction
52
-
53
- self_link: ProcessingStepsRootLink
54
- all_link: ProcessingStepQueryResultPaginationLink | UnavailableLink
55
- used_tags_link: ProcessingStepUsedTagsLink | UnavailableLink
56
-
57
- @classmethod
58
- def from_entity(cls, entity: ProcessingStepsRootEntity, client: httpx.Client) -> Self:
59
- instance = cls(client, entity)
60
- Hco.check_classes(instance._entity.class_, ["ProcessingStepRoot"])
61
-
62
- instance.register_new_action = ProcessingStepRegisterNewAction.from_entity_optional(
63
- client, instance._entity, "RegisterNewProcessingStep")
64
- instance.query_action = ProcessingStepQueryAction.from_entity_optional(
65
- client, instance._entity, "CreateProcessingStepQuery")
66
- instance.used_tags_link = ProcessingStepUsedTagsLink.from_entity_optional(
67
- instance._client, instance._entity, Relations.USED_TAGS)
68
- instance.self_link = ProcessingStepsRootLink.from_entity(
69
- instance._client, instance._entity, Relations.SELF)
70
- instance.all_link = ProcessingStepQueryResultPaginationLink.from_entity_optional(
71
- instance._client, instance._entity, Relations.ALL)
72
-
73
- return instance
51
+ query_action: ProcessingStepQueryAction | UnavailableAction
52
+ register_new_action: ProcessingStepRegisterNewAction | UnavailableAction
53
+
54
+ self_link: ProcessingStepsRootLink
55
+ all_link: ProcessingStepQueryResultPaginationLink | UnavailableLink
56
+ used_tags_admin_link: ProcessingStepUsedTagsAdminLink | UnavailableLink
57
+ used_tags_link: ProcessingStepUsedTagsLink | UnavailableLink
58
+
59
+ @classmethod
60
+ def from_entity(cls, entity: ProcessingStepsRootEntity, client: httpx.Client) -> Self:
61
+ instance = cls(client, entity)
62
+ Hco.check_classes(instance._entity.class_, ["ProcessingStepRoot"])
63
+
64
+ instance.register_new_action = ProcessingStepRegisterNewAction.from_entity_optional(
65
+ client, instance._entity, "RegisterNewProcessingStep")
66
+ instance.query_action = ProcessingStepQueryAction.from_entity_optional(
67
+ client, instance._entity, "CreateProcessingStepQuery")
68
+ instance.used_tags_link = ProcessingStepUsedTagsLink.from_entity_optional(
69
+ instance._client, instance._entity, Relations.USED_TAGS)
70
+ instance.used_tags_admin_link = ProcessingStepUsedTagsAdminLink.from_entity_optional(
71
+ instance._client, instance._entity, Relations.USED_TAGS_ADMIN)
72
+ instance.self_link = ProcessingStepsRootLink.from_entity(
73
+ instance._client, instance._entity, Relations.SELF)
74
+ instance.all_link = ProcessingStepQueryResultPaginationLink.from_entity_optional(
75
+ instance._client, instance._entity, Relations.ALL)
76
+
77
+ return instance
@@ -5,6 +5,7 @@ import httpx
5
5
  from pinexq_client.core.hco.hco_base import Hco, Property
6
6
  from pinexq_client.core.hco.link_hco import LinkHco
7
7
  from pinexq_client.job_management.known_relations import Relations
8
+ from pinexq_client.job_management.model import WorkDataUsedTagsQueryResultEntityAdmin
8
9
  from pinexq_client.job_management.model.sirenentities import WorkDataUsedTagsQueryResultEntity
9
10
 
10
11
 
@@ -28,3 +29,23 @@ class WorkDataUsedTagsLink(LinkHco):
28
29
  def navigate(self) -> WorkDataUsedTagsQueryResultHto:
29
30
  return WorkDataUsedTagsQueryResultHto.from_entity(self._navigate_internal(WorkDataUsedTagsQueryResultEntity), self._client)
30
31
 
32
+
33
+ class WorkDataUsedTagsQueryResultAdminHto(Hco[WorkDataUsedTagsQueryResultEntityAdmin]):
34
+ tags: List[str] | None = Property()
35
+
36
+ self_link: 'WorkDataUsedTagsAdminLink'
37
+
38
+ @classmethod
39
+ def from_entity(cls, entity: WorkDataUsedTagsQueryResultEntityAdmin, client: httpx.Client) -> Self:
40
+ instance = cls(client, entity)
41
+
42
+ Hco.check_classes(instance._entity.class_, ["WorkDataUsedTagsAdminQueryResult"])
43
+
44
+ instance.self_link = WorkDataUsedTagsAdminLink.from_entity(instance._client, instance._entity, Relations.SELF)
45
+
46
+ return instance
47
+
48
+
49
+ class WorkDataUsedTagsAdminLink(LinkHco):
50
+ def navigate(self) -> WorkDataUsedTagsQueryResultAdminHto:
51
+ return WorkDataUsedTagsQueryResultAdminHto.from_entity(self._navigate_internal(WorkDataUsedTagsQueryResultEntityAdmin), self._client)
@@ -10,76 +10,82 @@ from pinexq_client.core.hco.unavailable import UnavailableAction, UnavailableLin
10
10
  from pinexq_client.core.hco.upload_action_hco import UploadAction, UploadParameters
11
11
  from pinexq_client.job_management.hcos.workdata_hco import WorkDataLink
12
12
  from pinexq_client.job_management.hcos.workdata_query_result_hco import (
13
- WorkDataQueryResultHco,
14
- WorkDataQueryResultLink,
15
- WorkDataQueryResultPaginationLink
13
+ WorkDataQueryResultHco,
14
+ WorkDataQueryResultLink,
15
+ WorkDataQueryResultPaginationLink
16
16
  )
17
- from pinexq_client.job_management.hcos.workdata_used_tags_query_result_hco import WorkDataUsedTagsLink
17
+ from pinexq_client.job_management.hcos.workdata_used_tags_query_result_hco import WorkDataUsedTagsLink, \
18
+ WorkDataUsedTagsAdminLink
18
19
  from pinexq_client.job_management.known_relations import Relations
19
20
  from pinexq_client.job_management.model import WorkDataQueryParameters, WorkDataUsedTagsFilterParameter
20
21
  from pinexq_client.job_management.model.sirenentities import WorkDataRootEntity
21
22
 
22
23
 
23
24
  class WorkDataQueryAction(ActionWithParametersHco[WorkDataQueryParameters]):
24
- def execute(self, parameters: WorkDataQueryParameters) -> WorkDataQueryResultHco:
25
- url = self._execute_returns_url(parameters)
26
- link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created query", MediaTypes.SIREN)
27
- # resolve link immediately
28
- return WorkDataQueryResultLink.from_link(self._client, link).navigate()
25
+ def execute(self, parameters: WorkDataQueryParameters) -> WorkDataQueryResultHco:
26
+ url = self._execute_returns_url(parameters)
27
+ link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created query", MediaTypes.SIREN)
28
+ # resolve link immediately
29
+ return WorkDataQueryResultLink.from_link(self._client, link).navigate()
29
30
 
30
- def default_parameters(self) -> WorkDataQueryParameters:
31
- return self._get_default_parameters(WorkDataQueryParameters, WorkDataQueryParameters())
31
+ def default_parameters(self) -> WorkDataQueryParameters:
32
+ return self._get_default_parameters(WorkDataQueryParameters, WorkDataQueryParameters())
32
33
 
33
34
 
34
35
  class WorkDataUsedTagsQueryAction(ActionWithParametersHco[WorkDataUsedTagsFilterParameter]):
35
- def execute(self, parameters: WorkDataUsedTagsFilterParameter) -> WorkDataUsedTagsLink:
36
- url = self._execute_returns_url(parameters)
37
- link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created query", MediaTypes.SIREN)
38
- return WorkDataUsedTagsLink.from_link(self._client, link)
36
+ def execute(self, parameters: WorkDataUsedTagsFilterParameter) -> WorkDataUsedTagsLink:
37
+ url = self._execute_returns_url(parameters)
38
+ link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Created query", MediaTypes.SIREN)
39
+ return WorkDataUsedTagsLink.from_link(self._client, link)
39
40
 
40
- def default_parameters(self) -> WorkDataUsedTagsFilterParameter:
41
- return self._get_default_parameters(WorkDataUsedTagsFilterParameter, WorkDataUsedTagsFilterParameter())
41
+ def default_parameters(self) -> WorkDataUsedTagsFilterParameter:
42
+ return self._get_default_parameters(WorkDataUsedTagsFilterParameter, WorkDataUsedTagsFilterParameter())
42
43
 
43
44
 
44
45
  class WorkDataUploadAction(UploadAction):
45
- def execute(self, parameters: UploadParameters) -> WorkDataLink:
46
- url = self._upload(parameters)
47
- link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Uploaded workdata", MediaTypes.SIREN)
48
- return WorkDataLink.from_link(self._client, link)
46
+ def execute(self, parameters: UploadParameters) -> WorkDataLink:
47
+ url = self._upload(parameters)
48
+ link = Link.from_url(url, [str(Relations.CREATED_RESSOURCE)], "Uploaded workdata", MediaTypes.SIREN)
49
+ return WorkDataLink.from_link(self._client, link)
49
50
 
50
51
 
51
52
  class WorkDataRootLink(LinkHco):
52
- def navigate(self) -> 'WorkDataRootHco':
53
- return WorkDataRootHco.from_entity(self._navigate_internal(WorkDataRootEntity), self._client)
53
+ def navigate(self) -> 'WorkDataRootHco':
54
+ return WorkDataRootHco.from_entity(self._navigate_internal(WorkDataRootEntity), self._client)
54
55
 
55
56
 
56
57
  class WorkDataRootHco(Hco[WorkDataRootEntity]):
57
- query_action: WorkDataQueryAction | UnavailableAction
58
- query_tags_action: WorkDataUsedTagsQueryAction | UnavailableAction
59
- upload_action: WorkDataUploadAction | None
60
-
61
- self_link: WorkDataRootLink
62
- all_link: WorkDataQueryResultPaginationLink | UnavailableLink
63
- used_tags_link: WorkDataUsedTagsLink | UnavailableLink
64
-
65
- @classmethod
66
- def from_entity(cls, entity: WorkDataRootEntity, client: httpx.Client) -> Self:
67
- instance = cls(client, entity)
68
- Hco.check_classes(instance._entity.class_, ["WorkDataRoot"])
69
-
70
- instance.query_action = WorkDataQueryAction.from_entity_optional(
71
- client, instance._entity, "CreateWorkDataQuery")
72
- instance.query_tags_action = WorkDataUsedTagsQueryAction.from_entity_optional(
73
- client, instance._entity, "CreateWorkDataTagsQuery")
74
- instance.upload_action = WorkDataUploadAction.from_entity_optional(
75
- client, instance._entity, "Upload")
76
-
77
- instance.self_link = WorkDataRootLink.from_entity(
78
- instance._client, instance._entity, Relations.SELF)
79
-
80
- instance.all_link = WorkDataQueryResultPaginationLink.from_entity_optional(
81
- instance._client, instance._entity, Relations.ALL)
82
-
83
- instance.used_tags_link = WorkDataUsedTagsLink.from_entity_optional(
84
- instance._client, instance._entity, Relations.USED_TAGS)
85
- return instance
58
+ query_action: WorkDataQueryAction | UnavailableAction
59
+ query_tags_action: WorkDataUsedTagsQueryAction | UnavailableAction
60
+ upload_action: WorkDataUploadAction | None
61
+
62
+ self_link: WorkDataRootLink
63
+ all_link: WorkDataQueryResultPaginationLink | UnavailableLink
64
+ used_tags_admin_link: WorkDataUsedTagsAdminLink | UnavailableLink
65
+ used_tags_link: WorkDataUsedTagsLink | UnavailableLink
66
+
67
+ @classmethod
68
+ def from_entity(cls, entity: WorkDataRootEntity, client: httpx.Client) -> Self:
69
+ instance = cls(client, entity)
70
+ Hco.check_classes(instance._entity.class_, ["WorkDataRoot"])
71
+
72
+ instance.query_action = WorkDataQueryAction.from_entity_optional(
73
+ client, instance._entity, "CreateWorkDataQuery")
74
+ instance.query_tags_action = WorkDataUsedTagsQueryAction.from_entity_optional(
75
+ client, instance._entity, "CreateWorkDataTagsQuery")
76
+ instance.upload_action = WorkDataUploadAction.from_entity_optional(
77
+ client, instance._entity, "Upload")
78
+
79
+ instance.self_link = WorkDataRootLink.from_entity(
80
+ instance._client, instance._entity, Relations.SELF)
81
+
82
+ instance.all_link = WorkDataQueryResultPaginationLink.from_entity_optional(
83
+ instance._client, instance._entity, Relations.ALL)
84
+
85
+ instance.used_tags_link = WorkDataUsedTagsLink.from_entity_optional(
86
+ instance._client, instance._entity, Relations.USED_TAGS)
87
+
88
+ instance.used_tags_admin_link = WorkDataUsedTagsAdminLink.from_entity_optional(
89
+ instance._client, instance._entity, Relations.USED_TAGS_ADMIN)
90
+
91
+ return instance
@@ -7,6 +7,7 @@ class Relations(StrEnum):
7
7
  DOWNLOAD = "Download"
8
8
  CREATED_RESSOURCE = "created-resource"
9
9
  USED_TAGS = "UsedTags"
10
+ USED_TAGS_ADMIN = "UsedTagsAdmin"
10
11
 
11
12
  # query pagination
12
13
  FIRST = "first"
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: openapi.json
3
- # timestamp: 2025-08-27T15:51:53+00:00
3
+ # timestamp: 2025-09-02T12:55:12+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -205,6 +205,14 @@ class JobStates(Enum):
205
205
  data_missing = 'DataMissing'
206
206
 
207
207
 
208
+ class JobUsedTagsAdminHtoOpenApiProperties(BaseModel):
209
+ model_config = ConfigDict(
210
+ extra='allow',
211
+ populate_by_name=True,
212
+ )
213
+ tags: List[str] | None = Field(None, alias='Tags')
214
+
215
+
208
216
  class JobUsedTagsHtoOpenApiProperties(BaseModel):
209
217
  model_config = ConfigDict(
210
218
  extra='allow',
@@ -343,6 +351,14 @@ class ProcessingStepSortProperties(Enum):
343
351
  last_modified_at = 'LastModifiedAt'
344
352
 
345
353
 
354
+ class ProcessingStepUsedTagsAdminHtoOpenApiProperties(BaseModel):
355
+ model_config = ConfigDict(
356
+ extra='allow',
357
+ populate_by_name=True,
358
+ )
359
+ tags: List[str] | None = Field(None, alias='Tags')
360
+
361
+
346
362
  class ProcessingStepUsedTagsHtoOpenApiProperties(BaseModel):
347
363
  model_config = ConfigDict(
348
364
  extra='allow',
@@ -523,6 +539,14 @@ class WorkDataSortPropertiesSortParameter(BaseModel):
523
539
  sort_type: SortTypes | None = Field(None, alias='SortType')
524
540
 
525
541
 
542
+ class WorkDataUsedTagsAdminQueryResultHtoOpenApiProperties(BaseModel):
543
+ model_config = ConfigDict(
544
+ extra='allow',
545
+ populate_by_name=True,
546
+ )
547
+ tags: List[str] | None = Field(None, alias='Tags')
548
+
549
+
526
550
  class WorkDataUsedTagsFilterParameter(BaseModel):
527
551
  model_config = ConfigDict(
528
552
  extra='allow',
@@ -751,6 +775,19 @@ class JobSortPropertiesSortParameter(BaseModel):
751
775
  sort_type: SortTypes | None = Field(None, alias='SortType')
752
776
 
753
777
 
778
+ class JobUsedTagsAdminHtoOpenApi(BaseModel):
779
+ model_config = ConfigDict(
780
+ extra='allow',
781
+ populate_by_name=True,
782
+ )
783
+ class_: List[str] | None = Field(None, alias='class')
784
+ title: str | None = None
785
+ properties: JobUsedTagsAdminHtoOpenApiProperties | None = None
786
+ entities: List | None = None
787
+ actions: List[Action] | None = None
788
+ links: List[Link] | None = None
789
+
790
+
754
791
  class JobUsedTagsHtoOpenApi(BaseModel):
755
792
  model_config = ConfigDict(
756
793
  extra='allow',
@@ -827,6 +864,19 @@ class ProcessingStepSortPropertiesSortParameter(BaseModel):
827
864
  sort_type: SortTypes | None = Field(None, alias='SortType')
828
865
 
829
866
 
867
+ class ProcessingStepUsedTagsAdminHtoOpenApi(BaseModel):
868
+ model_config = ConfigDict(
869
+ extra='allow',
870
+ populate_by_name=True,
871
+ )
872
+ class_: List[str] | None = Field(None, alias='class')
873
+ title: str | None = None
874
+ properties: ProcessingStepUsedTagsAdminHtoOpenApiProperties | None = None
875
+ entities: List | None = None
876
+ actions: List[Action] | None = None
877
+ links: List[Link] | None = None
878
+
879
+
830
880
  class ProcessingStepUsedTagsHtoOpenApi(BaseModel):
831
881
  model_config = ConfigDict(
832
882
  extra='allow',
@@ -933,6 +983,19 @@ class WorkDataRootHtoOpenApi(BaseModel):
933
983
  links: List[Link] | None = None
934
984
 
935
985
 
986
+ class WorkDataUsedTagsAdminQueryResultHtoOpenApi(BaseModel):
987
+ model_config = ConfigDict(
988
+ extra='allow',
989
+ populate_by_name=True,
990
+ )
991
+ class_: List[str] | None = Field(None, alias='class')
992
+ title: str | None = None
993
+ properties: WorkDataUsedTagsAdminQueryResultHtoOpenApiProperties | None = None
994
+ entities: List | None = None
995
+ actions: List[Action] | None = None
996
+ links: List[Link] | None = None
997
+
998
+
936
999
  class WorkDataUsedTagsQueryResultHtoOpenApi(BaseModel):
937
1000
  model_config = ConfigDict(
938
1001
  extra='allow',
@@ -16,7 +16,8 @@ from pinexq_client.job_management.model.open_api_generated import (
16
16
  JobUsedTagsHtoOpenApiProperties,
17
17
  ProcessingStepUsedTagsHtoOpenApiProperties,
18
18
  UserHtoOpenApiProperties,
19
- WorkDataUsedTagsQueryResultHtoOpenApiProperties,
19
+ WorkDataUsedTagsQueryResultHtoOpenApiProperties, JobUsedTagsAdminHtoOpenApiProperties,
20
+ ProcessingStepUsedTagsAdminHtoOpenApiProperties, WorkDataUsedTagsAdminQueryResultHtoOpenApiProperties,
20
21
  )
21
22
 
22
23
 
@@ -71,14 +72,26 @@ class WorkDataUsedTagsQueryResultEntity(Entity):
71
72
  properties: WorkDataUsedTagsQueryResultHtoOpenApiProperties | None = None
72
73
 
73
74
 
75
+ class WorkDataUsedTagsQueryResultEntityAdmin(Entity):
76
+ properties: WorkDataUsedTagsAdminQueryResultHtoOpenApiProperties | None = None
77
+
78
+
74
79
  class ProcessingStepUsedTagsEntity(Entity):
75
80
  properties: ProcessingStepUsedTagsHtoOpenApiProperties | None = None
76
81
 
77
82
 
83
+ class ProcessingStepUsedTagsEntityAdmin(Entity):
84
+ properties: ProcessingStepUsedTagsAdminHtoOpenApiProperties | None = None
85
+
86
+
78
87
  class JobUsedTagsEntity(Entity):
79
88
  properties: JobUsedTagsHtoOpenApiProperties | None = None
80
89
 
81
90
 
91
+ class JobUsedTagsEntityAdmin(Entity):
92
+ properties: JobUsedTagsAdminHtoOpenApiProperties | None = None
93
+
94
+
82
95
  # this needs to be added since the openapi.spec does not have this object.
83
96
  class InputDataSlotHtoProperties(BaseModel):
84
97
  model_config = ConfigDict(
@@ -222,7 +222,8 @@ class Job:
222
222
  function_version: str | None = None,
223
223
  *,
224
224
  processing_step_link: ProcessingStepLink | None = None,
225
- processing_step_instance: ProcessingStep | None = None
225
+ processing_step_instance: ProcessingStep | None = None,
226
+ raise_on_multiple: bool = False,
226
227
  ) -> Self:
227
228
  """Set the processing step for this job given by name. This will query all
228
229
  processing steps of this name from the server and select the first result.
@@ -232,6 +233,8 @@ class Job:
232
233
  function_version: Version of the processing step as string
233
234
  processing_step_link: A ProcessingStepLink instance pointing to the resource
234
235
  processing_step_instance: A ProcessingStep (not the Hco) instance
236
+ raise_on_multiple: If true, an exception is raised if multiple processing steps with the same name are found.
237
+ If false, the first processing step found is used.
235
238
 
236
239
  Returns:
237
240
  This `Job` object
@@ -256,12 +259,14 @@ class Job:
256
259
  filter=ProcessingStepFilterParameter(
257
260
  function_name=function_name,
258
261
  function_name_match_type=FunctionNameMatchTypes.match_exact,
259
- version=function_version,
262
+ version=function_version
260
263
  )
261
264
  )
262
265
  query_result = self._processing_step_root.query_action.execute(query_param)
263
- if len(query_result.processing_steps) != 1:
266
+ if len(query_result.processing_steps) == 0:
264
267
  raise NameError(f"No processing step with the name '{function_name}' registered!")
268
+ if raise_on_multiple and len(query_result.processing_steps) > 1:
269
+ raise NameError(f"Multiple processing steps with the name '{function_name}' registered!")
265
270
  # Todo: For now we choose the first and only result. Make this more flexible?
266
271
  processing_url = query_result.processing_steps[0].self_link.get_url()
267
272
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pinexq-client
3
- Version: 0.9.2.20250828.47
3
+ Version: 0.9.2.20250908.48
4
4
  Summary: A hypermedia-based client for the DataCybernetics PinexQ platform.
5
5
  Author-Email: =?utf-8?q?Sebastian_H=C3=B6fer?= <hoefer@data-cybernetics.com>, Mathias Reichardt <reichardt@data-cybernetics.com>, Jasim Ahmed <ahmed@data-cybernetics.com>, Pratik Poudel <poudel@data-cybernetics.com>
6
6
  Maintainer-Email: Mathias Reichardt <reichardt@data-cybernetics.com>, =?utf-8?q?Sebastian_H=C3=B6fer?= <hoefer@data-cybernetics.com>, Carsten Blank <blank@data-cybernetics.com>
@@ -1,7 +1,7 @@
1
- pinexq_client-0.9.2.20250828.47.dist-info/METADATA,sha256=sNt7390BNnmdQNl5x6vy00g5WHdCEcrVNrI7wHznt8w,3279
2
- pinexq_client-0.9.2.20250828.47.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
- pinexq_client-0.9.2.20250828.47.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
- pinexq_client-0.9.2.20250828.47.dist-info/licenses/LICENSE,sha256=3oz3tAhM7kOgRukkRe7wmh5T_HihZY77ZtJDJm91ZN8,1072
1
+ pinexq_client-0.9.2.20250908.48.dist-info/METADATA,sha256=Bp3T0G4Ozrs9AweAt_OkCk57UEwnQMCLDObnvj1zT2k,3279
2
+ pinexq_client-0.9.2.20250908.48.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
+ pinexq_client-0.9.2.20250908.48.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
+ pinexq_client-0.9.2.20250908.48.dist-info/licenses/LICENSE,sha256=3oz3tAhM7kOgRukkRe7wmh5T_HihZY77ZtJDJm91ZN8,1072
5
5
  pinexq_client/core/__init__.py,sha256=zO9vUuAl6AEokL-SqQO3Jl1qrxFBZPA2kH99VNZugEU,598
6
6
  pinexq_client/core/base_relations.py,sha256=oIUS58pkbMDdqm-3YOdsenhL1smtzeAk4fp7-U595MY,162
7
7
  pinexq_client/core/enterapi.py,sha256=eB4F2_t3lCbMgKhy-M-Sf_u9MhuJMO7OGh-GB-4Cc-8,731
@@ -21,7 +21,7 @@ pinexq_client/core/model/error.py,sha256=ZDbUlwsj7d8XPMolSSLTFwgs3RBLvOvgmlEtoBu
21
21
  pinexq_client/core/model/sirenmodels.py,sha256=vGRQlhM2cSa2caxQel91Jr48KWqM-vMYX32iaQCzIds,5547
22
22
  pinexq_client/core/polling.py,sha256=Z6VXn-PCGk4XX-4tQWZG59qJyCIS0eIrpPUORQDIGrs,1077
23
23
  pinexq_client/core/sirenaccess.py,sha256=F7eZI5Pz79el0D30SYNGsiS2qWaAZF_jrCrUy-q2GgY,6992
24
- pinexq_client/job_management/__init__.py,sha256=D2Q6OGe8JfDGnllwsHJe2risNVVp03UsP6wNsF0ge04,598
24
+ pinexq_client/job_management/__init__.py,sha256=r57IpGUgKXCZKAkAK7JBRHKrDtfDUAhzz-7EHvB9jng,598
25
25
  pinexq_client/job_management/enterjma.py,sha256=Ivl_jVPw_gaLyU5nKbywM-bbVGpn0MoCrZ0DMbJYf3s,1411
26
26
  pinexq_client/job_management/hcos/__init__.py,sha256=TZgs5kuBk3lSBxPfn5ehgbdUgzPy2jn1PC3Ea6VQY-k,584
27
27
  pinexq_client/job_management/hcos/entrypoint_hco.py,sha256=qodjAwO_MtawUuhmaYjhGXHV-uW1k94V9gKRYZRkhn4,2234
@@ -29,25 +29,25 @@ pinexq_client/job_management/hcos/info_hco.py,sha256=foAIojj0qzv5qXwW418CtYLFtdX
29
29
  pinexq_client/job_management/hcos/input_dataslot_hco.py,sha256=SDflhyW8kjpcTUfKAXnJxNR-etPzAHfoTqlYUcJZrxs,3442
30
30
  pinexq_client/job_management/hcos/job_hco.py,sha256=8Lq5RABq7XUp3Z6jhYegPgVPfm591-38eC8CCLes0KQ,8934
31
31
  pinexq_client/job_management/hcos/job_query_result_hco.py,sha256=I0G8YIlYDhTahLz8n06L8BywlcsMGNWUEsmEr4Sk0GU,3315
32
- pinexq_client/job_management/hcos/job_used_tags_hco.py,sha256=nys6E97NNXATdnvX6KZ46JR9qEb2lnqol9ZvJVEiNpQ,944
33
- pinexq_client/job_management/hcos/jobsroot_hco.py,sha256=5h_CYb9FyjpmAlvDXuK_AimCvomadFTcCSQ6QmMD0QY,4726
32
+ pinexq_client/job_management/hcos/job_used_tags_hco.py,sha256=JKbZerZRway_HU6ujXiBjgP9TlLho1WD0syTmivsZpk,1706
33
+ pinexq_client/job_management/hcos/jobsroot_hco.py,sha256=8ba2vFmTeVcW0GZrtUfyrxWt-OCTtKeGOc-NeCq1Rrg,4971
34
34
  pinexq_client/job_management/hcos/output_dataslot_hco.py,sha256=zxpo-fI9eHcp_pMKcf2l-gRoPHX1RzQO53auHMRB_T8,1549
35
35
  pinexq_client/job_management/hcos/processing_step_hco.py,sha256=HsG88iPHU4w8rHSTgmFvmXFnYPQBC2rZAXYJNJf_058,8371
36
- pinexq_client/job_management/hcos/processing_step_used_tags_hco.py,sha256=90-2IWlYTcYX62NzmAPnmcUCwMDhmMZyBrNs_G3yigs,1067
36
+ pinexq_client/job_management/hcos/processing_step_used_tags_hco.py,sha256=K4Ub5FVK5ge8CtUeit9D23MPjQTMTC-X75dS9561oyw,1947
37
37
  pinexq_client/job_management/hcos/processingstep_query_result_hco.py,sha256=YcCgigKvOIggILixgaEbmnM23FlkjCgxnhZC2Eh98dY,3817
38
- pinexq_client/job_management/hcos/processingsteproot_hco.py,sha256=gQBGMWEKX5kq_HwC7-eEjjfAm6oYTuIxGX5kKw_GKUM,3684
38
+ pinexq_client/job_management/hcos/processingsteproot_hco.py,sha256=MC7qxNMXwoKtMReSVzYiNqI_2MUdT3gbxoxULyYXU6c,4172
39
39
  pinexq_client/job_management/hcos/user_hco.py,sha256=6GZrNeUZSZxwOiyCylkfl-pqDa1RL7Lc9Lg3vf0EuYc,1095
40
40
  pinexq_client/job_management/hcos/workdata_hco.py,sha256=QI1m_IUWVBesCft9UR1svCRsWDz16moY7XMhWvfFGcE,7206
41
41
  pinexq_client/job_management/hcos/workdata_query_result_hco.py,sha256=yxEnu_COMxP3mt553JZD13jjPyqSp3DJjgd8es5Nq_E,3520
42
- pinexq_client/job_management/hcos/workdata_used_tags_query_result_hco.py,sha256=qB1iQpwD63579dq3tUF4DBB_rZRMqJ80y1ysf-41aOo,1087
43
- pinexq_client/job_management/hcos/workdataroot_hco.py,sha256=LdEPW2JJTqAWi-6zj-40lfREhthcDL6nPXQk_nfMtCA,3936
44
- pinexq_client/job_management/known_relations.py,sha256=f3-7RagAfeSFv9b54l5zxnLKbVQjQQHzYsM4W2QHf0Y,708
42
+ pinexq_client/job_management/hcos/workdata_used_tags_query_result_hco.py,sha256=oMHyG4NLOOPljzIE5324vVfo4zoGiNsQnT_HEuRi-nY,1991
43
+ pinexq_client/job_management/hcos/workdataroot_hco.py,sha256=92Q3J8q28XRL7cw1Ac5F_hl_Y5ZNaZ2gThYLbTIrka0,4441
44
+ pinexq_client/job_management/known_relations.py,sha256=S5vrvihwn4qZrtx8ItxLWH4Sds0MmDNWsa4zP2e_TNk,746
45
45
  pinexq_client/job_management/model/__init__.py,sha256=iuAKRXdW_Mxo0i3HsBfEzhJJZUKkNe3qs4gLW-ge1PU,63
46
- pinexq_client/job_management/model/open_api_generated.py,sha256=QBuNoOys6jd_LAguEjIN74qL0VzhF0DvsA-cKNT4Mec,34544
47
- pinexq_client/job_management/model/sirenentities.py,sha256=MUjgByEwzQcrduCEJuNK85uAj8SLTdyaiKmnlB44h3E,3430
46
+ pinexq_client/job_management/model/open_api_generated.py,sha256=-3K12nS3SVlEnquGxmqdARqqU_8uCOXrRgAWUMEOfq8,36437
47
+ pinexq_client/job_management/model/sirenentities.py,sha256=75ivnSU5OSuocITfluJ5o4o0CZldgtaP5PZqj4LhjJc,3950
48
48
  pinexq_client/job_management/tool/__init__.py,sha256=zPobd-hQyANHzC0-TjJG91z9XrewvE54ZJ6VViymW5M,128
49
- pinexq_client/job_management/tool/job.py,sha256=yVEVE3RRalQy8abA2G1X-a1Tj3v32YCsDeN52LDMSp8,30572
49
+ pinexq_client/job_management/tool/job.py,sha256=ILbHfSVSKDbVFw6boWpjHxktotKRPAfGIczIuyHchVM,31005
50
50
  pinexq_client/job_management/tool/job_group.py,sha256=TNWw46UDyP2gmArhbzMAqpHa6lS2hzwarLIrxxpOMnk,4822
51
51
  pinexq_client/job_management/tool/processing_step.py,sha256=-OysrLTN-Qc8JbYanOrqV0USSYhMY6gw4hH5DMgnOIc,12757
52
52
  pinexq_client/job_management/tool/workdata.py,sha256=E1Qt945tocXiSZuQo2IbTnlgW2VRnq2ODEFQ96lXTDI,6270
53
- pinexq_client-0.9.2.20250828.47.dist-info/RECORD,,
53
+ pinexq_client-0.9.2.20250908.48.dist-info/RECORD,,