indexify 0.3.18__py3-none-any.whl → 0.3.20__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.
- indexify/cli/cli.py +15 -17
- indexify/executor/api_objects.py +12 -0
- indexify/executor/blob_store/blob_store.py +69 -0
- indexify/executor/blob_store/local_fs_blob_store.py +48 -0
- indexify/executor/blob_store/metrics/blob_store.py +33 -0
- indexify/executor/blob_store/s3_blob_store.py +85 -0
- indexify/executor/downloader.py +149 -25
- indexify/executor/executor.py +77 -41
- indexify/executor/function_executor/function_executor.py +24 -11
- indexify/executor/function_executor/function_executor_state.py +9 -1
- indexify/executor/function_executor/function_executor_states_container.py +8 -1
- indexify/executor/function_executor/function_executor_status.py +4 -0
- indexify/executor/function_executor/health_checker.py +7 -2
- indexify/executor/function_executor/invocation_state_client.py +4 -2
- indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py +6 -0
- indexify/executor/function_executor/single_task_runner.py +15 -11
- indexify/executor/function_executor/task_output.py +36 -2
- indexify/executor/grpc/channel_manager.py +4 -3
- indexify/executor/grpc/function_executor_controller.py +391 -0
- indexify/executor/grpc/metrics/state_reconciler.py +17 -0
- indexify/executor/grpc/metrics/task_controller.py +8 -0
- indexify/executor/grpc/state_reconciler.py +324 -217
- indexify/executor/grpc/state_reporter.py +52 -41
- indexify/executor/grpc/task_controller.py +492 -0
- indexify/executor/metrics/task_reporter.py +14 -0
- indexify/executor/task_reporter.py +115 -6
- indexify/executor/task_runner.py +1 -0
- indexify/proto/executor_api.proto +91 -7
- indexify/proto/executor_api_pb2.py +49 -37
- indexify/proto/executor_api_pb2.pyi +158 -3
- indexify/proto/executor_api_pb2_grpc.py +47 -0
- {indexify-0.3.18.dist-info → indexify-0.3.20.dist-info}/METADATA +2 -1
- {indexify-0.3.18.dist-info → indexify-0.3.20.dist-info}/RECORD +35 -27
- {indexify-0.3.18.dist-info → indexify-0.3.20.dist-info}/WHEEL +0 -0
- {indexify-0.3.18.dist-info → indexify-0.3.20.dist-info}/entry_points.txt +0 -0
@@ -11,6 +11,13 @@ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
|
|
11
11
|
|
12
12
|
DESCRIPTOR: _descriptor.FileDescriptor
|
13
13
|
|
14
|
+
class DataPayloadEncoding(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
15
|
+
__slots__ = ()
|
16
|
+
DATA_PAYLOAD_ENCODING_UNKNOWN: _ClassVar[DataPayloadEncoding]
|
17
|
+
DATA_PAYLOAD_ENCODING_UTF8_JSON: _ClassVar[DataPayloadEncoding]
|
18
|
+
DATA_PAYLOAD_ENCODING_UTF8_TEXT: _ClassVar[DataPayloadEncoding]
|
19
|
+
DATA_PAYLOAD_ENCODING_BINARY_PICKLE: _ClassVar[DataPayloadEncoding]
|
20
|
+
|
14
21
|
class GPUModel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
15
22
|
__slots__ = ()
|
16
23
|
GPU_MODEL_UNKNOWN: _ClassVar[GPUModel]
|
@@ -40,6 +47,7 @@ class FunctionExecutorStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
40
47
|
FUNCTION_EXECUTOR_STATUS_UNHEALTHY: _ClassVar[FunctionExecutorStatus]
|
41
48
|
FUNCTION_EXECUTOR_STATUS_STOPPING: _ClassVar[FunctionExecutorStatus]
|
42
49
|
FUNCTION_EXECUTOR_STATUS_STOPPED: _ClassVar[FunctionExecutorStatus]
|
50
|
+
FUNCTION_EXECUTOR_STATUS_SHUTDOWN: _ClassVar[FunctionExecutorStatus]
|
43
51
|
|
44
52
|
class ExecutorStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
45
53
|
__slots__ = ()
|
@@ -56,6 +64,23 @@ class ExecutorFlavor(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
56
64
|
EXECUTOR_FLAVOR_OSS: _ClassVar[ExecutorFlavor]
|
57
65
|
EXECUTOR_FLAVOR_PLATFORM: _ClassVar[ExecutorFlavor]
|
58
66
|
|
67
|
+
class TaskOutcome(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
68
|
+
__slots__ = ()
|
69
|
+
TASK_OUTCOME_UNKNOWN: _ClassVar[TaskOutcome]
|
70
|
+
TASK_OUTCOME_SUCCESS: _ClassVar[TaskOutcome]
|
71
|
+
TASK_OUTCOME_FAILURE: _ClassVar[TaskOutcome]
|
72
|
+
|
73
|
+
class OutputEncoding(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
74
|
+
__slots__ = ()
|
75
|
+
OUTPUT_ENCODING_UNKNOWN: _ClassVar[OutputEncoding]
|
76
|
+
OUTPUT_ENCODING_JSON: _ClassVar[OutputEncoding]
|
77
|
+
OUTPUT_ENCODING_PICKLE: _ClassVar[OutputEncoding]
|
78
|
+
OUTPUT_ENCODING_BINARY: _ClassVar[OutputEncoding]
|
79
|
+
|
80
|
+
DATA_PAYLOAD_ENCODING_UNKNOWN: DataPayloadEncoding
|
81
|
+
DATA_PAYLOAD_ENCODING_UTF8_JSON: DataPayloadEncoding
|
82
|
+
DATA_PAYLOAD_ENCODING_UTF8_TEXT: DataPayloadEncoding
|
83
|
+
DATA_PAYLOAD_ENCODING_BINARY_PICKLE: DataPayloadEncoding
|
59
84
|
GPU_MODEL_UNKNOWN: GPUModel
|
60
85
|
GPU_MODEL_NVIDIA_TESLA_T4_16GB: GPUModel
|
61
86
|
GPU_MODEL_NVIDIA_TESLA_V100_16GB: GPUModel
|
@@ -76,6 +101,7 @@ FUNCTION_EXECUTOR_STATUS_RUNNING_TASK: FunctionExecutorStatus
|
|
76
101
|
FUNCTION_EXECUTOR_STATUS_UNHEALTHY: FunctionExecutorStatus
|
77
102
|
FUNCTION_EXECUTOR_STATUS_STOPPING: FunctionExecutorStatus
|
78
103
|
FUNCTION_EXECUTOR_STATUS_STOPPED: FunctionExecutorStatus
|
104
|
+
FUNCTION_EXECUTOR_STATUS_SHUTDOWN: FunctionExecutorStatus
|
79
105
|
EXECUTOR_STATUS_UNKNOWN: ExecutorStatus
|
80
106
|
EXECUTOR_STATUS_STARTING_UP: ExecutorStatus
|
81
107
|
EXECUTOR_STATUS_RUNNING: ExecutorStatus
|
@@ -85,6 +111,37 @@ EXECUTOR_STATUS_STOPPED: ExecutorStatus
|
|
85
111
|
EXECUTOR_FLAVOR_UNKNOWN: ExecutorFlavor
|
86
112
|
EXECUTOR_FLAVOR_OSS: ExecutorFlavor
|
87
113
|
EXECUTOR_FLAVOR_PLATFORM: ExecutorFlavor
|
114
|
+
TASK_OUTCOME_UNKNOWN: TaskOutcome
|
115
|
+
TASK_OUTCOME_SUCCESS: TaskOutcome
|
116
|
+
TASK_OUTCOME_FAILURE: TaskOutcome
|
117
|
+
OUTPUT_ENCODING_UNKNOWN: OutputEncoding
|
118
|
+
OUTPUT_ENCODING_JSON: OutputEncoding
|
119
|
+
OUTPUT_ENCODING_PICKLE: OutputEncoding
|
120
|
+
OUTPUT_ENCODING_BINARY: OutputEncoding
|
121
|
+
|
122
|
+
class DataPayload(_message.Message):
|
123
|
+
__slots__ = ("path", "size", "sha256_hash", "uri", "encoding", "encoding_version")
|
124
|
+
PATH_FIELD_NUMBER: _ClassVar[int]
|
125
|
+
SIZE_FIELD_NUMBER: _ClassVar[int]
|
126
|
+
SHA256_HASH_FIELD_NUMBER: _ClassVar[int]
|
127
|
+
URI_FIELD_NUMBER: _ClassVar[int]
|
128
|
+
ENCODING_FIELD_NUMBER: _ClassVar[int]
|
129
|
+
ENCODING_VERSION_FIELD_NUMBER: _ClassVar[int]
|
130
|
+
path: str
|
131
|
+
size: int
|
132
|
+
sha256_hash: str
|
133
|
+
uri: str
|
134
|
+
encoding: DataPayloadEncoding
|
135
|
+
encoding_version: int
|
136
|
+
def __init__(
|
137
|
+
self,
|
138
|
+
path: _Optional[str] = ...,
|
139
|
+
size: _Optional[int] = ...,
|
140
|
+
sha256_hash: _Optional[str] = ...,
|
141
|
+
uri: _Optional[str] = ...,
|
142
|
+
encoding: _Optional[_Union[DataPayloadEncoding, str]] = ...,
|
143
|
+
encoding_version: _Optional[int] = ...,
|
144
|
+
) -> None: ...
|
88
145
|
|
89
146
|
class GPUResources(_message.Message):
|
90
147
|
__slots__ = ("count", "model")
|
@@ -142,6 +199,8 @@ class FunctionExecutorDescription(_message.Message):
|
|
142
199
|
"image_uri",
|
143
200
|
"secret_names",
|
144
201
|
"resource_limits",
|
202
|
+
"customer_code_timeout_ms",
|
203
|
+
"graph",
|
145
204
|
)
|
146
205
|
ID_FIELD_NUMBER: _ClassVar[int]
|
147
206
|
NAMESPACE_FIELD_NUMBER: _ClassVar[int]
|
@@ -151,6 +210,8 @@ class FunctionExecutorDescription(_message.Message):
|
|
151
210
|
IMAGE_URI_FIELD_NUMBER: _ClassVar[int]
|
152
211
|
SECRET_NAMES_FIELD_NUMBER: _ClassVar[int]
|
153
212
|
RESOURCE_LIMITS_FIELD_NUMBER: _ClassVar[int]
|
213
|
+
CUSTOMER_CODE_TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int]
|
214
|
+
GRAPH_FIELD_NUMBER: _ClassVar[int]
|
154
215
|
id: str
|
155
216
|
namespace: str
|
156
217
|
graph_name: str
|
@@ -159,6 +220,8 @@ class FunctionExecutorDescription(_message.Message):
|
|
159
220
|
image_uri: str
|
160
221
|
secret_names: _containers.RepeatedScalarFieldContainer[str]
|
161
222
|
resource_limits: HostResources
|
223
|
+
customer_code_timeout_ms: int
|
224
|
+
graph: DataPayload
|
162
225
|
def __init__(
|
163
226
|
self,
|
164
227
|
id: _Optional[str] = ...,
|
@@ -169,18 +232,23 @@ class FunctionExecutorDescription(_message.Message):
|
|
169
232
|
image_uri: _Optional[str] = ...,
|
170
233
|
secret_names: _Optional[_Iterable[str]] = ...,
|
171
234
|
resource_limits: _Optional[_Union[HostResources, _Mapping]] = ...,
|
235
|
+
customer_code_timeout_ms: _Optional[int] = ...,
|
236
|
+
graph: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
172
237
|
) -> None: ...
|
173
238
|
|
174
239
|
class FunctionExecutorState(_message.Message):
|
175
|
-
__slots__ = ("description", "status")
|
240
|
+
__slots__ = ("description", "status", "status_message")
|
176
241
|
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
|
177
242
|
STATUS_FIELD_NUMBER: _ClassVar[int]
|
243
|
+
STATUS_MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
178
244
|
description: FunctionExecutorDescription
|
179
245
|
status: FunctionExecutorStatus
|
246
|
+
status_message: str
|
180
247
|
def __init__(
|
181
248
|
self,
|
182
249
|
description: _Optional[_Union[FunctionExecutorDescription, _Mapping]] = ...,
|
183
250
|
status: _Optional[_Union[FunctionExecutorStatus, str]] = ...,
|
251
|
+
status_message: _Optional[str] = ...,
|
184
252
|
) -> None: ...
|
185
253
|
|
186
254
|
class ExecutorState(_message.Message):
|
@@ -196,6 +264,7 @@ class ExecutorState(_message.Message):
|
|
196
264
|
"function_executor_states",
|
197
265
|
"labels",
|
198
266
|
"state_hash",
|
267
|
+
"server_clock",
|
199
268
|
)
|
200
269
|
|
201
270
|
class LabelsEntry(_message.Message):
|
@@ -219,6 +288,7 @@ class ExecutorState(_message.Message):
|
|
219
288
|
FUNCTION_EXECUTOR_STATES_FIELD_NUMBER: _ClassVar[int]
|
220
289
|
LABELS_FIELD_NUMBER: _ClassVar[int]
|
221
290
|
STATE_HASH_FIELD_NUMBER: _ClassVar[int]
|
291
|
+
SERVER_CLOCK_FIELD_NUMBER: _ClassVar[int]
|
222
292
|
executor_id: str
|
223
293
|
development_mode: bool
|
224
294
|
hostname: str
|
@@ -232,6 +302,7 @@ class ExecutorState(_message.Message):
|
|
232
302
|
]
|
233
303
|
labels: _containers.ScalarMap[str, str]
|
234
304
|
state_hash: str
|
305
|
+
server_clock: int
|
235
306
|
def __init__(
|
236
307
|
self,
|
237
308
|
executor_id: _Optional[str] = ...,
|
@@ -249,6 +320,7 @@ class ExecutorState(_message.Message):
|
|
249
320
|
] = ...,
|
250
321
|
labels: _Optional[_Mapping[str, str]] = ...,
|
251
322
|
state_hash: _Optional[str] = ...,
|
323
|
+
server_clock: _Optional[int] = ...,
|
252
324
|
) -> None: ...
|
253
325
|
|
254
326
|
class ReportExecutorStateRequest(_message.Message):
|
@@ -274,6 +346,9 @@ class Task(_message.Message):
|
|
274
346
|
"input_key",
|
275
347
|
"reducer_output_key",
|
276
348
|
"timeout_ms",
|
349
|
+
"input",
|
350
|
+
"reducer_input",
|
351
|
+
"output_payload_uri_prefix",
|
277
352
|
)
|
278
353
|
ID_FIELD_NUMBER: _ClassVar[int]
|
279
354
|
NAMESPACE_FIELD_NUMBER: _ClassVar[int]
|
@@ -284,6 +359,9 @@ class Task(_message.Message):
|
|
284
359
|
INPUT_KEY_FIELD_NUMBER: _ClassVar[int]
|
285
360
|
REDUCER_OUTPUT_KEY_FIELD_NUMBER: _ClassVar[int]
|
286
361
|
TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int]
|
362
|
+
INPUT_FIELD_NUMBER: _ClassVar[int]
|
363
|
+
REDUCER_INPUT_FIELD_NUMBER: _ClassVar[int]
|
364
|
+
OUTPUT_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
287
365
|
id: str
|
288
366
|
namespace: str
|
289
367
|
graph_name: str
|
@@ -292,7 +370,10 @@ class Task(_message.Message):
|
|
292
370
|
graph_invocation_id: str
|
293
371
|
input_key: str
|
294
372
|
reducer_output_key: str
|
295
|
-
timeout_ms:
|
373
|
+
timeout_ms: int
|
374
|
+
input: DataPayload
|
375
|
+
reducer_input: DataPayload
|
376
|
+
output_payload_uri_prefix: str
|
296
377
|
def __init__(
|
297
378
|
self,
|
298
379
|
id: _Optional[str] = ...,
|
@@ -303,7 +384,10 @@ class Task(_message.Message):
|
|
303
384
|
graph_invocation_id: _Optional[str] = ...,
|
304
385
|
input_key: _Optional[str] = ...,
|
305
386
|
reducer_output_key: _Optional[str] = ...,
|
306
|
-
timeout_ms: _Optional[
|
387
|
+
timeout_ms: _Optional[int] = ...,
|
388
|
+
input: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
389
|
+
reducer_input: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
390
|
+
output_payload_uri_prefix: _Optional[str] = ...,
|
307
391
|
) -> None: ...
|
308
392
|
|
309
393
|
class TaskAllocation(_message.Message):
|
@@ -342,3 +426,74 @@ class DesiredExecutorState(_message.Message):
|
|
342
426
|
task_allocations: _Optional[_Iterable[_Union[TaskAllocation, _Mapping]]] = ...,
|
343
427
|
clock: _Optional[int] = ...,
|
344
428
|
) -> None: ...
|
429
|
+
|
430
|
+
class ReportTaskOutcomeRequest(_message.Message):
|
431
|
+
__slots__ = (
|
432
|
+
"task_id",
|
433
|
+
"namespace",
|
434
|
+
"graph_name",
|
435
|
+
"function_name",
|
436
|
+
"graph_invocation_id",
|
437
|
+
"outcome",
|
438
|
+
"invocation_id",
|
439
|
+
"executor_id",
|
440
|
+
"reducer",
|
441
|
+
"next_functions",
|
442
|
+
"fn_outputs",
|
443
|
+
"stdout",
|
444
|
+
"stderr",
|
445
|
+
"output_encoding",
|
446
|
+
"output_encoding_version",
|
447
|
+
)
|
448
|
+
TASK_ID_FIELD_NUMBER: _ClassVar[int]
|
449
|
+
NAMESPACE_FIELD_NUMBER: _ClassVar[int]
|
450
|
+
GRAPH_NAME_FIELD_NUMBER: _ClassVar[int]
|
451
|
+
FUNCTION_NAME_FIELD_NUMBER: _ClassVar[int]
|
452
|
+
GRAPH_INVOCATION_ID_FIELD_NUMBER: _ClassVar[int]
|
453
|
+
OUTCOME_FIELD_NUMBER: _ClassVar[int]
|
454
|
+
INVOCATION_ID_FIELD_NUMBER: _ClassVar[int]
|
455
|
+
EXECUTOR_ID_FIELD_NUMBER: _ClassVar[int]
|
456
|
+
REDUCER_FIELD_NUMBER: _ClassVar[int]
|
457
|
+
NEXT_FUNCTIONS_FIELD_NUMBER: _ClassVar[int]
|
458
|
+
FN_OUTPUTS_FIELD_NUMBER: _ClassVar[int]
|
459
|
+
STDOUT_FIELD_NUMBER: _ClassVar[int]
|
460
|
+
STDERR_FIELD_NUMBER: _ClassVar[int]
|
461
|
+
OUTPUT_ENCODING_FIELD_NUMBER: _ClassVar[int]
|
462
|
+
OUTPUT_ENCODING_VERSION_FIELD_NUMBER: _ClassVar[int]
|
463
|
+
task_id: str
|
464
|
+
namespace: str
|
465
|
+
graph_name: str
|
466
|
+
function_name: str
|
467
|
+
graph_invocation_id: str
|
468
|
+
outcome: TaskOutcome
|
469
|
+
invocation_id: str
|
470
|
+
executor_id: str
|
471
|
+
reducer: bool
|
472
|
+
next_functions: _containers.RepeatedScalarFieldContainer[str]
|
473
|
+
fn_outputs: _containers.RepeatedCompositeFieldContainer[DataPayload]
|
474
|
+
stdout: DataPayload
|
475
|
+
stderr: DataPayload
|
476
|
+
output_encoding: OutputEncoding
|
477
|
+
output_encoding_version: int
|
478
|
+
def __init__(
|
479
|
+
self,
|
480
|
+
task_id: _Optional[str] = ...,
|
481
|
+
namespace: _Optional[str] = ...,
|
482
|
+
graph_name: _Optional[str] = ...,
|
483
|
+
function_name: _Optional[str] = ...,
|
484
|
+
graph_invocation_id: _Optional[str] = ...,
|
485
|
+
outcome: _Optional[_Union[TaskOutcome, str]] = ...,
|
486
|
+
invocation_id: _Optional[str] = ...,
|
487
|
+
executor_id: _Optional[str] = ...,
|
488
|
+
reducer: bool = ...,
|
489
|
+
next_functions: _Optional[_Iterable[str]] = ...,
|
490
|
+
fn_outputs: _Optional[_Iterable[_Union[DataPayload, _Mapping]]] = ...,
|
491
|
+
stdout: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
492
|
+
stderr: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
493
|
+
output_encoding: _Optional[_Union[OutputEncoding, str]] = ...,
|
494
|
+
output_encoding_version: _Optional[int] = ...,
|
495
|
+
) -> None: ...
|
496
|
+
|
497
|
+
class ReportTaskOutcomeResponse(_message.Message):
|
498
|
+
__slots__ = ()
|
499
|
+
def __init__(self) -> None: ...
|
@@ -56,6 +56,12 @@ class ExecutorAPIStub(object):
|
|
56
56
|
response_deserializer=indexify_dot_proto_dot_executor__api__pb2.DesiredExecutorState.FromString,
|
57
57
|
_registered_method=True,
|
58
58
|
)
|
59
|
+
self.report_task_outcome = channel.unary_unary(
|
60
|
+
"/executor_api_pb.ExecutorAPI/report_task_outcome",
|
61
|
+
request_serializer=indexify_dot_proto_dot_executor__api__pb2.ReportTaskOutcomeRequest.SerializeToString,
|
62
|
+
response_deserializer=indexify_dot_proto_dot_executor__api__pb2.ReportTaskOutcomeResponse.FromString,
|
63
|
+
_registered_method=True,
|
64
|
+
)
|
59
65
|
|
60
66
|
|
61
67
|
class ExecutorAPIServicer(object):
|
@@ -86,6 +92,12 @@ class ExecutorAPIServicer(object):
|
|
86
92
|
context.set_details("Method not implemented!")
|
87
93
|
raise NotImplementedError("Method not implemented!")
|
88
94
|
|
95
|
+
def report_task_outcome(self, request, context):
|
96
|
+
"""Report the outcome of a task."""
|
97
|
+
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
98
|
+
context.set_details("Method not implemented!")
|
99
|
+
raise NotImplementedError("Method not implemented!")
|
100
|
+
|
89
101
|
|
90
102
|
def add_ExecutorAPIServicer_to_server(servicer, server):
|
91
103
|
rpc_method_handlers = {
|
@@ -99,6 +111,11 @@ def add_ExecutorAPIServicer_to_server(servicer, server):
|
|
99
111
|
request_deserializer=indexify_dot_proto_dot_executor__api__pb2.GetDesiredExecutorStatesRequest.FromString,
|
100
112
|
response_serializer=indexify_dot_proto_dot_executor__api__pb2.DesiredExecutorState.SerializeToString,
|
101
113
|
),
|
114
|
+
"report_task_outcome": grpc.unary_unary_rpc_method_handler(
|
115
|
+
servicer.report_task_outcome,
|
116
|
+
request_deserializer=indexify_dot_proto_dot_executor__api__pb2.ReportTaskOutcomeRequest.FromString,
|
117
|
+
response_serializer=indexify_dot_proto_dot_executor__api__pb2.ReportTaskOutcomeResponse.SerializeToString,
|
118
|
+
),
|
102
119
|
}
|
103
120
|
generic_handler = grpc.method_handlers_generic_handler(
|
104
121
|
"executor_api_pb.ExecutorAPI", rpc_method_handlers
|
@@ -178,3 +195,33 @@ class ExecutorAPI(object):
|
|
178
195
|
metadata,
|
179
196
|
_registered_method=True,
|
180
197
|
)
|
198
|
+
|
199
|
+
@staticmethod
|
200
|
+
def report_task_outcome(
|
201
|
+
request,
|
202
|
+
target,
|
203
|
+
options=(),
|
204
|
+
channel_credentials=None,
|
205
|
+
call_credentials=None,
|
206
|
+
insecure=False,
|
207
|
+
compression=None,
|
208
|
+
wait_for_ready=None,
|
209
|
+
timeout=None,
|
210
|
+
metadata=None,
|
211
|
+
):
|
212
|
+
return grpc.experimental.unary_unary(
|
213
|
+
request,
|
214
|
+
target,
|
215
|
+
"/executor_api_pb.ExecutorAPI/report_task_outcome",
|
216
|
+
indexify_dot_proto_dot_executor__api__pb2.ReportTaskOutcomeRequest.SerializeToString,
|
217
|
+
indexify_dot_proto_dot_executor__api__pb2.ReportTaskOutcomeResponse.FromString,
|
218
|
+
options,
|
219
|
+
channel_credentials,
|
220
|
+
insecure,
|
221
|
+
call_credentials,
|
222
|
+
compression,
|
223
|
+
wait_for_ready,
|
224
|
+
timeout,
|
225
|
+
metadata,
|
226
|
+
_registered_method=True,
|
227
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: indexify
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.20
|
4
4
|
Summary: Open Source Indexify components and helper tools
|
5
5
|
Home-page: https://github.com/tensorlakeai/indexify
|
6
6
|
License: Apache 2.0
|
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
17
17
|
Requires-Dist: aiohttp (>=3.11.0,<4.0.0)
|
18
|
+
Requires-Dist: boto3 (>=1.37.30,<2.0.0)
|
18
19
|
Requires-Dist: prometheus-client (>=0.21.1,<0.22.0)
|
19
20
|
Requires-Dist: rich (>=13.9.2,<14.0.0)
|
20
21
|
Requires-Dist: tensorlake (>=0.1)
|
@@ -1,15 +1,19 @@
|
|
1
|
-
indexify/cli/cli.py,sha256=
|
1
|
+
indexify/cli/cli.py,sha256=L-QVyRO-nGazfrdIbhxYvxMwhEnNjJ4H32Lw9pz464I,9345
|
2
2
|
indexify/executor/README.md,sha256=ozC6_hMkhQQNVCMEpBxwiUALz6lwErPQxNxQfQDqnG4,2029
|
3
|
-
indexify/executor/api_objects.py,sha256=
|
4
|
-
indexify/executor/
|
5
|
-
indexify/executor/
|
3
|
+
indexify/executor/api_objects.py,sha256=qKQMEjr18xIq7yjpnsLPnWXP4KsVQ9O76EsbYoaL_qQ,1507
|
4
|
+
indexify/executor/blob_store/blob_store.py,sha256=XViw_KRfFSNqwcFYwMZixZF-EYCjXK2AQHdt0xh4UVo,2368
|
5
|
+
indexify/executor/blob_store/local_fs_blob_store.py,sha256=hDZXrcjKmYoH7ob0AAZ-7Zz1aoksxD8ArQEzmUSjkY4,1807
|
6
|
+
indexify/executor/blob_store/metrics/blob_store.py,sha256=5_xiPREeHWFtxFh1NupDsF8zP4pmUPgLNNn-UE9Uzvc,1008
|
7
|
+
indexify/executor/blob_store/s3_blob_store.py,sha256=4Hn1r5XpiNdfa-buRge0hR36j8j3xmuQC-7noOoOFo0,3319
|
8
|
+
indexify/executor/downloader.py,sha256=0tRQY8jT03-R36bBo5MsoLjxkoehWCY9-61fsoW3Gng,13507
|
9
|
+
indexify/executor/executor.py,sha256=uZiERFDKBQLmfPgun6bxEN7JE-BEEqmdGwawLjTAjf0,16499
|
6
10
|
indexify/executor/executor_flavor.py,sha256=uilzDQVVYlQGR1MVnrUC4NevUActDWHdnJkr38M6kTk,118
|
7
|
-
indexify/executor/function_executor/function_executor.py,sha256=
|
8
|
-
indexify/executor/function_executor/function_executor_state.py,sha256=
|
9
|
-
indexify/executor/function_executor/function_executor_states_container.py,sha256=
|
10
|
-
indexify/executor/function_executor/function_executor_status.py,sha256=
|
11
|
-
indexify/executor/function_executor/health_checker.py,sha256=
|
12
|
-
indexify/executor/function_executor/invocation_state_client.py,sha256=
|
11
|
+
indexify/executor/function_executor/function_executor.py,sha256=agfUxzSQ-2TqkpMhW3OvOSMF_EhpemetaL3_dYp29Ro,11888
|
12
|
+
indexify/executor/function_executor/function_executor_state.py,sha256=ljPm1IrRMJ8hFklwvFp7Xax2HMpUIOHm0DwOxxMcy7U,4336
|
13
|
+
indexify/executor/function_executor/function_executor_states_container.py,sha256=MFtHNMkzL3zzoa4YdWaw6X21dzo3P4vdEyJ_OKAuTlw,3766
|
14
|
+
indexify/executor/function_executor/function_executor_status.py,sha256=Ms8tHG0wlw__pToeQIfBV6SO9c4tPu3UQgJAwXUkg2M,3597
|
15
|
+
indexify/executor/function_executor/health_checker.py,sha256=EVA65Rn7eAC7HXzhZgScMDc57ODnvFopopdye7j1hfU,6254
|
16
|
+
indexify/executor/function_executor/invocation_state_client.py,sha256=VTpeNxxfsa0ej20Q_ker5RZVdHiu59HWd5qNOjo6DBQ,9800
|
13
17
|
indexify/executor/function_executor/metrics/function_executor.py,sha256=TDksxLRJr-P9ZKhF2Orsaxzzb4lVIBxFEjd_9Zv53Ng,6313
|
14
18
|
indexify/executor/function_executor/metrics/function_executor_state.py,sha256=qheMhnoiYLiZB7ky5EyegfDy4Mr0Zh83bOE0gJ38YmU,1607
|
15
19
|
indexify/executor/function_executor/metrics/function_executor_state_container.py,sha256=6rrAfml-TivjkHatCM4BLY7jmVs523Wzb6QIysncc-0,302
|
@@ -20,19 +24,23 @@ indexify/executor/function_executor/server/client_configuration.py,sha256=gOywMu
|
|
20
24
|
indexify/executor/function_executor/server/function_executor_server.py,sha256=_DLivLDikupZusRk8gVWDk7fWPT9XjZ4un1yWSlOObs,883
|
21
25
|
indexify/executor/function_executor/server/function_executor_server_factory.py,sha256=cP93a3t1AfGx8qwageNLVdTwG52UOwzYNbbyrPq2TUQ,1692
|
22
26
|
indexify/executor/function_executor/server/subprocess_function_executor_server.py,sha256=JekDOqF7oFD4J6zcN3xB0Dxd1cgpEXMOsb_rKZOeBlI,668
|
23
|
-
indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py,sha256=
|
24
|
-
indexify/executor/function_executor/single_task_runner.py,sha256=
|
27
|
+
indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py,sha256=g1AUbhOoPsdhp_50Ayahdyv1Ix5-nEBE8orOQfkATpM,4470
|
28
|
+
indexify/executor/function_executor/single_task_runner.py,sha256=OY3a2znwtuv0_Pqn9r5ScGhekNn1OquznKmaGnQL71k,13979
|
25
29
|
indexify/executor/function_executor/task_input.py,sha256=wSrHR4m0juiGClQyeVdhRC37QzDt6Rrjq-ZXJkfBi9k,584
|
26
|
-
indexify/executor/function_executor/task_output.py,sha256=
|
27
|
-
indexify/executor/grpc/channel_manager.py,sha256=
|
30
|
+
indexify/executor/function_executor/task_output.py,sha256=snh25Ynj7uss1SUIeivpDYWdRkODoDpdPrQrGvnjyIs,3077
|
31
|
+
indexify/executor/grpc/channel_manager.py,sha256=ihDkLoiGBLfSmoA2szbntjCfL3E_NDf5LABRXE7YRec,6330
|
32
|
+
indexify/executor/grpc/function_executor_controller.py,sha256=b_xqiXsA79yIMCHtRJv0i0px6QMToIj9nCTc_km9fHk,16070
|
28
33
|
indexify/executor/grpc/metrics/channel_manager.py,sha256=k-WArgklmP5WhjcmFmrgRblB7yc3XlaOXO8owRyV-mw,649
|
34
|
+
indexify/executor/grpc/metrics/state_reconciler.py,sha256=0aI2IM4XztKxFa7NCxYSLafw_iiej3p07yEiKyewXIM,585
|
29
35
|
indexify/executor/grpc/metrics/state_reporter.py,sha256=GggBEjMzQUYIG95LtTS4fUg1u9jYowkaXoUXppAXucs,543
|
30
|
-
indexify/executor/grpc/
|
31
|
-
indexify/executor/grpc/
|
36
|
+
indexify/executor/grpc/metrics/task_controller.py,sha256=9Nm86nGxL2rZ3rAORB0_CBdO--Fe4MBrewVW4CqGyOU,222
|
37
|
+
indexify/executor/grpc/state_reconciler.py,sha256=Yx_r1oUBGWjHWqUSUhap2ALZpz_o1Ue-SdL7BOgWQQU,19273
|
38
|
+
indexify/executor/grpc/state_reporter.py,sha256=iixvl1nzJ_SfQhTUJpBEfiVlFPvOxQxvZyqT5Szk43Q,10503
|
39
|
+
indexify/executor/grpc/task_controller.py,sha256=IQkxKYfj8TLhmoLi4xDVjEKBZlK6ttP1w2a9kOlX58A,20277
|
32
40
|
indexify/executor/metrics/downloader.py,sha256=lctPh8xjkXeLEFJnl1hNrD1yEhLhIl5sggsR4Yoe_Zc,2746
|
33
41
|
indexify/executor/metrics/executor.py,sha256=ua-Vv_k1CB4juJdF7tEBQbBMksqWAA3iXKKMKXZUCLk,2369
|
34
42
|
indexify/executor/metrics/task_fetcher.py,sha256=iJEwCLzYr2cuz7hRvNiqaa2nvQP4OrA0hm0iJY0YKG0,736
|
35
|
-
indexify/executor/metrics/task_reporter.py,sha256=
|
43
|
+
indexify/executor/metrics/task_reporter.py,sha256=44VT_c7njXlTtPl4xjlsYrIHpaiVAnvhhQdj56RPU6o,1215
|
36
44
|
indexify/executor/metrics/task_runner.py,sha256=ZGFrl7zzfUdgPZnklxRIbnv9wVcHIQRhOGNqn9V2hSk,2047
|
37
45
|
indexify/executor/monitoring/function_allowlist.py,sha256=wUGeiv3aAGWMlQXzHXq9O6MVHby6Tu-zY4U0MyWiQu0,683
|
38
46
|
indexify/executor/monitoring/handler.py,sha256=Cj1cu_LcsAP0tdviqNhoEtGm4h0OJAxxzW9C2YdNXYU,240
|
@@ -45,13 +53,13 @@ indexify/executor/monitoring/server.py,sha256=yzdYhcxnmY6uTQUMt3vatF5jilN52ZtfFs
|
|
45
53
|
indexify/executor/monitoring/startup_probe_handler.py,sha256=zXXsBU15SMlBx1bSFpxWDfed1VHtKKnwvLQ8-frpG98,425
|
46
54
|
indexify/executor/runtime_probes.py,sha256=bo6Dq6AGZpJH099j0DHtVSDEH80tv3j9MXf3VXSx_p8,2182
|
47
55
|
indexify/executor/task_fetcher.py,sha256=p3iEsWyGi0ZMPAv0183smzOUD1KycQ_dXsyd9mpB9IU,3529
|
48
|
-
indexify/executor/task_reporter.py,sha256=
|
49
|
-
indexify/executor/task_runner.py,sha256=
|
50
|
-
indexify/proto/executor_api.proto,sha256
|
51
|
-
indexify/proto/executor_api_pb2.py,sha256=
|
52
|
-
indexify/proto/executor_api_pb2.pyi,sha256=
|
53
|
-
indexify/proto/executor_api_pb2_grpc.py,sha256=
|
54
|
-
indexify-0.3.
|
55
|
-
indexify-0.3.
|
56
|
-
indexify-0.3.
|
57
|
-
indexify-0.3.
|
56
|
+
indexify/executor/task_reporter.py,sha256=AbestQmKxpJo0pfJWnB_9ziOnAdFmMScvWzFTeyG6X4,12382
|
57
|
+
indexify/executor/task_runner.py,sha256=2-f6Uupu_aVPg34G27yuiPTC6eE4XnT-qizpzPryzDI,7134
|
58
|
+
indexify/proto/executor_api.proto,sha256=K1lwFmk042GA1tp8s633FZJVg6Fi8f8LtAuFj8Gz7XU,9930
|
59
|
+
indexify/proto/executor_api_pb2.py,sha256=5y570_FIgc6WFhHVAKWFieMuUhyKBA7rPJJ4DJ5hcCM,14054
|
60
|
+
indexify/proto/executor_api_pb2.pyi,sha256=5eJJJjPNdTMSttNUOtzGwADbASsCh7138de_Y3l8uq4,18612
|
61
|
+
indexify/proto/executor_api_pb2_grpc.py,sha256=GGiDtyQlA2382E_ZyKUBYcWNEJHH_RlulieStKfkJXI,9514
|
62
|
+
indexify-0.3.20.dist-info/METADATA,sha256=rg0FBC-z-e_Ft09YgQ5ldhaS3u5XKtmqxNFFMa9074A,1198
|
63
|
+
indexify-0.3.20.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
|
64
|
+
indexify-0.3.20.dist-info/entry_points.txt,sha256=GU9wmsgvN7nQw3N2X0PMYn1RSvF6CrhH9RuC2D8d3Gk,53
|
65
|
+
indexify-0.3.20.dist-info/RECORD,,
|
File without changes
|
File without changes
|