flyte 0.2.0b11__py3-none-any.whl → 0.2.0b13__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.
Potentially problematic release.
This version of flyte might be problematic. Click here for more details.
- flyte/_bin/runtime.py +11 -2
- flyte/_deploy.py +29 -0
- flyte/_initialize.py +7 -6
- flyte/_internal/controllers/remote/_action.py +5 -0
- flyte/_internal/controllers/remote/_controller.py +43 -3
- flyte/_internal/controllers/remote/_core.py +7 -0
- flyte/_internal/runtime/convert.py +61 -7
- flyte/_internal/runtime/task_serde.py +1 -1
- flyte/_protos/common/list_pb2.py +3 -3
- flyte/_protos/common/list_pb2.pyi +2 -0
- flyte/_protos/workflow/environment_pb2.py +29 -0
- flyte/_protos/workflow/environment_pb2.pyi +12 -0
- flyte/_protos/workflow/environment_pb2_grpc.py +4 -0
- flyte/_protos/workflow/queue_service_pb2.py +30 -29
- flyte/_protos/workflow/queue_service_pb2.pyi +5 -2
- flyte/_protos/workflow/run_definition_pb2.py +61 -61
- flyte/_protos/workflow/run_definition_pb2.pyi +4 -2
- flyte/_protos/workflow/run_service_pb2.py +20 -24
- flyte/_protos/workflow/run_service_pb2.pyi +2 -6
- flyte/_protos/workflow/state_service_pb2.py +36 -28
- flyte/_protos/workflow/state_service_pb2.pyi +19 -15
- flyte/_protos/workflow/state_service_pb2_grpc.py +28 -28
- flyte/_protos/workflow/task_definition_pb2.py +28 -22
- flyte/_protos/workflow/task_definition_pb2.pyi +16 -4
- flyte/_protos/workflow/task_service_pb2.py +27 -11
- flyte/_protos/workflow/task_service_pb2.pyi +29 -1
- flyte/_protos/workflow/task_service_pb2_grpc.py +34 -0
- flyte/_run.py +6 -0
- flyte/_trace.py +0 -2
- flyte/_utils/__init__.py +4 -0
- flyte/_utils/org_discovery.py +26 -0
- flyte/_version.py +2 -2
- flyte/cli/_abort.py +4 -2
- flyte/cli/_common.py +8 -2
- flyte/cli/_create.py +4 -3
- flyte/cli/_deploy.py +15 -8
- flyte/cli/_get.py +13 -12
- flyte/cli/_run.py +1 -2
- flyte/cli/main.py +1 -1
- flyte/remote/__init__.py +2 -1
- flyte/remote/_client/_protocols.py +2 -0
- flyte/remote/_task.py +141 -9
- flyte/syncify/_api.py +1 -2
- flyte/types/_type_engine.py +83 -9
- flyte-0.2.0b13.dist-info/METADATA +249 -0
- {flyte-0.2.0b11.dist-info → flyte-0.2.0b13.dist-info}/RECORD +49 -46
- flyte-0.2.0b11.dist-info/METADATA +0 -181
- {flyte-0.2.0b11.dist-info → flyte-0.2.0b13.dist-info}/WHEEL +0 -0
- {flyte-0.2.0b11.dist-info → flyte-0.2.0b13.dist-info}/entry_points.txt +0 -0
- {flyte-0.2.0b11.dist-info → flyte-0.2.0b13.dist-info}/top_level.txt +0 -0
flyte/_bin/runtime.py
CHANGED
|
@@ -78,7 +78,7 @@ def main(
|
|
|
78
78
|
|
|
79
79
|
import flyte
|
|
80
80
|
import flyte._utils as utils
|
|
81
|
-
from flyte._initialize import
|
|
81
|
+
from flyte._initialize import init
|
|
82
82
|
from flyte._internal.controllers import create_controller
|
|
83
83
|
from flyte._internal.imagebuild.image_builder import ImageCache
|
|
84
84
|
from flyte._internal.runtime.entrypoints import load_and_run_task
|
|
@@ -112,7 +112,16 @@ def main(
|
|
|
112
112
|
logger.debug(f"Using controller endpoint: {ep} with kwargs: {controller_kwargs}")
|
|
113
113
|
|
|
114
114
|
bundle = CodeBundle(tgz=tgz, pkl=pkl, destination=dest, computed_version=version)
|
|
115
|
-
|
|
115
|
+
# We init regular client here so that reference tasks can work
|
|
116
|
+
# Current reference tasks will not work with remote controller, because we create 2 different
|
|
117
|
+
# channels on different threads and this is not supported by grpcio or the auth system. It ends up leading
|
|
118
|
+
# File "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi", line 147,
|
|
119
|
+
# in grpc._cython.cygrpc.PollerCompletionQueue._handle_events
|
|
120
|
+
# BlockingIOError: [Errno 11] Resource temporarily unavailable
|
|
121
|
+
# init(org=org, project=project, domain=domain, **controller_kwargs)
|
|
122
|
+
# TODO solution is to use a single channel for both controller and reference tasks, but this requires a refactor
|
|
123
|
+
init()
|
|
124
|
+
# Controller is created with the same kwargs as init, so that it can be used to run tasks
|
|
116
125
|
controller = create_controller(ct="remote", **controller_kwargs)
|
|
117
126
|
|
|
118
127
|
ic = ImageCache.from_transport(image_cache) if image_cache else None
|
flyte/_deploy.py
CHANGED
|
@@ -46,6 +46,35 @@ class Deployment:
|
|
|
46
46
|
)
|
|
47
47
|
return f"Deployment(envs=[{env_names}], tasks=[{task_names_versions}])"
|
|
48
48
|
|
|
49
|
+
def task_repr(self) -> List[List[Tuple[str, str]]]:
|
|
50
|
+
"""
|
|
51
|
+
Returns a detailed representation of the deployed tasks.
|
|
52
|
+
"""
|
|
53
|
+
tuples = []
|
|
54
|
+
if self.deployed_tasks:
|
|
55
|
+
for task in self.deployed_tasks:
|
|
56
|
+
tuples.append(
|
|
57
|
+
[
|
|
58
|
+
("name", task.task_template.id.name),
|
|
59
|
+
("version", task.task_template.id.version),
|
|
60
|
+
]
|
|
61
|
+
)
|
|
62
|
+
return tuples
|
|
63
|
+
|
|
64
|
+
def env_repr(self) -> List[List[Tuple[str, str]]]:
|
|
65
|
+
"""
|
|
66
|
+
Returns a detailed representation of the deployed environments.
|
|
67
|
+
"""
|
|
68
|
+
tuples = []
|
|
69
|
+
for env_name, env in self.envs.items():
|
|
70
|
+
tuples.append(
|
|
71
|
+
[
|
|
72
|
+
("environment", env_name),
|
|
73
|
+
("image", env.image.uri if isinstance(env.image, Image) else env.image or ""),
|
|
74
|
+
]
|
|
75
|
+
)
|
|
76
|
+
return tuples
|
|
77
|
+
|
|
49
78
|
|
|
50
79
|
async def _deploy_task(
|
|
51
80
|
task: TaskTemplate, serialization_context: SerializationContext, dryrun: bool = False
|
flyte/_initialize.py
CHANGED
|
@@ -32,6 +32,7 @@ class CommonInit:
|
|
|
32
32
|
org: str | None = None
|
|
33
33
|
project: str | None = None
|
|
34
34
|
domain: str | None = None
|
|
35
|
+
batch_size: int = 1000
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
@dataclass(init=True, kw_only=True, repr=True, eq=True, frozen=True)
|
|
@@ -130,6 +131,7 @@ async def init(
|
|
|
130
131
|
rpc_retries: int = 3,
|
|
131
132
|
http_proxy_url: str | None = None,
|
|
132
133
|
storage: Storage | None = None,
|
|
134
|
+
batch_size: int = 1000,
|
|
133
135
|
) -> None:
|
|
134
136
|
"""
|
|
135
137
|
Initialize the Flyte system with the given configuration. This method should be called before any other Flyte
|
|
@@ -162,13 +164,12 @@ async def init(
|
|
|
162
164
|
:param insecure: insecure flag for the client
|
|
163
165
|
:param storage: Optional blob store (S3, GCS, Azure) configuration if needed to access (i.e. using Minio)
|
|
164
166
|
:param org: Optional organization override for the client. Should be set by auth instead.
|
|
165
|
-
:param
|
|
167
|
+
:param batch_size: Optional batch size for operations that use listings, defaults to 1000, so limit larger than
|
|
168
|
+
batch_size will be split into multiple requests.
|
|
166
169
|
|
|
167
170
|
:return: None
|
|
168
171
|
"""
|
|
169
|
-
from flyte._utils import get_cwd_editable_install
|
|
170
|
-
|
|
171
|
-
from ._utils.org_discovery import org_from_endpoint
|
|
172
|
+
from flyte._utils import get_cwd_editable_install, org_from_endpoint, sanitize_endpoint
|
|
172
173
|
|
|
173
174
|
interactive_mode = ipython_check()
|
|
174
175
|
|
|
@@ -178,8 +179,7 @@ async def init(
|
|
|
178
179
|
|
|
179
180
|
global _init_config # noqa: PLW0603
|
|
180
181
|
|
|
181
|
-
|
|
182
|
-
endpoint = f"dns:///{endpoint}"
|
|
182
|
+
endpoint = sanitize_endpoint(endpoint)
|
|
183
183
|
|
|
184
184
|
with _init_lock:
|
|
185
185
|
client = None
|
|
@@ -209,6 +209,7 @@ async def init(
|
|
|
209
209
|
client=client,
|
|
210
210
|
storage=storage,
|
|
211
211
|
org=org or org_from_endpoint(endpoint),
|
|
212
|
+
batch_size=batch_size,
|
|
212
213
|
)
|
|
213
214
|
|
|
214
215
|
|
|
@@ -28,6 +28,7 @@ class Action:
|
|
|
28
28
|
started: bool = False
|
|
29
29
|
retries: int = 0
|
|
30
30
|
client_err: Exception | None = None # This error is set when something goes wrong in the controller.
|
|
31
|
+
cache_key: str | None = None # None means no caching, otherwise it is the version of the cache.
|
|
31
32
|
|
|
32
33
|
@property
|
|
33
34
|
def name(self) -> str:
|
|
@@ -91,6 +92,8 @@ class Action:
|
|
|
91
92
|
if not self.started:
|
|
92
93
|
self.task = action.task
|
|
93
94
|
|
|
95
|
+
self.cache_key = action.cache_key
|
|
96
|
+
|
|
94
97
|
def set_client_error(self, exc: Exception):
|
|
95
98
|
self.client_err = exc
|
|
96
99
|
|
|
@@ -106,6 +109,7 @@ class Action:
|
|
|
106
109
|
task_spec: task_definition_pb2.TaskSpec,
|
|
107
110
|
inputs_uri: str,
|
|
108
111
|
run_output_base: str,
|
|
112
|
+
cache_key: str | None = None,
|
|
109
113
|
) -> Action:
|
|
110
114
|
return cls(
|
|
111
115
|
action_id=sub_action_id,
|
|
@@ -115,6 +119,7 @@ class Action:
|
|
|
115
119
|
task=task_spec,
|
|
116
120
|
inputs_uri=inputs_uri,
|
|
117
121
|
run_output_base=run_output_base,
|
|
122
|
+
cache_key=cache_key,
|
|
118
123
|
)
|
|
119
124
|
|
|
120
125
|
@classmethod
|
|
@@ -174,16 +174,35 @@ class RemoteController(Controller):
|
|
|
174
174
|
)
|
|
175
175
|
|
|
176
176
|
task_spec = translate_task_to_wire(_task, new_serialization_context)
|
|
177
|
-
|
|
178
177
|
serialized_inputs = inputs.proto_inputs.SerializeToString(deterministic=True)
|
|
178
|
+
|
|
179
|
+
inputs_hash = convert.generate_inputs_hash(serialized_inputs)
|
|
179
180
|
sub_action_id, sub_action_output_path = convert.generate_sub_action_id_and_output_path(
|
|
180
|
-
tctx, task_spec,
|
|
181
|
+
tctx, task_spec, inputs_hash, _task_call_seq
|
|
181
182
|
)
|
|
182
183
|
|
|
183
184
|
inputs_uri = io.inputs_path(sub_action_output_path)
|
|
184
185
|
await upload_inputs_with_retry(serialized_inputs, inputs_uri)
|
|
186
|
+
|
|
187
|
+
md = task_spec.task_template.metadata
|
|
188
|
+
ignored_input_vars = []
|
|
189
|
+
if len(md.cache_ignore_input_vars) > 0:
|
|
190
|
+
ignored_input_vars = list(md.cache_ignore_input_vars)
|
|
191
|
+
cache_key = None
|
|
192
|
+
if task_spec.task_template.metadata and task_spec.task_template.metadata.discoverable:
|
|
193
|
+
discovery_version = task_spec.task_template.metadata.discovery_version
|
|
194
|
+
cache_key = convert.generate_cache_key_hash(
|
|
195
|
+
_task.name,
|
|
196
|
+
inputs_hash,
|
|
197
|
+
task_spec.task_template.interface,
|
|
198
|
+
discovery_version,
|
|
199
|
+
ignored_input_vars,
|
|
200
|
+
inputs.proto_inputs,
|
|
201
|
+
)
|
|
202
|
+
|
|
185
203
|
# Clear to free memory
|
|
186
204
|
serialized_inputs = None # type: ignore
|
|
205
|
+
inputs_hash = None # type: ignore
|
|
187
206
|
|
|
188
207
|
action = Action.from_task(
|
|
189
208
|
sub_action_id=run_definition_pb2.ActionIdentifier(
|
|
@@ -200,6 +219,7 @@ class RemoteController(Controller):
|
|
|
200
219
|
task_spec=task_spec,
|
|
201
220
|
inputs_uri=inputs_uri,
|
|
202
221
|
run_output_base=tctx.run_base_dir,
|
|
222
|
+
cache_key=cache_key,
|
|
203
223
|
)
|
|
204
224
|
|
|
205
225
|
try:
|
|
@@ -400,14 +420,33 @@ class RemoteController(Controller):
|
|
|
400
420
|
inputs = await convert.convert_from_native_to_inputs(native_interface, *args, **kwargs)
|
|
401
421
|
serialized_inputs = inputs.proto_inputs.SerializeToString(deterministic=True)
|
|
402
422
|
|
|
423
|
+
inputs_hash = convert.generate_inputs_hash(serialized_inputs)
|
|
403
424
|
sub_action_id, sub_action_output_path = convert.generate_sub_action_id_and_output_path(
|
|
404
|
-
tctx, task_name,
|
|
425
|
+
tctx, task_name, inputs_hash, invoke_seq_num
|
|
405
426
|
)
|
|
406
427
|
|
|
407
428
|
inputs_uri = io.inputs_path(sub_action_output_path)
|
|
408
429
|
await upload_inputs_with_retry(serialized_inputs, inputs_uri)
|
|
430
|
+
# cache key - task name, task signature, inputs, cache version
|
|
431
|
+
cache_key = None
|
|
432
|
+
md = _task.spec.task_template.metadata
|
|
433
|
+
ignored_input_vars = []
|
|
434
|
+
if len(md.cache_ignore_input_vars) > 0:
|
|
435
|
+
ignored_input_vars = list(md.cache_ignore_input_vars)
|
|
436
|
+
if _task.spec.task_template.metadata and _task.spec.task_template.metadata.discoverable:
|
|
437
|
+
discovery_version = _task.spec.task_template.metadata.discovery_version
|
|
438
|
+
cache_key = convert.generate_cache_key_hash(
|
|
439
|
+
task_name,
|
|
440
|
+
inputs_hash,
|
|
441
|
+
_task.spec.task_template.interface,
|
|
442
|
+
discovery_version,
|
|
443
|
+
ignored_input_vars,
|
|
444
|
+
inputs.proto_inputs,
|
|
445
|
+
)
|
|
446
|
+
|
|
409
447
|
# Clear to free memory
|
|
410
448
|
serialized_inputs = None # type: ignore
|
|
449
|
+
inputs_hash = None # type: ignore
|
|
411
450
|
|
|
412
451
|
action = Action.from_task(
|
|
413
452
|
sub_action_id=run_definition_pb2.ActionIdentifier(
|
|
@@ -424,6 +463,7 @@ class RemoteController(Controller):
|
|
|
424
463
|
task_spec=_task.spec,
|
|
425
464
|
inputs_uri=inputs_uri,
|
|
426
465
|
run_output_base=tctx.run_base_dir,
|
|
466
|
+
cache_key=cache_key,
|
|
427
467
|
)
|
|
428
468
|
|
|
429
469
|
try:
|
|
@@ -7,6 +7,7 @@ from asyncio import Event
|
|
|
7
7
|
from typing import Awaitable, Coroutine, Optional
|
|
8
8
|
|
|
9
9
|
import grpc.aio
|
|
10
|
+
from google.protobuf.wrappers_pb2 import StringValue
|
|
10
11
|
|
|
11
12
|
import flyte.errors
|
|
12
13
|
from flyte._logging import log, logger
|
|
@@ -311,6 +312,11 @@ class Controller:
|
|
|
311
312
|
if not action.is_started() and action.task is not None:
|
|
312
313
|
logger.debug(f"Attempting to launch action: {action.name}")
|
|
313
314
|
try:
|
|
315
|
+
cache_key = None
|
|
316
|
+
logger.warning(f"Action {action.name} has cache version {action.cache_key}")
|
|
317
|
+
if action.cache_key:
|
|
318
|
+
cache_key = StringValue(value=action.cache_key)
|
|
319
|
+
|
|
314
320
|
await self._queue_service.EnqueueAction(
|
|
315
321
|
queue_service_pb2.EnqueueActionRequest(
|
|
316
322
|
action_id=action.action_id,
|
|
@@ -324,6 +330,7 @@ class Controller:
|
|
|
324
330
|
name=action.task.task_template.id.name,
|
|
325
331
|
),
|
|
326
332
|
spec=action.task,
|
|
333
|
+
cache_key=cache_key,
|
|
327
334
|
),
|
|
328
335
|
input_uri=action.inputs_uri,
|
|
329
336
|
run_output_base=action.run_output_base,
|
|
@@ -2,10 +2,13 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import base64
|
|
4
4
|
import hashlib
|
|
5
|
+
import inspect
|
|
5
6
|
from dataclasses import dataclass
|
|
6
|
-
from
|
|
7
|
+
from types import NoneType
|
|
8
|
+
from typing import Any, Dict, List, Tuple, Union, get_args
|
|
7
9
|
|
|
8
10
|
from flyteidl.core import execution_pb2, literals_pb2
|
|
11
|
+
from flyteidl.core.interface_pb2 import TypedInterface
|
|
9
12
|
|
|
10
13
|
import flyte.errors
|
|
11
14
|
import flyte.storage as storage
|
|
@@ -57,25 +60,38 @@ async def convert_inputs_to_native(inputs: Inputs, python_interface: NativeInter
|
|
|
57
60
|
return native_vals
|
|
58
61
|
|
|
59
62
|
|
|
63
|
+
def is_optional_type(tp) -> bool:
|
|
64
|
+
"""
|
|
65
|
+
True if the *annotation* `tp` is equivalent to Optional[…].
|
|
66
|
+
Works for Optional[T], Union[T, None], and T | None.
|
|
67
|
+
"""
|
|
68
|
+
return NoneType in get_args(tp) # fastest check
|
|
69
|
+
|
|
70
|
+
|
|
60
71
|
async def convert_from_native_to_inputs(interface: NativeInterface, *args, **kwargs) -> Inputs:
|
|
61
72
|
kwargs = interface.convert_to_kwargs(*args, **kwargs)
|
|
62
73
|
if len(kwargs) == 0:
|
|
63
74
|
return Inputs.empty()
|
|
75
|
+
|
|
64
76
|
# fill in defaults if missing
|
|
65
77
|
for input_name, (input_type, default_value) in interface.inputs.items():
|
|
66
78
|
if input_name not in kwargs:
|
|
67
|
-
if default_value is not None
|
|
79
|
+
if (default_value is not None and default_value is not inspect.Signature.empty) or (
|
|
80
|
+
default_value is None and is_optional_type(input_type)
|
|
81
|
+
):
|
|
68
82
|
kwargs[input_name] = default_value
|
|
69
|
-
# todo: fill in Nones for optional inputs
|
|
70
83
|
if len(kwargs) < len(interface.inputs):
|
|
71
84
|
raise ValueError(
|
|
72
85
|
f"Received {len(kwargs)} inputs but interface has {len(interface.inputs)}. "
|
|
73
86
|
f"Please provide all required inputs."
|
|
74
87
|
)
|
|
75
88
|
literal_map = await TypeEngine.dict_to_literal_map(kwargs, interface.get_input_types())
|
|
89
|
+
# Make sure we the interface, not literal_map or kwargs, because those may have a different order
|
|
76
90
|
return Inputs(
|
|
77
91
|
proto_inputs=run_definition_pb2.Inputs(
|
|
78
|
-
literals=[
|
|
92
|
+
literals=[
|
|
93
|
+
run_definition_pb2.NamedLiteral(name=k, value=literal_map.literals[k]) for k in interface.inputs.keys()
|
|
94
|
+
]
|
|
79
95
|
)
|
|
80
96
|
)
|
|
81
97
|
|
|
@@ -201,10 +217,48 @@ def hash_data(data: Union[str, bytes]) -> str:
|
|
|
201
217
|
return base64.b64encode(digest).decode("utf-8")
|
|
202
218
|
|
|
203
219
|
|
|
220
|
+
def generate_inputs_hash(serialized_inputs: str | bytes) -> str:
|
|
221
|
+
"""
|
|
222
|
+
Generate a hash for the inputs. This is used to uniquely identify the inputs for a task.
|
|
223
|
+
:return: A hexadecimal string representation of the hash.
|
|
224
|
+
"""
|
|
225
|
+
return hash_data(serialized_inputs)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def generate_cache_key_hash(
|
|
229
|
+
task_name: str,
|
|
230
|
+
inputs_hash: str,
|
|
231
|
+
task_interface: TypedInterface,
|
|
232
|
+
cache_version: str,
|
|
233
|
+
ignored_input_vars: List[str],
|
|
234
|
+
proto_inputs: run_definition_pb2.Inputs,
|
|
235
|
+
) -> str:
|
|
236
|
+
"""
|
|
237
|
+
Generate a cache key hash based on the inputs hash, task name, task interface, and cache version.
|
|
238
|
+
This is used to uniquely identify the cache key for a task.
|
|
239
|
+
|
|
240
|
+
:param task_name: The name of the task.
|
|
241
|
+
:param inputs_hash: The hash of the inputs.
|
|
242
|
+
:param task_interface: The interface of the task.
|
|
243
|
+
:param cache_version: The version of the cache.
|
|
244
|
+
:param ignored_input_vars: A list of input variable names to ignore when generating the cache key.
|
|
245
|
+
:param proto_inputs: The proto inputs for the task, only used if there are ignored inputs.
|
|
246
|
+
:return: A hexadecimal string representation of the cache key hash.
|
|
247
|
+
"""
|
|
248
|
+
if ignored_input_vars:
|
|
249
|
+
filtered = [named_lit for named_lit in proto_inputs.literals if named_lit.name not in ignored_input_vars]
|
|
250
|
+
final = run_definition_pb2.Inputs(literals=filtered)
|
|
251
|
+
final_inputs = final.SerializeToString(deterministic=True)
|
|
252
|
+
else:
|
|
253
|
+
final_inputs = inputs_hash
|
|
254
|
+
data = f"{final_inputs}{task_name}{task_interface.SerializeToString(deterministic=True)}{cache_version}"
|
|
255
|
+
return hash_data(data)
|
|
256
|
+
|
|
257
|
+
|
|
204
258
|
def generate_sub_action_id_and_output_path(
|
|
205
259
|
tctx: TaskContext,
|
|
206
260
|
task_spec_or_name: task_definition_pb2.TaskSpec | str,
|
|
207
|
-
|
|
261
|
+
inputs_hash: str,
|
|
208
262
|
invoke_seq: int,
|
|
209
263
|
) -> Tuple[ActionID, str]:
|
|
210
264
|
"""
|
|
@@ -213,14 +267,14 @@ def generate_sub_action_id_and_output_path(
|
|
|
213
267
|
action name = current action name + task name + input hash + group name (if available)
|
|
214
268
|
:param tctx:
|
|
215
269
|
:param task_spec_or_name: task specification or task name. Task name is only used in case of trace actions.
|
|
216
|
-
:param
|
|
270
|
+
:param inputs_hash: Consistent hash string of the inputs
|
|
217
271
|
:param invoke_seq: The sequence number of the invocation, used to differentiate between multiple invocations.
|
|
218
272
|
:return:
|
|
219
273
|
"""
|
|
220
274
|
current_action_id = tctx.action
|
|
221
275
|
current_output_path = tctx.run_base_dir
|
|
222
|
-
inputs_hash = hash_data(serialized_inputs)
|
|
223
276
|
if isinstance(task_spec_or_name, task_definition_pb2.TaskSpec):
|
|
277
|
+
task_spec_or_name.task_template.interface
|
|
224
278
|
task_hash = hash_data(task_spec_or_name.SerializeToString(deterministic=True))
|
|
225
279
|
else:
|
|
226
280
|
task_hash = task_spec_or_name
|
|
@@ -165,7 +165,7 @@ def get_proto_task(task: TaskTemplate, serialize_context: SerializationContext)
|
|
|
165
165
|
discoverable=cache_enabled,
|
|
166
166
|
discovery_version=cache_version,
|
|
167
167
|
cache_serializable=task_cache.serialize,
|
|
168
|
-
cache_ignore_input_vars=task_cache.
|
|
168
|
+
cache_ignore_input_vars=task_cache.get_ignored_inputs() if cache_enabled else None,
|
|
169
169
|
runtime=tasks_pb2.RuntimeMetadata(),
|
|
170
170
|
retries=get_proto_retry_strategy(task.retries),
|
|
171
171
|
timeout=get_proto_timeout(task.timeout),
|
flyte/_protos/common/list_pb2.py
CHANGED
|
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x63ommon/list.proto\x12\x0f\x63loudidl.common\"\x83\x01\n\x04Sort\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12=\n\tdirection\x18\x02 \x01(\x0e\x32\x1f.cloudidl.common.Sort.DirectionR\tdirection\"*\n\tDirection\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\xfe\x01\n\x0bListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x32\n\x07sort_by\x18\x03 \x01(\x0b\x32\x15.cloudidl.common.SortB\x02\x18\x01R\x06sortBy\x12\x31\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x17.cloudidl.common.FilterR\x07\x66ilters\x12\x1f\n\x0braw_filters\x18\x05 \x03(\tR\nrawFilters\x12;\n\x0esort_by_fields\x18\x06 \x03(\x0b\x32\x15.cloudidl.common.SortR\x0csortByFields\"\
|
|
16
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x63ommon/list.proto\x12\x0f\x63loudidl.common\"\x83\x01\n\x04Sort\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12=\n\tdirection\x18\x02 \x01(\x0e\x32\x1f.cloudidl.common.Sort.DirectionR\tdirection\"*\n\tDirection\x12\x0e\n\nDESCENDING\x10\x00\x12\r\n\tASCENDING\x10\x01\"\xfe\x01\n\x0bListRequest\x12\x14\n\x05limit\x18\x01 \x01(\rR\x05limit\x12\x14\n\x05token\x18\x02 \x01(\tR\x05token\x12\x32\n\x07sort_by\x18\x03 \x01(\x0b\x32\x15.cloudidl.common.SortB\x02\x18\x01R\x06sortBy\x12\x31\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x17.cloudidl.common.FilterR\x07\x66ilters\x12\x1f\n\x0braw_filters\x18\x05 \x03(\tR\nrawFilters\x12;\n\x0esort_by_fields\x18\x06 \x03(\x0b\x32\x15.cloudidl.common.SortR\x0csortByFields\"\xcc\x02\n\x06\x46ilter\x12<\n\x08\x66unction\x18\x01 \x01(\x0e\x32 .cloudidl.common.Filter.FunctionR\x08\x66unction\x12\x14\n\x05\x66ield\x18\x02 \x01(\tR\x05\x66ield\x12\x16\n\x06values\x18\x03 \x03(\tR\x06values\"\xd5\x01\n\x08\x46unction\x12\t\n\x05\x45QUAL\x10\x00\x12\r\n\tNOT_EQUAL\x10\x01\x12\x10\n\x0cGREATER_THAN\x10\x02\x12\x19\n\x15GREATER_THAN_OR_EQUAL\x10\x03\x12\r\n\tLESS_THAN\x10\x04\x12\x16\n\x12LESS_THAN_OR_EQUAL\x10\x05\x12\x0c\n\x08\x43ONTAINS\x10\x06\x12\x0c\n\x08VALUE_IN\x10\x07\x12\r\n\tENDS_WITH\x10\x0c\x12\x11\n\rNOT_ENDS_WITH\x10\r\x12\x1d\n\x19\x43ONTAINS_CASE_INSENSITIVE\x10\x0e\x42\xaa\x01\n\x13\x63om.cloudidl.commonB\tListProtoH\x02P\x01Z)github.com/unionai/cloud/gen/pb-go/common\xa2\x02\x03\x43\x43X\xaa\x02\x0f\x43loudidl.Common\xca\x02\x0f\x43loudidl\\Common\xe2\x02\x1b\x43loudidl\\Common\\GPBMetadata\xea\x02\x10\x43loudidl::Commonb\x06proto3')
|
|
17
17
|
|
|
18
18
|
_globals = globals()
|
|
19
19
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -30,7 +30,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
30
30
|
_globals['_LISTREQUEST']._serialized_start=173
|
|
31
31
|
_globals['_LISTREQUEST']._serialized_end=427
|
|
32
32
|
_globals['_FILTER']._serialized_start=430
|
|
33
|
-
_globals['_FILTER']._serialized_end=
|
|
33
|
+
_globals['_FILTER']._serialized_end=762
|
|
34
34
|
_globals['_FILTER_FUNCTION']._serialized_start=549
|
|
35
|
-
_globals['_FILTER_FUNCTION']._serialized_end=
|
|
35
|
+
_globals['_FILTER_FUNCTION']._serialized_end=762
|
|
36
36
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -50,6 +50,7 @@ class Filter(_message.Message):
|
|
|
50
50
|
VALUE_IN: _ClassVar[Filter.Function]
|
|
51
51
|
ENDS_WITH: _ClassVar[Filter.Function]
|
|
52
52
|
NOT_ENDS_WITH: _ClassVar[Filter.Function]
|
|
53
|
+
CONTAINS_CASE_INSENSITIVE: _ClassVar[Filter.Function]
|
|
53
54
|
EQUAL: Filter.Function
|
|
54
55
|
NOT_EQUAL: Filter.Function
|
|
55
56
|
GREATER_THAN: Filter.Function
|
|
@@ -60,6 +61,7 @@ class Filter(_message.Message):
|
|
|
60
61
|
VALUE_IN: Filter.Function
|
|
61
62
|
ENDS_WITH: Filter.Function
|
|
62
63
|
NOT_ENDS_WITH: Filter.Function
|
|
64
|
+
CONTAINS_CASE_INSENSITIVE: Filter.Function
|
|
63
65
|
FUNCTION_FIELD_NUMBER: _ClassVar[int]
|
|
64
66
|
FIELD_FIELD_NUMBER: _ClassVar[int]
|
|
65
67
|
VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: workflow/environment.proto
|
|
4
|
+
"""Generated protocol buffer code."""
|
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
|
6
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
7
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
8
|
+
from google.protobuf.internal import builder as _builder
|
|
9
|
+
# @@protoc_insertion_point(imports)
|
|
10
|
+
|
|
11
|
+
_sym_db = _symbol_database.Default()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
from flyte._protos.validate.validate import validate_pb2 as validate_dot_validate__pb2
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1aworkflow/environment.proto\x12\x11\x63loudidl.workflow\x1a\x17validate/validate.proto\",\n\x0b\x45nvironment\x12\x1d\n\x04name\x18\x01 \x01(\tB\t\xfa\x42\x06r\x04\x10\x01\x18?R\x04nameB\xbd\x01\n\x15\x63om.cloudidl.workflowB\x10\x45nvironmentProtoH\x02P\x01Z+github.com/unionai/cloud/gen/pb-go/workflow\xa2\x02\x03\x43WX\xaa\x02\x11\x43loudidl.Workflow\xca\x02\x11\x43loudidl\\Workflow\xe2\x02\x1d\x43loudidl\\Workflow\\GPBMetadata\xea\x02\x12\x43loudidl::Workflowb\x06proto3')
|
|
18
|
+
|
|
19
|
+
_globals = globals()
|
|
20
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
21
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'workflow.environment_pb2', _globals)
|
|
22
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
23
|
+
DESCRIPTOR._options = None
|
|
24
|
+
DESCRIPTOR._serialized_options = b'\n\025com.cloudidl.workflowB\020EnvironmentProtoH\002P\001Z+github.com/unionai/cloud/gen/pb-go/workflow\242\002\003CWX\252\002\021Cloudidl.Workflow\312\002\021Cloudidl\\Workflow\342\002\035Cloudidl\\Workflow\\GPBMetadata\352\002\022Cloudidl::Workflow'
|
|
25
|
+
_ENVIRONMENT.fields_by_name['name']._options = None
|
|
26
|
+
_ENVIRONMENT.fields_by_name['name']._serialized_options = b'\372B\006r\004\020\001\030?'
|
|
27
|
+
_globals['_ENVIRONMENT']._serialized_start=74
|
|
28
|
+
_globals['_ENVIRONMENT']._serialized_end=118
|
|
29
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from flyte._protos.validate.validate import validate_pb2 as _validate_pb2
|
|
2
|
+
from google.protobuf import descriptor as _descriptor
|
|
3
|
+
from google.protobuf import message as _message
|
|
4
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional
|
|
5
|
+
|
|
6
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
7
|
+
|
|
8
|
+
class Environment(_message.Message):
|
|
9
|
+
__slots__ = ["name"]
|
|
10
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
11
|
+
name: str
|
|
12
|
+
def __init__(self, name: _Optional[str] = ...) -> None: ...
|
|
@@ -12,12 +12,13 @@ _sym_db = _symbol_database.Default()
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
from flyteidl.core import types_pb2 as flyteidl_dot_core_dot_types__pb2
|
|
15
|
+
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
|
|
15
16
|
from flyte._protos.validate.validate import validate_pb2 as validate_dot_validate__pb2
|
|
16
17
|
from flyte._protos.workflow import run_definition_pb2 as workflow_dot_run__definition__pb2
|
|
17
18
|
from flyte._protos.workflow import task_definition_pb2 as workflow_dot_task__definition__pb2
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cworkflow/queue_service.proto\x12\x11\x63loudidl.workflow\x1a\x19\x66lyteidl/core/types.proto\x1a\x17validate/validate.proto\x1a\x1dworkflow/run_definition.proto\x1a\x1eworkflow/task_definition.proto\"\x7f\n\x10WorkerIdentifier\x12+\n\x0corganization\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0corganization\x12!\n\x07\x63luster\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x07\x63luster\x12\x1b\n\x04name\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"\x8a\x04\n\x14\x45nqueueActionRequest\x12J\n\taction_id\x18\x01 \x01(\x0b\x32#.cloudidl.workflow.ActionIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08\x61\x63tionId\x12\x31\n\x12parent_action_name\x18\x02 \x01(\tH\x01R\x10parentActionName\x88\x01\x01\x12$\n\tinput_uri\x18\x06 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x08inputUri\x12/\n\x0frun_output_base\x18\x07 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\rrunOutputBase\x12\x14\n\x05group\x18\x08 \x01(\tR\x05group\x12\x18\n\x07subject\x18\t \x01(\tR\x07subject\x12=\n\x04task\x18\n \x01(\x0b\x32\x1d.cloudidl.workflow.TaskActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\x04task\x12@\n\x05trace\x18\x0b \x01(\x0b\x32\x1e.cloudidl.workflow.TraceActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\x05trace\x12L\n\tcondition\x18\x0c \x01(\x0b\x32\".cloudidl.workflow.ConditionActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\tconditionB\x06\n\x04specB\x15\n\x13_parent_action_name\"
|
|
21
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cworkflow/queue_service.proto\x12\x11\x63loudidl.workflow\x1a\x19\x66lyteidl/core/types.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17validate/validate.proto\x1a\x1dworkflow/run_definition.proto\x1a\x1eworkflow/task_definition.proto\"\x7f\n\x10WorkerIdentifier\x12+\n\x0corganization\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x0corganization\x12!\n\x07\x63luster\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x07\x63luster\x12\x1b\n\x04name\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"\x8a\x04\n\x14\x45nqueueActionRequest\x12J\n\taction_id\x18\x01 \x01(\x0b\x32#.cloudidl.workflow.ActionIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08\x61\x63tionId\x12\x31\n\x12parent_action_name\x18\x02 \x01(\tH\x01R\x10parentActionName\x88\x01\x01\x12$\n\tinput_uri\x18\x06 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x08inputUri\x12/\n\x0frun_output_base\x18\x07 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\rrunOutputBase\x12\x14\n\x05group\x18\x08 \x01(\tR\x05group\x12\x18\n\x07subject\x18\t \x01(\tR\x07subject\x12=\n\x04task\x18\n \x01(\x0b\x32\x1d.cloudidl.workflow.TaskActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\x04task\x12@\n\x05trace\x18\x0b \x01(\x0b\x32\x1e.cloudidl.workflow.TraceActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\x05trace\x12L\n\tcondition\x18\x0c \x01(\x0b\x32\".cloudidl.workflow.ConditionActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\tconditionB\x06\n\x04specB\x15\n\x13_parent_action_name\"\xb5\x01\n\nTaskAction\x12\x31\n\x02id\x18\x01 \x01(\x0b\x32!.cloudidl.workflow.TaskIdentifierR\x02id\x12\x39\n\x04spec\x18\x02 \x01(\x0b\x32\x1b.cloudidl.workflow.TaskSpecB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x04spec\x12\x39\n\tcache_key\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValueR\x08\x63\x61\x63heKey\"*\n\x0bTraceAction\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\"\x8a\x02\n\x0f\x43onditionAction\x12\x1b\n\x04name\x18\x01 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x04name\x12 \n\x06run_id\x18\x02 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00R\x05runId\x12&\n\taction_id\x18\x03 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01H\x00R\x08\x61\x63tionId\x12\x18\n\x06global\x18\x04 \x01(\x08H\x00R\x06global\x12.\n\x04type\x18\x06 \x01(\x0b\x32\x1a.flyteidl.core.LiteralTypeR\x04type\x12\x16\n\x06prompt\x18\x07 \x01(\tR\x06prompt\x12 \n\x0b\x64\x65scription\x18\x08 \x01(\tR\x0b\x64\x65scriptionB\x0c\n\x05scope\x12\x03\xf8\x42\x01\"\x17\n\x15\x45nqueueActionResponse\"Z\n\x15\x41\x62ortQueuedRunRequest\x12\x41\n\x06run_id\x18\x01 \x01(\x0b\x32 .cloudidl.workflow.RunIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x05runId\"\x18\n\x16\x41\x62ortQueuedRunResponse\"\x86\x03\n\x10HeartbeatRequest\x12J\n\tworker_id\x18\x01 \x01(\x0b\x32#.cloudidl.workflow.WorkerIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08workerId\x12O\n\x11\x61\x63tive_action_ids\x18\x02 \x03(\x0b\x32#.cloudidl.workflow.ActionIdentifierR\x0f\x61\x63tiveActionIds\x12S\n\x13terminal_action_ids\x18\x03 \x03(\x0b\x32#.cloudidl.workflow.ActionIdentifierR\x11terminalActionIds\x12Q\n\x12\x61\x62orted_action_ids\x18\x04 \x03(\x0b\x32#.cloudidl.workflow.ActionIdentifierR\x10\x61\x62ortedActionIds\x12-\n\x12\x61vailable_capacity\x18\x05 \x01(\x05R\x11\x61vailableCapacity\"\xe4\x01\n\x11HeartbeatResponse\x12\x37\n\nnew_leases\x18\x01 \x03(\x0b\x32\x18.cloudidl.workflow.LeaseR\tnewLeases\x12?\n\x0e\x61\x62orted_leases\x18\x02 \x03(\x0b\x32\x18.cloudidl.workflow.LeaseR\rabortedLeases\x12U\n\x14\x66inalized_action_ids\x18\x03 \x03(\x0b\x32#.cloudidl.workflow.ActionIdentifierR\x12\x66inalizedActionIds\"a\n\x13StreamLeasesRequest\x12J\n\tworker_id\x18\x01 \x01(\x0b\x32#.cloudidl.workflow.WorkerIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08workerId\"H\n\x14StreamLeasesResponse\x12\x30\n\x06leases\x18\x01 \x03(\x0b\x32\x18.cloudidl.workflow.LeaseR\x06leases\"\xbe\x03\n\x05Lease\x12J\n\taction_id\x18\x01 \x01(\x0b\x32#.cloudidl.workflow.ActionIdentifierB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01R\x08\x61\x63tionId\x12\x31\n\x12parent_action_name\x18\x02 \x01(\tH\x01R\x10parentActionName\x88\x01\x01\x12$\n\tinput_uri\x18\x04 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\x08inputUri\x12/\n\x0frun_output_base\x18\x05 \x01(\tB\x07\xfa\x42\x04r\x02\x10\x01R\rrunOutputBase\x12=\n\x04task\x18\x06 \x01(\x0b\x32\x1d.cloudidl.workflow.TaskActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\x04task\x12L\n\tcondition\x18\x07 \x01(\x0b\x32\".cloudidl.workflow.ConditionActionB\x08\xfa\x42\x05\x8a\x01\x02\x10\x01H\x00R\tcondition\x12\x14\n\x05group\x18\x08 \x01(\tR\x05group\x12\x18\n\x07subject\x18\t \x01(\tR\x07subjectB\x0b\n\x04spec\x12\x03\xf8\x42\x01\x42\x15\n\x13_parent_action_name2\xa0\x03\n\x0cQueueService\x12\x64\n\rEnqueueAction\x12\'.cloudidl.workflow.EnqueueActionRequest\x1a(.cloudidl.workflow.EnqueueActionResponse\"\x00\x12g\n\x0e\x41\x62ortQueuedRun\x12(.cloudidl.workflow.AbortQueuedRunRequest\x1a).cloudidl.workflow.AbortQueuedRunResponse\"\x00\x12\\\n\tHeartbeat\x12#.cloudidl.workflow.HeartbeatRequest\x1a$.cloudidl.workflow.HeartbeatResponse\"\x00(\x01\x30\x01\x12\x63\n\x0cStreamLeases\x12&.cloudidl.workflow.StreamLeasesRequest\x1a\'.cloudidl.workflow.StreamLeasesResponse\"\x00\x30\x01\x42\xbe\x01\n\x15\x63om.cloudidl.workflowB\x11QueueServiceProtoH\x02P\x01Z+github.com/unionai/cloud/gen/pb-go/workflow\xa2\x02\x03\x43WX\xaa\x02\x11\x43loudidl.Workflow\xca\x02\x11\x43loudidl\\Workflow\xe2\x02\x1d\x43loudidl\\Workflow\\GPBMetadata\xea\x02\x12\x43loudidl::Workflowb\x06proto3')
|
|
21
22
|
|
|
22
23
|
_globals = globals()
|
|
23
24
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -73,32 +74,32 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
73
74
|
_LEASE.fields_by_name['task']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
74
75
|
_LEASE.fields_by_name['condition']._options = None
|
|
75
76
|
_LEASE.fields_by_name['condition']._serialized_options = b'\372B\005\212\001\002\020\001'
|
|
76
|
-
_globals['_WORKERIDENTIFIER']._serialized_start=
|
|
77
|
-
_globals['_WORKERIDENTIFIER']._serialized_end=
|
|
78
|
-
_globals['_ENQUEUEACTIONREQUEST']._serialized_start=
|
|
79
|
-
_globals['_ENQUEUEACTIONREQUEST']._serialized_end=
|
|
80
|
-
_globals['_TASKACTION']._serialized_start=
|
|
81
|
-
_globals['_TASKACTION']._serialized_end=
|
|
82
|
-
_globals['_TRACEACTION']._serialized_start=
|
|
83
|
-
_globals['_TRACEACTION']._serialized_end=
|
|
84
|
-
_globals['_CONDITIONACTION']._serialized_start=
|
|
85
|
-
_globals['_CONDITIONACTION']._serialized_end=
|
|
86
|
-
_globals['_ENQUEUEACTIONRESPONSE']._serialized_start=
|
|
87
|
-
_globals['_ENQUEUEACTIONRESPONSE']._serialized_end=
|
|
88
|
-
_globals['_ABORTQUEUEDRUNREQUEST']._serialized_start=
|
|
89
|
-
_globals['_ABORTQUEUEDRUNREQUEST']._serialized_end=
|
|
90
|
-
_globals['_ABORTQUEUEDRUNRESPONSE']._serialized_start=
|
|
91
|
-
_globals['_ABORTQUEUEDRUNRESPONSE']._serialized_end=
|
|
92
|
-
_globals['_HEARTBEATREQUEST']._serialized_start=
|
|
93
|
-
_globals['_HEARTBEATREQUEST']._serialized_end=
|
|
94
|
-
_globals['_HEARTBEATRESPONSE']._serialized_start=
|
|
95
|
-
_globals['_HEARTBEATRESPONSE']._serialized_end=
|
|
96
|
-
_globals['_STREAMLEASESREQUEST']._serialized_start=
|
|
97
|
-
_globals['_STREAMLEASESREQUEST']._serialized_end=
|
|
98
|
-
_globals['_STREAMLEASESRESPONSE']._serialized_start=
|
|
99
|
-
_globals['_STREAMLEASESRESPONSE']._serialized_end=
|
|
100
|
-
_globals['_LEASE']._serialized_start=
|
|
101
|
-
_globals['_LEASE']._serialized_end=
|
|
102
|
-
_globals['_QUEUESERVICE']._serialized_start=
|
|
103
|
-
_globals['_QUEUESERVICE']._serialized_end=
|
|
77
|
+
_globals['_WORKERIDENTIFIER']._serialized_start=198
|
|
78
|
+
_globals['_WORKERIDENTIFIER']._serialized_end=325
|
|
79
|
+
_globals['_ENQUEUEACTIONREQUEST']._serialized_start=328
|
|
80
|
+
_globals['_ENQUEUEACTIONREQUEST']._serialized_end=850
|
|
81
|
+
_globals['_TASKACTION']._serialized_start=853
|
|
82
|
+
_globals['_TASKACTION']._serialized_end=1034
|
|
83
|
+
_globals['_TRACEACTION']._serialized_start=1036
|
|
84
|
+
_globals['_TRACEACTION']._serialized_end=1078
|
|
85
|
+
_globals['_CONDITIONACTION']._serialized_start=1081
|
|
86
|
+
_globals['_CONDITIONACTION']._serialized_end=1347
|
|
87
|
+
_globals['_ENQUEUEACTIONRESPONSE']._serialized_start=1349
|
|
88
|
+
_globals['_ENQUEUEACTIONRESPONSE']._serialized_end=1372
|
|
89
|
+
_globals['_ABORTQUEUEDRUNREQUEST']._serialized_start=1374
|
|
90
|
+
_globals['_ABORTQUEUEDRUNREQUEST']._serialized_end=1464
|
|
91
|
+
_globals['_ABORTQUEUEDRUNRESPONSE']._serialized_start=1466
|
|
92
|
+
_globals['_ABORTQUEUEDRUNRESPONSE']._serialized_end=1490
|
|
93
|
+
_globals['_HEARTBEATREQUEST']._serialized_start=1493
|
|
94
|
+
_globals['_HEARTBEATREQUEST']._serialized_end=1883
|
|
95
|
+
_globals['_HEARTBEATRESPONSE']._serialized_start=1886
|
|
96
|
+
_globals['_HEARTBEATRESPONSE']._serialized_end=2114
|
|
97
|
+
_globals['_STREAMLEASESREQUEST']._serialized_start=2116
|
|
98
|
+
_globals['_STREAMLEASESREQUEST']._serialized_end=2213
|
|
99
|
+
_globals['_STREAMLEASESRESPONSE']._serialized_start=2215
|
|
100
|
+
_globals['_STREAMLEASESRESPONSE']._serialized_end=2287
|
|
101
|
+
_globals['_LEASE']._serialized_start=2290
|
|
102
|
+
_globals['_LEASE']._serialized_end=2736
|
|
103
|
+
_globals['_QUEUESERVICE']._serialized_start=2739
|
|
104
|
+
_globals['_QUEUESERVICE']._serialized_end=3155
|
|
104
105
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from flyteidl.core import types_pb2 as _types_pb2
|
|
2
|
+
from google.protobuf import wrappers_pb2 as _wrappers_pb2
|
|
2
3
|
from flyte._protos.validate.validate import validate_pb2 as _validate_pb2
|
|
3
4
|
from flyte._protos.workflow import run_definition_pb2 as _run_definition_pb2
|
|
4
5
|
from flyte._protos.workflow import task_definition_pb2 as _task_definition_pb2
|
|
@@ -42,12 +43,14 @@ class EnqueueActionRequest(_message.Message):
|
|
|
42
43
|
def __init__(self, action_id: _Optional[_Union[_run_definition_pb2.ActionIdentifier, _Mapping]] = ..., parent_action_name: _Optional[str] = ..., input_uri: _Optional[str] = ..., run_output_base: _Optional[str] = ..., group: _Optional[str] = ..., subject: _Optional[str] = ..., task: _Optional[_Union[TaskAction, _Mapping]] = ..., trace: _Optional[_Union[TraceAction, _Mapping]] = ..., condition: _Optional[_Union[ConditionAction, _Mapping]] = ...) -> None: ...
|
|
43
44
|
|
|
44
45
|
class TaskAction(_message.Message):
|
|
45
|
-
__slots__ = ["id", "spec"]
|
|
46
|
+
__slots__ = ["id", "spec", "cache_key"]
|
|
46
47
|
ID_FIELD_NUMBER: _ClassVar[int]
|
|
47
48
|
SPEC_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
CACHE_KEY_FIELD_NUMBER: _ClassVar[int]
|
|
48
50
|
id: _task_definition_pb2.TaskIdentifier
|
|
49
51
|
spec: _task_definition_pb2.TaskSpec
|
|
50
|
-
|
|
52
|
+
cache_key: _wrappers_pb2.StringValue
|
|
53
|
+
def __init__(self, id: _Optional[_Union[_task_definition_pb2.TaskIdentifier, _Mapping]] = ..., spec: _Optional[_Union[_task_definition_pb2.TaskSpec, _Mapping]] = ..., cache_key: _Optional[_Union[_wrappers_pb2.StringValue, _Mapping]] = ...) -> None: ...
|
|
51
54
|
|
|
52
55
|
class TraceAction(_message.Message):
|
|
53
56
|
__slots__ = ["name"]
|