esd-services-api-client 2.2.1__tar.gz → 2.2.2__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.
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/PKG-INFO +1 -1
- esd_services_api_client-2.2.2/esd_services_api_client/_version.py +1 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/crystal/_connector.py +4 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/crystal/_models.py +12 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/telemetry/recorder.py +20 -12
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/pyproject.toml +1 -1
- esd_services_api_client-2.2.1/esd_services_api_client/_version.py +0 -1
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/LICENSE +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/README.md +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/beast/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/beast/v3/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/beast/v3/_connector.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/beast/v3/_models.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/boxer/README.md +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/boxer/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/boxer/_auth.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/boxer/_base.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/boxer/_connector.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/boxer/_models.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/common/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/crystal/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/crystal/_api_versions.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/README.md +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/abstractions/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/abstractions/algrorithm_cache.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/abstractions/input_object.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/abstractions/logger_factory.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/abstractions/nexus_object.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/abstractions/socket_provider.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/_baseline_algorithm.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/_remote_algorithm.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/distributed.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/forked_algorithm.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/minimalistic.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/algorithms/recursive.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/configurations/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/configurations/algorithm_configuration.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/core/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/core/app_core.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/core/app_dependencies.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/exceptions/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/exceptions/_nexus_error.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/exceptions/cache_errors.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/exceptions/input_reader_error.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/exceptions/startup_error.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/input/__init__.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/input/input_processor.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/input/input_reader.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/input/payload_reader.py +0 -0
- {esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/nexus/telemetry/__init__.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '2.2.2'
|
@@ -37,6 +37,7 @@ from esd_services_api_client.crystal._models import (
|
|
37
37
|
AlgorithmRequest,
|
38
38
|
AlgorithmConfiguration,
|
39
39
|
RequestLifeCycleStage,
|
40
|
+
ParentRequest,
|
40
41
|
)
|
41
42
|
|
42
43
|
T = TypeVar("T") # pylint: disable=C0103
|
@@ -154,6 +155,7 @@ class CrystalConnector:
|
|
154
155
|
algorithm: str,
|
155
156
|
payload: Dict,
|
156
157
|
custom_config: Optional[AlgorithmConfiguration] = None,
|
158
|
+
parent_request: Optional[ParentRequest] = None,
|
157
159
|
tag: Optional[str] = None,
|
158
160
|
) -> str:
|
159
161
|
"""
|
@@ -162,6 +164,7 @@ class CrystalConnector:
|
|
162
164
|
:param algorithm: Name of a connected algorithm.
|
163
165
|
:param payload: Algorithm payload.
|
164
166
|
:param custom_config: Customized config for this run.
|
167
|
+
:param parent_request: Parent request for this run.
|
165
168
|
:param tag: Client-side submission identifier.
|
166
169
|
:return: Request identifier assigned to the job by Crystal.
|
167
170
|
"""
|
@@ -176,6 +179,7 @@ class CrystalConnector:
|
|
176
179
|
algorithm_name=algorithm,
|
177
180
|
algorithm_parameters=payload,
|
178
181
|
custom_configuration=custom_config,
|
182
|
+
parent_request=parent_request,
|
179
183
|
tag=tag,
|
180
184
|
).to_dict()
|
181
185
|
|
@@ -133,6 +133,17 @@ class AlgorithmConfiguration(DataClassJsonMixin):
|
|
133
133
|
speculative_attempts: Optional[int] = None
|
134
134
|
|
135
135
|
|
136
|
+
@dataclass_json(letter_case=LetterCase.CAMEL)
|
137
|
+
@dataclass
|
138
|
+
class ParentRequest(DataClassJsonMixin):
|
139
|
+
"""
|
140
|
+
Used to specify crystal parent job for a new crystal job.
|
141
|
+
"""
|
142
|
+
|
143
|
+
request_id: Optional[str] = None
|
144
|
+
algorithm_name: Optional[str] = None
|
145
|
+
|
146
|
+
|
136
147
|
@dataclass_json(letter_case=LetterCase.CAMEL)
|
137
148
|
@dataclass
|
138
149
|
class AlgorithmRequest(DataClassJsonMixin):
|
@@ -143,4 +154,5 @@ class AlgorithmRequest(DataClassJsonMixin):
|
|
143
154
|
algorithm_parameters: Dict
|
144
155
|
algorithm_name: Optional[str] = None
|
145
156
|
custom_configuration: Optional[AlgorithmConfiguration] = None
|
157
|
+
parent_request: Optional[ParentRequest] = None
|
146
158
|
tag: Optional[str] = None
|
@@ -59,18 +59,26 @@ class TelemetryRecorder(NexusCoreObject):
|
|
59
59
|
entity_name=entity_name,
|
60
60
|
run_id=run_id,
|
61
61
|
)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
)
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
62
|
+
if not isinstance(entity_to_record, dict) and not isinstance(
|
63
|
+
entity_to_record, pd.DataFrame
|
64
|
+
):
|
65
|
+
self._logger.warning(
|
66
|
+
"Unsupported data type: {telemetry_entity_type}. Telemetry recording skipped.",
|
67
|
+
telemetry_entity_type=type(entity_to_record),
|
68
|
+
)
|
69
|
+
else:
|
70
|
+
self._storage_client.save_data_as_blob(
|
71
|
+
data=entity_to_record,
|
72
|
+
blob_path=DataSocket(
|
73
|
+
alias="telemetry",
|
74
|
+
data_path=f"{self._telemetry_base_path}/{entity_name}/{run_id}",
|
75
|
+
data_format="null",
|
76
|
+
).parse_data_path(),
|
77
|
+
serialization_format=DictJsonSerializationFormat
|
78
|
+
if isinstance(entity_to_record, dict)
|
79
|
+
else DataFrameParquetSerializationFormat,
|
80
|
+
overwrite=True,
|
81
|
+
)
|
74
82
|
|
75
83
|
telemetry_tasks = [
|
76
84
|
asyncio.create_task(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "esd-services-api-client"
|
3
|
-
version = "2.2.
|
3
|
+
version = "2.2.2"
|
4
4
|
description = "Python clients for ESD services"
|
5
5
|
authors = ["ECCO Sneaks & Data <esdsupport@ecco.com>"]
|
6
6
|
maintainers = ['GZU <gzu@ecco.com>', 'JRB <ext-jrb@ecco.com>', 'VISA <visa@ecco.com>']
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = '2.2.1'
|
File without changes
|
File without changes
|
{esd_services_api_client-2.2.1 → esd_services_api_client-2.2.2}/esd_services_api_client/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|