processcube-etw-library 2026.1.30.154257__tar.gz → 2026.2.3.94459b0__tar.gz
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.
- {processcube_etw_library-2026.1.30.154257/src/processcube_etw_library.egg-info → processcube_etw_library-2026.2.3.94459b0}/PKG-INFO +2 -1
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/pyproject.toml +1 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/base_client.py +18 -20
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0/src/processcube_etw_library.egg-info}/PKG-INFO +2 -1
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library.egg-info/requires.txt +1 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/uv.lock +484 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/.github/workflows/build_and_publish.yml +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/.gitignore +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/.python-version +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/README.md +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/setup.cfg +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/create_external_task_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/etw_app.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/built_in.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/check.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/handlers.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/models.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/registry.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/health/routes.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/identity_provider.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/app_info/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/app_info/app_info_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/client_factory.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/base_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/application_info.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/data_object_instances.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/empty_tasks.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/events.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/external_tasks.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/flow_node_instances.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/manual_tasks.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/process_definitions.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/process_instances.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/process_models.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/api/helpers/user_tasks.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/core/loop_helper.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/event/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/event/event_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/external_task/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/external_task/client_wrapper.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/external_task/external_task_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/external_task/external_task_worker.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/external_task/functional_error.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/flow_node_instance/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/flow_node_instance/flow_node_instance_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/notification/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/notification/notification_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/process_definition/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/process_definition/process_definition_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/process_definition/start_callback_type.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/process_instance/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/process_instance/process_instance_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/user_task/__init__.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/processcube_client/user_task/user_task_client.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/server_config.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/settings.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library/typed_handler.py +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library.egg-info/SOURCES.txt +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library.egg-info/dependency_links.txt +0 -0
- {processcube_etw_library-2026.1.30.154257 → processcube_etw_library-2026.2.3.94459b0}/src/processcube_etw_library.egg-info/top_level.txt +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: processcube-etw-library
|
|
3
|
-
Version: 2026.
|
|
3
|
+
Version: 2026.2.3.94459b0
|
|
4
4
|
Summary: A library to create ETW apps with the ProcessCube platform.
|
|
5
5
|
Author-email: Jeremy Hill <jeremy.hill@profection.de>
|
|
6
6
|
License: MIT
|
|
7
7
|
Requires-Python: >=3.12
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: aiohttp>=3.13.3
|
|
9
10
|
Requires-Dist: async-lru>=2.1.0
|
|
10
11
|
Requires-Dist: dataclasses-json>=0.6.7
|
|
11
12
|
Requires-Dist: fastapi[standard]>=0.128.0
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import aiohttp
|
|
3
|
-
import json
|
|
4
3
|
import logging
|
|
5
4
|
|
|
6
5
|
logger = logging.getLogger(__name__)
|
|
@@ -38,6 +37,7 @@ def run_async_in_sync_context(coro):
|
|
|
38
37
|
# Loop is running but we're not in it - this can happen with nest_asyncio
|
|
39
38
|
# In this case, we need to schedule the coroutine on the existing loop
|
|
40
39
|
import concurrent.futures
|
|
40
|
+
|
|
41
41
|
future = asyncio.run_coroutine_threadsafe(coro, loop)
|
|
42
42
|
return future.result()
|
|
43
43
|
except RuntimeError:
|
|
@@ -56,7 +56,6 @@ def run_async_in_sync_context(coro):
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
class BaseClient:
|
|
59
|
-
|
|
60
59
|
def __init__(self, url, session=None, identity=None):
|
|
61
60
|
self._url = url
|
|
62
61
|
self._session = session
|
|
@@ -70,7 +69,7 @@ class BaseClient:
|
|
|
70
69
|
return self
|
|
71
70
|
|
|
72
71
|
async def __aexit__(self, exception_type, exception_value, traceback):
|
|
73
|
-
await self.close()
|
|
72
|
+
await self.close()
|
|
74
73
|
|
|
75
74
|
async def close(self):
|
|
76
75
|
if self._session:
|
|
@@ -78,13 +77,12 @@ class BaseClient:
|
|
|
78
77
|
|
|
79
78
|
async def do_get(self, path, options={}):
|
|
80
79
|
headers = self.__get_default_headers()
|
|
81
|
-
headers.update(options.get(
|
|
80
|
+
headers.update(options.get("headers", {}))
|
|
82
81
|
headers.update(self.__get_auth_headers())
|
|
83
82
|
|
|
84
83
|
request_url = f"{self._url}{path}"
|
|
85
84
|
|
|
86
85
|
async with aiohttp.ClientSession() as session:
|
|
87
|
-
|
|
88
86
|
current_session = self._session if self._session else session
|
|
89
87
|
|
|
90
88
|
async with current_session.get(request_url, headers=headers) as response:
|
|
@@ -94,13 +92,12 @@ class BaseClient:
|
|
|
94
92
|
|
|
95
93
|
async def do_delete(self, path, options={}):
|
|
96
94
|
headers = self.__get_default_headers()
|
|
97
|
-
headers.update(options.get(
|
|
95
|
+
headers.update(options.get("headers", {}))
|
|
98
96
|
headers.update(self.__get_auth_headers())
|
|
99
97
|
|
|
100
98
|
request_url = f"{self._url}{path}"
|
|
101
99
|
|
|
102
100
|
async with aiohttp.ClientSession() as session:
|
|
103
|
-
|
|
104
101
|
current_session = self._session if self._session else session
|
|
105
102
|
|
|
106
103
|
async with current_session.delete(request_url, headers=headers) as response:
|
|
@@ -110,7 +107,7 @@ class BaseClient:
|
|
|
110
107
|
|
|
111
108
|
async def do_post(self, path, payload, options={}):
|
|
112
109
|
headers = self.__get_default_headers()
|
|
113
|
-
headers.update(options.get(
|
|
110
|
+
headers.update(options.get("headers", {}))
|
|
114
111
|
headers.update(self.__get_auth_headers())
|
|
115
112
|
|
|
116
113
|
request_url = f"{self._url}{path}"
|
|
@@ -118,10 +115,11 @@ class BaseClient:
|
|
|
118
115
|
logger.debug(f"post request to {request_url} with json payload {payload}")
|
|
119
116
|
|
|
120
117
|
async with aiohttp.ClientSession() as session:
|
|
121
|
-
|
|
122
118
|
current_session = self._session if self._session else session
|
|
123
119
|
|
|
124
|
-
async with current_session.post(
|
|
120
|
+
async with current_session.post(
|
|
121
|
+
request_url, json=payload, headers=headers
|
|
122
|
+
) as response:
|
|
125
123
|
logger.debug(f"handle response {response.status}")
|
|
126
124
|
response.raise_for_status()
|
|
127
125
|
if response.status in [200, 201, 202]:
|
|
@@ -130,10 +128,10 @@ class BaseClient:
|
|
|
130
128
|
return ""
|
|
131
129
|
else:
|
|
132
130
|
raise Exception(f"TODO: need a better error {response.status}")
|
|
133
|
-
|
|
131
|
+
|
|
134
132
|
async def do_put(self, path, payload, options={}):
|
|
135
133
|
headers = self.__get_default_headers()
|
|
136
|
-
headers.update(options.get(
|
|
134
|
+
headers.update(options.get("headers", {}))
|
|
137
135
|
headers.update(self.__get_auth_headers())
|
|
138
136
|
|
|
139
137
|
request_url = f"{self._url}{path}"
|
|
@@ -141,10 +139,11 @@ class BaseClient:
|
|
|
141
139
|
logger.debug(f"put request to {request_url} with json payload {payload}")
|
|
142
140
|
|
|
143
141
|
async with aiohttp.ClientSession() as session:
|
|
144
|
-
|
|
145
142
|
current_session = self._session if self._session else session
|
|
146
143
|
|
|
147
|
-
async with current_session.put(
|
|
144
|
+
async with current_session.put(
|
|
145
|
+
request_url, json=payload, headers=headers
|
|
146
|
+
) as response:
|
|
148
147
|
logger.debug(f"handle response {response.status}")
|
|
149
148
|
response.raise_for_status()
|
|
150
149
|
if response.status in [200, 201, 202]:
|
|
@@ -153,17 +152,17 @@ class BaseClient:
|
|
|
153
152
|
return ""
|
|
154
153
|
else:
|
|
155
154
|
raise Exception(f"TODO: need a better error {response.status}")
|
|
156
|
-
|
|
155
|
+
|
|
157
156
|
async def get_serverinfo(self):
|
|
158
|
-
return await self.do_get(
|
|
157
|
+
return await self.do_get("/atlas_engine/api/v1/info")
|
|
159
158
|
|
|
160
159
|
def __get_auth_headers(self):
|
|
161
160
|
identity = self.__get_identity()
|
|
162
|
-
token = identity[
|
|
163
|
-
return {
|
|
161
|
+
token = identity["token"]
|
|
162
|
+
return {"Authorization": "Bearer {}".format(token)}
|
|
164
163
|
|
|
165
164
|
def __get_default_headers(self):
|
|
166
|
-
return {
|
|
165
|
+
return {"Content-Type": "application/json"}
|
|
167
166
|
|
|
168
167
|
def __get_identity(self):
|
|
169
168
|
identity = self._identity
|
|
@@ -172,4 +171,3 @@ class BaseClient:
|
|
|
172
171
|
identity = self._identity()
|
|
173
172
|
|
|
174
173
|
return identity
|
|
175
|
-
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: processcube-etw-library
|
|
3
|
-
Version: 2026.
|
|
3
|
+
Version: 2026.2.3.94459b0
|
|
4
4
|
Summary: A library to create ETW apps with the ProcessCube platform.
|
|
5
5
|
Author-email: Jeremy Hill <jeremy.hill@profection.de>
|
|
6
6
|
License: MIT
|
|
7
7
|
Requires-Python: >=3.12
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: aiohttp>=3.13.3
|
|
9
10
|
Requires-Dist: async-lru>=2.1.0
|
|
10
11
|
Requires-Dist: dataclasses-json>=0.6.7
|
|
11
12
|
Requires-Dist: fastapi[standard]>=0.128.0
|