armonik 3.8.2.dev395__tar.gz → 3.8.3.dev470__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.
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/PKG-INFO +1 -1
- armonik-3.8.3.dev470/src/armonik/_version.py +3 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/client/__init__.py +1 -0
- armonik-3.8.3.dev470/src/armonik/client/results.py +19 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/client/submitter.py +0 -11
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/common/helpers.py +1 -1
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/common/objects.py +13 -12
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/worker/seqlogger.py +2 -3
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/worker/taskhandler.py +12 -15
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/worker/worker.py +2 -2
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik.egg-info/PKG-INFO +1 -1
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik.egg-info/SOURCES.txt +1 -0
- armonik-3.8.2.dev395/src/armonik/_version.py +0 -3
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/README.md +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/pyproject.toml +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/setup.cfg +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/__init__.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/client/tasks.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/common/__init__.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/common/enumwrapper.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/__init__.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/applications_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/applications_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/applications_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/auth_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/auth_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/auth_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/events_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/events_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/events_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/partitions_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/partitions_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/partitions_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/results_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/results_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/results_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/sessions_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/sessions_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/sessions_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/submitter_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/submitter_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/submitter_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/tasks_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/tasks_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/tasks_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/versions_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/versions_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/versions_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/__init__.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/agent_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/agent_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/agent_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/applications_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/applications_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/applications_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/auth_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/auth_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/auth_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/events_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/events_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/events_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/objects_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/objects_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/objects_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/partitions_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/partitions_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/partitions_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/result_status_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/result_status_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/result_status_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/results_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/results_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/results_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/session_status_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/session_status_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/session_status_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sessions_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sessions_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sessions_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sort_direction_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sort_direction_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sort_direction_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/submitter_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/submitter_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/submitter_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/task_status_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/task_status_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/task_status_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/tasks_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/tasks_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/tasks_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/versions_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/versions_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/versions_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/worker_common_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/worker_common_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/worker_common_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/__init__.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/agent_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/agent_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/agent_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/worker_service_pb2.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/worker_service_pb2.pyi +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/worker_service_pb2_grpc.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/worker/__init__.py +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik.egg-info/dependency_links.txt +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik.egg-info/requires.txt +0 -0
- {armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from grpc import Channel
|
|
2
|
+
|
|
3
|
+
from typing import List, Dict, cast
|
|
4
|
+
|
|
5
|
+
from ..protogen.client.results_service_pb2_grpc import ResultsStub
|
|
6
|
+
from ..protogen.common.results_common_pb2 import CreateResultsMetaDataRequest, CreateResultsMetaDataResponse
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ArmoniKResult:
|
|
10
|
+
def __init__(self, grpc_channel: Channel):
|
|
11
|
+
""" Result service client
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
grpc_channel: gRPC channel to use
|
|
15
|
+
"""
|
|
16
|
+
self._client = ResultsStub(grpc_channel)
|
|
17
|
+
|
|
18
|
+
def get_results_ids(self, session_id: str, names : List[str]) -> Dict[str, str]:
|
|
19
|
+
return {r.name : r.result_id for r in cast(CreateResultsMetaDataResponse, self._client.CreateResultsMetaData(CreateResultsMetaDataRequest(results=[CreateResultsMetaDataRequest.ResultCreate(name = n) for n in names], session_id=session_id))).results}
|
|
@@ -232,17 +232,6 @@ class ArmoniKSubmitter:
|
|
|
232
232
|
return ResultAvailability(errors=[e.detail for e in response.error.errors])
|
|
233
233
|
return None
|
|
234
234
|
|
|
235
|
-
def request_output_id(self, session_id: str) -> str:
|
|
236
|
-
"""Request an output id
|
|
237
|
-
|
|
238
|
-
Args:
|
|
239
|
-
session_id: Session Id
|
|
240
|
-
|
|
241
|
-
Returns:
|
|
242
|
-
Output id
|
|
243
|
-
"""
|
|
244
|
-
return f"{session_id}%{uuid.uuid4()}"
|
|
245
|
-
|
|
246
235
|
|
|
247
236
|
def _to_request_stream_internal(request: TaskRequest, is_last: bool, chunk_max_size: int) -> Generator[CreateLargeTaskRequest, None, None]:
|
|
248
237
|
""" Generate the CreateLargeTaskRequests for the given request
|
|
@@ -19,7 +19,7 @@ class TaskOptions:
|
|
|
19
19
|
application_namespace: Optional[str] = None
|
|
20
20
|
application_service: Optional[str] = None
|
|
21
21
|
engine_type: Optional[str] = None
|
|
22
|
-
options:
|
|
22
|
+
options: Dict[str, str] = field(default_factory=dict)
|
|
23
23
|
|
|
24
24
|
@classmethod
|
|
25
25
|
def from_message(cls, task_options):
|
|
@@ -66,7 +66,7 @@ class Output:
|
|
|
66
66
|
@dataclass()
|
|
67
67
|
class TaskDefinition:
|
|
68
68
|
payload: bytes
|
|
69
|
-
expected_output_ids: List[str]
|
|
69
|
+
expected_output_ids: List[str] = field(default_factory=list)
|
|
70
70
|
data_dependencies: List[str] = field(default_factory=list)
|
|
71
71
|
|
|
72
72
|
def __post_init__(self):
|
|
@@ -79,10 +79,10 @@ class Task:
|
|
|
79
79
|
id: Optional[str] = None
|
|
80
80
|
session_id: Optional[str] = None
|
|
81
81
|
owner_pod_id: Optional[str] = None
|
|
82
|
-
parent_task_ids:
|
|
83
|
-
data_dependencies:
|
|
84
|
-
expected_output_ids:
|
|
85
|
-
retry_of_ids:
|
|
82
|
+
parent_task_ids: List[str] = field(default_factory=list)
|
|
83
|
+
data_dependencies: List[str] = field(default_factory=list)
|
|
84
|
+
expected_output_ids: List[str] = field(default_factory=list)
|
|
85
|
+
retry_of_ids: List[str] = field(default_factory=list)
|
|
86
86
|
status: TaskStatus = TaskStatus.UNSPECIFIED
|
|
87
87
|
status_message: Optional[str] = None
|
|
88
88
|
options: Optional[TaskOptions] = None
|
|
@@ -102,13 +102,13 @@ class Task:
|
|
|
102
102
|
Args:
|
|
103
103
|
task_client: ArmoniKTasks client
|
|
104
104
|
"""
|
|
105
|
-
result = task_client.get_task(self.id)
|
|
105
|
+
result : "Task" = task_client.get_task(self.id)
|
|
106
106
|
self.session_id = result.session_id
|
|
107
107
|
self.owner_pod_id = result.owner_pod_id
|
|
108
|
-
self.parent_task_ids =
|
|
109
|
-
self.data_dependencies =
|
|
110
|
-
self.expected_output_ids =
|
|
111
|
-
self.retry_of_ids =
|
|
108
|
+
self.parent_task_ids = result.parent_task_ids
|
|
109
|
+
self.data_dependencies = result.data_dependencies
|
|
110
|
+
self.expected_output_ids = result.expected_output_ids
|
|
111
|
+
self.retry_of_ids = result.retry_of_ids
|
|
112
112
|
self.status = TaskStatus(result.status)
|
|
113
113
|
self.status_message = result.status_message
|
|
114
114
|
self.options = result.options
|
|
@@ -121,6 +121,7 @@ class Task:
|
|
|
121
121
|
self.pod_hostname = result.pod_hostname
|
|
122
122
|
self.received_at = result.received_at
|
|
123
123
|
self.acquired_at = result.acquired_at
|
|
124
|
+
self.is_init = True
|
|
124
125
|
|
|
125
126
|
@classmethod
|
|
126
127
|
def from_message(cls, task_raw: TaskRaw) -> "Task":
|
|
@@ -134,7 +135,7 @@ class Task:
|
|
|
134
135
|
retry_of_ids=list(task_raw.retry_of_ids),
|
|
135
136
|
status=TaskStatus(task_raw.status),
|
|
136
137
|
status_message=task_raw.status_message,
|
|
137
|
-
options=task_raw.options,
|
|
138
|
+
options=TaskOptions.from_message(task_raw.options),
|
|
138
139
|
created_at=timestamp_to_datetime(task_raw.created_at),
|
|
139
140
|
submitted_at=timestamp_to_datetime(task_raw.submitted_at),
|
|
140
141
|
started_at=timestamp_to_datetime(task_raw.started_at),
|
|
@@ -94,7 +94,7 @@ class ClefLogger:
|
|
|
94
94
|
"""
|
|
95
95
|
self.log(logging.ERROR, message, exc_info=exc_info, **kwargs)
|
|
96
96
|
|
|
97
|
-
def log(self, level: int, message: str, exc_info: Union[BaseException, Tuple[Type[BaseException], BaseException, Optional[TracebackType]], bool, None] = None, **kwargs):
|
|
97
|
+
def log(self, level: int, message: str, exc_info: Union[BaseException, Union[Tuple[Union[Type[BaseException], None], Union[BaseException, None], Optional[TracebackType]], None], bool, None] = None, **kwargs):
|
|
98
98
|
""" Log a message
|
|
99
99
|
|
|
100
100
|
Args:
|
|
@@ -115,8 +115,7 @@ class ClefLogger:
|
|
|
115
115
|
exc_info = sys.exc_info()
|
|
116
116
|
elif isinstance(exc_info, BaseException):
|
|
117
117
|
exc_info = (type(exc_info), exc_info, exc_info.__traceback__)
|
|
118
|
-
|
|
119
|
-
payload["@x"] = exc_info
|
|
118
|
+
payload["@x"] = "\n".join(traceback.format_exception(*exc_info))
|
|
120
119
|
for k, v in kwargs:
|
|
121
120
|
if k.startswith("@"):
|
|
122
121
|
k = "@"+k
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import uuid
|
|
2
|
-
from typing import Optional, Dict, List, Tuple, Union
|
|
2
|
+
from typing import Optional, Dict, List, Tuple, Union, cast
|
|
3
3
|
|
|
4
4
|
from ..common import TaskOptions, TaskDefinition, Task
|
|
5
|
-
from ..protogen.common.agent_common_pb2 import Result, CreateTaskRequest
|
|
5
|
+
from ..protogen.common.agent_common_pb2 import Result, CreateTaskRequest, CreateResultsMetaDataRequest, CreateResultsMetaDataResponse
|
|
6
6
|
from ..protogen.common.objects_pb2 import TaskRequest, InitKeyedDataStream, DataChunk, InitTaskRequest, TaskRequestHeader, Configuration
|
|
7
7
|
from ..protogen.worker.agent_service_pb2_grpc import AgentStub
|
|
8
8
|
|
|
@@ -35,12 +35,12 @@ class TaskHandler:
|
|
|
35
35
|
raise ValueError("Expected a Compute request type with InitRequest to start the stream.")
|
|
36
36
|
|
|
37
37
|
init_request = current.compute.init_request
|
|
38
|
-
self.session_id
|
|
39
|
-
self.task_id
|
|
40
|
-
self.task_options
|
|
38
|
+
self.session_id = init_request.session_id
|
|
39
|
+
self.task_id = init_request.task_id
|
|
40
|
+
self.task_options = TaskOptions.from_message(init_request.task_options)
|
|
41
41
|
self.expected_results = list(init_request.expected_output_keys)
|
|
42
42
|
self.configuration = init_request.configuration
|
|
43
|
-
self.token
|
|
43
|
+
self.token = current.communication_token
|
|
44
44
|
|
|
45
45
|
datachunk = init_request.payload
|
|
46
46
|
self.payload.extend(datachunk.data)
|
|
@@ -98,7 +98,7 @@ class TaskHandler:
|
|
|
98
98
|
task_request.data_dependencies.extend(t.data_dependencies)
|
|
99
99
|
task_request.payload = t.payload
|
|
100
100
|
task_requests.append(task_request)
|
|
101
|
-
|
|
101
|
+
assert self.configuration is not None
|
|
102
102
|
create_tasks_reply = self._client.CreateTask(_to_request_stream(task_requests, self.token, task_options.to_message() if task_options is not None else None, self.configuration.data_chunk_max_size))
|
|
103
103
|
ret = create_tasks_reply.WhichOneof("Response")
|
|
104
104
|
if ret is None or ret == "error":
|
|
@@ -115,14 +115,6 @@ class TaskHandler:
|
|
|
115
115
|
raise Exception("Unknown value")
|
|
116
116
|
return tasks_created, tasks_creation_failed
|
|
117
117
|
|
|
118
|
-
def request_output_id(self) -> str:
|
|
119
|
-
"""Request an output id
|
|
120
|
-
|
|
121
|
-
Returns:
|
|
122
|
-
Output id
|
|
123
|
-
"""
|
|
124
|
-
return f"{self.token}%{uuid.uuid4()}"
|
|
125
|
-
|
|
126
118
|
def send_result(self, key: str, data: Union[bytes, bytearray]) -> None:
|
|
127
119
|
""" Send task result
|
|
128
120
|
|
|
@@ -132,6 +124,7 @@ class TaskHandler:
|
|
|
132
124
|
"""
|
|
133
125
|
def result_stream():
|
|
134
126
|
res = Result(communication_token=self.token, init=InitKeyedDataStream(key=key))
|
|
127
|
+
assert self.configuration is not None
|
|
135
128
|
yield res
|
|
136
129
|
start = 0
|
|
137
130
|
data_len = len(data)
|
|
@@ -148,6 +141,10 @@ class TaskHandler:
|
|
|
148
141
|
result_reply = self._client.SendResult(result_stream())
|
|
149
142
|
if result_reply.WhichOneof("type") == "error":
|
|
150
143
|
raise Exception(f"Cannot send result id={key}")
|
|
144
|
+
|
|
145
|
+
def get_results_ids(self, names : List[str]) -> Dict[str, str]:
|
|
146
|
+
return {r.name : r.result_id for r in cast(CreateResultsMetaDataResponse, self._client.CreateResultsMetaData(CreateResultsMetaDataRequest(results=[CreateResultsMetaDataRequest.ResultCreate(name = n) for n in names], session_id=self.session_id, communication_token=self.token))).results}
|
|
147
|
+
|
|
151
148
|
|
|
152
149
|
|
|
153
150
|
def _to_request_stream_internal(request, communication_token, is_last, chunk_max_size):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import traceback
|
|
2
2
|
from concurrent import futures
|
|
3
|
-
from typing import Callable
|
|
3
|
+
from typing import Callable, Union
|
|
4
4
|
|
|
5
5
|
import grpc
|
|
6
6
|
from grpc import Channel
|
|
@@ -45,7 +45,7 @@ class ArmoniKWorker(WorkerServicer):
|
|
|
45
45
|
server.start()
|
|
46
46
|
server.wait_for_termination()
|
|
47
47
|
|
|
48
|
-
def Process(self, request_iterator, context) -> ProcessReply:
|
|
48
|
+
def Process(self, request_iterator, context) -> Union[ProcessReply, None]:
|
|
49
49
|
try:
|
|
50
50
|
self._logger.debug("Received task")
|
|
51
51
|
task_handler = TaskHandler.create(request_iterator, self._client)
|
|
@@ -8,6 +8,7 @@ src/armonik.egg-info/dependency_links.txt
|
|
|
8
8
|
src/armonik.egg-info/requires.txt
|
|
9
9
|
src/armonik.egg-info/top_level.txt
|
|
10
10
|
src/armonik/client/__init__.py
|
|
11
|
+
src/armonik/client/results.py
|
|
11
12
|
src/armonik/client/submitter.py
|
|
12
13
|
src/armonik/client/tasks.py
|
|
13
14
|
src/armonik/common/__init__.py
|
|
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
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/auth_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/auth_service_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/auth_service_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/events_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/events_service_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/events_service_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/partitions_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/partitions_service_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/results_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/results_service_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/sessions_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/sessions_service_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/submitter_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/submitter_service_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/tasks_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/tasks_service_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/tasks_service_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/versions_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/client/versions_service_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/agent_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/agent_common_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/agent_common_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/applications_common_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/auth_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/auth_common_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/auth_common_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/events_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/events_common_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/events_common_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/objects_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/partitions_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/partitions_common_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/result_status_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/result_status_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/result_status_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/results_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/results_common_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/results_common_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/session_status_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/session_status_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/session_status_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sessions_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sessions_common_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sort_direction_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sort_direction_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/sort_direction_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/submitter_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/submitter_common_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/task_status_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/task_status_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/task_status_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/tasks_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/tasks_common_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/tasks_common_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/versions_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/versions_common_pb2.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/worker_common_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/worker_common_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/common/worker_common_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/agent_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/agent_service_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/agent_service_pb2_grpc.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/worker_service_pb2.py
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/worker_service_pb2.pyi
RENAMED
|
File without changes
|
{armonik-3.8.2.dev395 → armonik-3.8.3.dev470}/src/armonik/protogen/worker/worker_service_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|