pinexq-client 0.9.2.20250908.48__py3-none-any.whl → 0.10.3rc1__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.
@@ -1,104 +1,108 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pinexq-client
3
- Version: 0.9.2.20250908.48
3
+ Version: 0.10.3rc1
4
4
  Summary: A hypermedia-based client for the DataCybernetics PinexQ platform.
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
- 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>
5
+ Author: Sebastian Höfer, Mathias Reichardt, Jasim Ahmed, Pratik Poudel
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>
7
7
  License: MIT
8
+ Requires-Dist: pydantic>=2.1.0,<3.0.0
9
+ Requires-Dist: httpx>=0.25.0,<1.0.0
10
+ Requires-Dist: httpx-sse>=0.4.0
11
+ Requires-Dist: httpx-caching>=0.1a4
12
+ Maintainer: Mathias Reichardt, Sebastian Höfer, Carsten Blank
13
+ Maintainer-email: Mathias Reichardt <reichardt@data-cybernetics.com>, Sebastian Höfer <hoefer@data-cybernetics.com>, Carsten Blank <blank@data-cybernetics.com>
8
14
  Requires-Python: >=3.11
9
- Requires-Dist: pydantic<3.0.0,>=2.1.0
10
- Requires-Dist: httpx<1.0.0,>=0.25.0
11
15
  Description-Content-Type: text/markdown
12
16
 
13
- # Pine-x-Q Python Client
14
-
15
- A hypermedia-based client for the DataCybernetics PinexQ platform.
16
-
17
- This module contains the submodules:
18
-
19
- - `core`: A generic *hypermedia client* (HC) to work with siren hypermedia APIs
20
- [Siren on GitHub](https://github.com/kevinswiber/siren)
21
-
22
- - `job_management`: Specialized HC-object (HCO) implementations for the PinexQ *Job-Management API* (JMA).
23
-
24
- ## Installation
25
-
26
- Install from PyPI by running
27
-
28
- ```pip install pinexq-client```
29
-
30
- ## Setup the Client
31
-
32
- The hypermedia client uses [HTTPX](https://github.com/projectdiscovery/httpx) as a backend.
33
- To access the API you need to provide a pre-configured HTTPX-client with a valid API key for authentication.
34
- From The API key the user and permissions are derived so do not share the API key and store it securely.
35
-
36
- To initialize the client parts must be supplied:
37
-
38
- - The API key (as header)
39
- - The API host as URL with port if required
40
-
41
- ```python
42
- from httpx import Client
43
-
44
- from pinexq_client.job_management.enterjma import enter_jma
45
- from pinexq_client.job_management.hcos.entrypoint_hco import EntryPointHco
46
-
47
- client = Client(
48
- base_url="https://myapihost.com:80",
49
- headers={'x-api-key': '<SECRET_PAT>'}
50
- )
51
-
52
- # the client is now ready to be passed to function entering the API
53
- entrypoint: EntryPointHco = enter_jma(client)
54
- ```
55
-
56
-
57
- ## Using the API
58
-
59
-
60
- ### Job-Management Interface
61
-
62
- There is a convenience layer wrapping job-management-specific objects in interface classes for ease of use.
63
-
64
- ```python
65
- from pinexq_client.job_management.tool import Job
66
- from pinexq_client.job_management.model import JobStates
67
-
68
- job = (
69
- Job(client)
70
- .create(name="JobName")
71
- .select_processing(processing_step="step_function_name")
72
- .configure_parameters(param_name="value")
73
- .start()
74
- .wait_for_state(JobStates.completed)
75
- )
76
- result = job.get_result()
77
- ```
78
-
79
- ### Raw Hypermedia API
80
-
81
- In the spirit of a hypermedia API you can also use low level calls to navigate the API,
82
- e.g. when features are not yet exposed in the convenience wrapper.
83
-
84
- ```python
85
- from pinexq_client.job_management.enterjma import enter_jma
86
- from pinexq_client.job_management.hcos.entrypoint_hco import EntryPointHco
87
- from pinexq_client.job_management.model import CreateJobParameters, SetJobTagsParameters
88
-
89
- entrypoint: EntryPointHco = enter_jma(client)
90
- # Get to jobs root
91
- job_root = entrypoint.job_root_link.navigate()
92
- # Create a new job
93
- parameters = CreateJobParameters(name="Test Job")
94
- job = job_root.create_job_action.execute(parameters).navigate()
95
- # Edit the job's tags
96
- job.edit_tags_action.execute(SetJobTagsParameters(tags=["test", ]))
97
-
98
- ...
99
- ```
100
-
101
-
102
-
103
-
104
-
17
+ # Pine-x-Q Python Client
18
+
19
+ A hypermedia-based client for the DataCybernetics PinexQ platform.
20
+
21
+ This module contains the submodules:
22
+
23
+ - `core`: A generic *hypermedia client* (HC) to work with siren hypermedia APIs
24
+ [Siren on GitHub](https://github.com/kevinswiber/siren)
25
+
26
+ - `job_management`: Specialized HC-object (HCO) implementations for the PinexQ *Job-Management API* (JMA).
27
+
28
+ ## Installation
29
+
30
+ Install from PyPI by running
31
+
32
+ ```pip install pinexq-client```
33
+
34
+ ## Setup the Client
35
+
36
+ The hypermedia client uses [HTTPX](https://github.com/projectdiscovery/httpx) as a backend.
37
+ To access the API you need to provide a pre-configured HTTPX-client with a valid API key for authentication.
38
+ From The API key the user and permissions are derived so do not share the API key and store it securely.
39
+
40
+ To initialize the client parts must be supplied:
41
+
42
+ - The API key (as header)
43
+ - The API host as URL with port if required
44
+
45
+ ```python
46
+ from httpx import Client
47
+
48
+ from pinexq_client.job_management.enterjma import enter_jma
49
+ from pinexq_client.job_management.hcos.entrypoint_hco import EntryPointHco
50
+
51
+ client = Client(
52
+ base_url="https://myapihost.com:80",
53
+ headers={'x-api-key': '<SECRET_PAT>'}
54
+ )
55
+
56
+ # the client is now ready to be passed to function entering the API
57
+ entrypoint: EntryPointHco = enter_jma(client)
58
+ ```
59
+
60
+
61
+ ## Using the API
62
+
63
+
64
+ ### Job-Management Interface
65
+
66
+ There is a convenience layer wrapping job-management-specific objects in interface classes for ease of use.
67
+
68
+ ```python
69
+ from pinexq_client.job_management.tool import Job
70
+ from pinexq_client.job_management.model import JobStates
71
+
72
+ job = (
73
+ Job(client)
74
+ .create(name="JobName")
75
+ .select_processing(processing_step="step_function_name")
76
+ .configure_parameters(param_name="value")
77
+ .start()
78
+ .wait_for_completion()
79
+ )
80
+ result = job.get_result()
81
+ ```
82
+
83
+ ### Raw Hypermedia API
84
+
85
+ In the spirit of a hypermedia API you can also use low level calls to navigate the API,
86
+ e.g. when features are not yet exposed in the convenience wrapper.
87
+
88
+ ```python
89
+ from pinexq_client.job_management.enterjma import enter_jma
90
+ from pinexq_client.job_management.hcos.entrypoint_hco import EntryPointHco
91
+ from pinexq_client.job_management.model import CreateJobParameters, SetJobTagsParameters
92
+
93
+ entrypoint: EntryPointHco = enter_jma(client)
94
+ # Get to jobs root
95
+ job_root = entrypoint.job_root_link.navigate()
96
+ # Create a new job
97
+ parameters = CreateJobParameters(name="Test Job")
98
+ job = job_root.create_job_action.execute(parameters).navigate()
99
+ # Edit the job's tags
100
+ job.edit_tags_action.execute(SetJobTagsParameters(tags=["test", ]))
101
+
102
+ ...
103
+ ```
104
+
105
+
106
+
107
+
108
+
@@ -1,8 +1,5 @@
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
1
  pinexq_client/core/__init__.py,sha256=zO9vUuAl6AEokL-SqQO3Jl1qrxFBZPA2kH99VNZugEU,598
2
+ pinexq_client/core/api_event_manager.py,sha256=2V_y8T-e1ebnPcr0M9XGI1DYq3FTw0M_GrNmaNwfSVw,5348
6
3
  pinexq_client/core/base_relations.py,sha256=oIUS58pkbMDdqm-3YOdsenhL1smtzeAk4fp7-U595MY,162
7
4
  pinexq_client/core/enterapi.py,sha256=eB4F2_t3lCbMgKhy-M-Sf_u9MhuJMO7OGh-GB-4Cc-8,731
8
5
  pinexq_client/core/exceptions.py,sha256=NqB3y1ufjOfG3kv7Rz4ppXqJRAugt2zlgxkto2nIVQU,2228
@@ -10,7 +7,7 @@ pinexq_client/core/hco/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
10
7
  pinexq_client/core/hco/action_hco.py,sha256=6bWea-SkFjn52m5sYywkZeNOe74Nxmsvj338jSB6RZo,2338
11
8
  pinexq_client/core/hco/action_with_parameters_hco.py,sha256=qvtoqTfDHddxB0ALanWXNDobSpazCmK2_ulTuvax2A4,3280
12
9
  pinexq_client/core/hco/download_link_hco.py,sha256=_ijLtRfzy0qKG_QXpsWBZ8FJfp60o5Lw7QVv4_EpgPY,1335
13
- pinexq_client/core/hco/hco_base.py,sha256=NglQuS6p1EimgtIx55G8ngBDGXc4lzyq08jsXzztE1I,3367
10
+ pinexq_client/core/hco/hco_base.py,sha256=u37c9bmjX_Ug49XgCHWdtrj7jrYIVQHkYllQQoijLGw,3534
14
11
  pinexq_client/core/hco/link_hco.py,sha256=XUk8anEu4hJET0ytKooB7-2Ntuzfes1rQziYXRE6D40,3845
15
12
  pinexq_client/core/hco/unavailable.py,sha256=CBJN_YnQRPPTwYr-3MIXQIgYXIDLw9ozIM2TNo0uewY,942
16
13
  pinexq_client/core/hco/upload_action_hco.py,sha256=oOGw0Z_nx67CbqJ-QkQJbffdXajBgKmBAfSfFtyq8wk,4690
@@ -19,20 +16,20 @@ pinexq_client/core/media_types.py,sha256=GhrTEXqIb4vAM9Bl-i3WybYiL3T_Uy1Eu6hvLN7
19
16
  pinexq_client/core/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
17
  pinexq_client/core/model/error.py,sha256=ZDbUlwsj7d8XPMolSSLTFwgs3RBLvOvgmlEtoBuon5Y,418
21
18
  pinexq_client/core/model/sirenmodels.py,sha256=vGRQlhM2cSa2caxQel91Jr48KWqM-vMYX32iaQCzIds,5547
22
- pinexq_client/core/polling.py,sha256=Z6VXn-PCGk4XX-4tQWZG59qJyCIS0eIrpPUORQDIGrs,1077
19
+ pinexq_client/core/polling.py,sha256=nNEDONEkB3Gu5WUMm2u9RFG1OIclnixaiy7l_U2Z4No,1146
23
20
  pinexq_client/core/sirenaccess.py,sha256=F7eZI5Pz79el0D30SYNGsiS2qWaAZF_jrCrUy-q2GgY,6992
24
- pinexq_client/job_management/__init__.py,sha256=r57IpGUgKXCZKAkAK7JBRHKrDtfDUAhzz-7EHvB9jng,598
25
- pinexq_client/job_management/enterjma.py,sha256=Ivl_jVPw_gaLyU5nKbywM-bbVGpn0MoCrZ0DMbJYf3s,1411
21
+ pinexq_client/job_management/__init__.py,sha256=of3nrM8wMG-rvSDV4cTN6CyDaxdtBw1h7P4odkgF7CA,598
22
+ pinexq_client/job_management/enterjma.py,sha256=A9Uo9QSJAuAm9oHAhs0BIpEat77cRuWZvJ5zEOijhPs,3386
26
23
  pinexq_client/job_management/hcos/__init__.py,sha256=TZgs5kuBk3lSBxPfn5ehgbdUgzPy2jn1PC3Ea6VQY-k,584
27
- pinexq_client/job_management/hcos/entrypoint_hco.py,sha256=qodjAwO_MtawUuhmaYjhGXHV-uW1k94V9gKRYZRkhn4,2234
28
- pinexq_client/job_management/hcos/info_hco.py,sha256=foAIojj0qzv5qXwW418CtYLFtdX78AwyzSljtkig1zU,1366
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
29
26
  pinexq_client/job_management/hcos/input_dataslot_hco.py,sha256=SDflhyW8kjpcTUfKAXnJxNR-etPzAHfoTqlYUcJZrxs,3442
30
27
  pinexq_client/job_management/hcos/job_hco.py,sha256=8Lq5RABq7XUp3Z6jhYegPgVPfm591-38eC8CCLes0KQ,8934
31
28
  pinexq_client/job_management/hcos/job_query_result_hco.py,sha256=I0G8YIlYDhTahLz8n06L8BywlcsMGNWUEsmEr4Sk0GU,3315
32
29
  pinexq_client/job_management/hcos/job_used_tags_hco.py,sha256=JKbZerZRway_HU6ujXiBjgP9TlLho1WD0syTmivsZpk,1706
33
30
  pinexq_client/job_management/hcos/jobsroot_hco.py,sha256=8ba2vFmTeVcW0GZrtUfyrxWt-OCTtKeGOc-NeCq1Rrg,4971
34
31
  pinexq_client/job_management/hcos/output_dataslot_hco.py,sha256=zxpo-fI9eHcp_pMKcf2l-gRoPHX1RzQO53auHMRB_T8,1549
35
- pinexq_client/job_management/hcos/processing_step_hco.py,sha256=HsG88iPHU4w8rHSTgmFvmXFnYPQBC2rZAXYJNJf_058,8371
32
+ pinexq_client/job_management/hcos/processing_step_hco.py,sha256=9WkAzoRCrQw_og8Y7fTio3TRTI8EowOJPxq9MNCQKX8,12657
36
33
  pinexq_client/job_management/hcos/processing_step_used_tags_hco.py,sha256=K4Ub5FVK5ge8CtUeit9D23MPjQTMTC-X75dS9561oyw,1947
37
34
  pinexq_client/job_management/hcos/processingstep_query_result_hco.py,sha256=YcCgigKvOIggILixgaEbmnM23FlkjCgxnhZC2Eh98dY,3817
38
35
  pinexq_client/job_management/hcos/processingsteproot_hco.py,sha256=MC7qxNMXwoKtMReSVzYiNqI_2MUdT3gbxoxULyYXU6c,4172
@@ -41,13 +38,15 @@ pinexq_client/job_management/hcos/workdata_hco.py,sha256=QI1m_IUWVBesCft9UR1svCR
41
38
  pinexq_client/job_management/hcos/workdata_query_result_hco.py,sha256=yxEnu_COMxP3mt553JZD13jjPyqSp3DJjgd8es5Nq_E,3520
42
39
  pinexq_client/job_management/hcos/workdata_used_tags_query_result_hco.py,sha256=oMHyG4NLOOPljzIE5324vVfo4zoGiNsQnT_HEuRi-nY,1991
43
40
  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
41
+ pinexq_client/job_management/known_relations.py,sha256=Xe5QhDZY_0bH6Bdqb-DJdh8Mu8Uhcas3kF2v1UJe56A,874
45
42
  pinexq_client/job_management/model/__init__.py,sha256=iuAKRXdW_Mxo0i3HsBfEzhJJZUKkNe3qs4gLW-ge1PU,63
46
- pinexq_client/job_management/model/open_api_generated.py,sha256=-3K12nS3SVlEnquGxmqdARqqU_8uCOXrRgAWUMEOfq8,36437
43
+ pinexq_client/job_management/model/open_api_generated.py,sha256=l5TroQbIM1ho0-CpwseorQ2nehDx4LwdrCmSeeLIsMc,39658
47
44
  pinexq_client/job_management/model/sirenentities.py,sha256=75ivnSU5OSuocITfluJ5o4o0CZldgtaP5PZqj4LhjJc,3950
48
45
  pinexq_client/job_management/tool/__init__.py,sha256=zPobd-hQyANHzC0-TjJG91z9XrewvE54ZJ6VViymW5M,128
49
- pinexq_client/job_management/tool/job.py,sha256=ILbHfSVSKDbVFw6boWpjHxktotKRPAfGIczIuyHchVM,31005
50
- pinexq_client/job_management/tool/job_group.py,sha256=TNWw46UDyP2gmArhbzMAqpHa6lS2hzwarLIrxxpOMnk,4822
51
- pinexq_client/job_management/tool/processing_step.py,sha256=-OysrLTN-Qc8JbYanOrqV0USSYhMY6gw4hH5DMgnOIc,12757
46
+ pinexq_client/job_management/tool/job.py,sha256=pD8O47N5okIOflVADy-9MSSDll1aSoV3CCyfzJxejG4,34262
47
+ pinexq_client/job_management/tool/job_group.py,sha256=olwnPNqfT32XtLKJOzoq7j_Hb6NovUxy6YRJtQgLsW0,11221
48
+ pinexq_client/job_management/tool/processing_step.py,sha256=3_KIk5IPqKXuJw4Gn3S6t2TYPf_EBCxZhBpHZqEHfUQ,16797
52
49
  pinexq_client/job_management/tool/workdata.py,sha256=E1Qt945tocXiSZuQo2IbTnlgW2VRnq2ODEFQ96lXTDI,6270
53
- pinexq_client-0.9.2.20250908.48.dist-info/RECORD,,
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,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.9.14
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -1,4 +0,0 @@
1
- Wheel-Version: 1.0
2
- Generator: pdm-backend (2.4.5)
3
- Root-Is-Purelib: true
4
- Tag: py3-none-any
@@ -1,4 +0,0 @@
1
- [console_scripts]
2
-
3
- [gui_scripts]
4
-
@@ -1,19 +0,0 @@
1
- Copyright 2024 data cybernetics ssc GmbH
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining a copy of
4
- this software and associated documentation files (the “Software”), to deal in
5
- the Software without restriction, including without limitation the rights to
6
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
- of the Software, and to permit persons to whom the Software is furnished to do
8
- so, subject to the following conditions:
9
-
10
- The above copyright notice and this permission notice shall be included in all
11
- copies or substantial portions of the Software.
12
-
13
- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
- SOFTWARE.