flyte 2.0.0b9__py3-none-any.whl → 2.0.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.
- flyte/__init__.py +55 -31
- flyte/_context.py +1 -1
- flyte/_environment.py +5 -5
- flyte/_image.py +2 -13
- flyte/_initialize.py +1 -1
- flyte/_internal/imagebuild/remote_builder.py +20 -0
- flyte/_internal/runtime/reuse.py +7 -3
- flyte/_internal/runtime/task_serde.py +3 -1
- flyte/_logging.py +5 -2
- flyte/_reusable_environment.py +41 -19
- flyte/_run.py +9 -9
- flyte/_secret.py +9 -5
- flyte/_task.py +12 -7
- flyte/_task_environment.py +7 -9
- flyte/_tools.py +0 -13
- flyte/_version.py +16 -3
- flyte/cli/_common.py +16 -5
- flyte/cli/_gen.py +10 -1
- flyte/cli/_get.py +16 -14
- flyte/cli/_run.py +254 -20
- flyte/models.py +7 -0
- flyte/remote/_client/auth/_authenticators/base.py +8 -2
- flyte/remote/_client/auth/_channel.py +0 -6
- flyte/remote/_client/auth/_client_config.py +4 -2
- flyte/remote/_client/controlplane.py +14 -0
- flyte/remote/_task.py +17 -3
- flyte/storage/_storage.py +83 -7
- flyte/types/_type_engine.py +3 -33
- {flyte-2.0.0b9.dist-info → flyte-2.0.0b13.dist-info}/METADATA +1 -1
- {flyte-2.0.0b9.dist-info → flyte-2.0.0b13.dist-info}/RECORD +35 -35
- {flyte-2.0.0b9.data → flyte-2.0.0b13.data}/scripts/runtime.py +0 -0
- {flyte-2.0.0b9.dist-info → flyte-2.0.0b13.dist-info}/WHEEL +0 -0
- {flyte-2.0.0b9.dist-info → flyte-2.0.0b13.dist-info}/entry_points.txt +0 -0
- {flyte-2.0.0b9.dist-info → flyte-2.0.0b13.dist-info}/licenses/LICENSE +0 -0
- {flyte-2.0.0b9.dist-info → flyte-2.0.0b13.dist-info}/top_level.txt +0 -0
flyte/remote/_task.py
CHANGED
|
@@ -283,10 +283,11 @@ class TaskDetails(ToJSONMixin):
|
|
|
283
283
|
def override(
|
|
284
284
|
self,
|
|
285
285
|
*,
|
|
286
|
+
friendly_name: Optional[str] = None,
|
|
286
287
|
resources: Optional[flyte.Resources] = None,
|
|
287
288
|
retries: Union[int, flyte.RetryStrategy] = 0,
|
|
288
289
|
timeout: Optional[flyte.TimeoutType] = None,
|
|
289
|
-
|
|
290
|
+
env_vars: Optional[Dict[str, str]] = None,
|
|
290
291
|
secrets: Optional[flyte.SecretRequest] = None,
|
|
291
292
|
**kwargs: Any,
|
|
292
293
|
) -> TaskDetails:
|
|
@@ -296,12 +297,14 @@ class TaskDetails(ToJSONMixin):
|
|
|
296
297
|
f"Check the parameters for override method."
|
|
297
298
|
)
|
|
298
299
|
template = self.pb2.spec.task_template
|
|
300
|
+
if friendly_name:
|
|
301
|
+
self.pb2.metadata.short_name = friendly_name
|
|
299
302
|
if secrets:
|
|
300
303
|
template.security_context.CopyFrom(get_security_context(secrets))
|
|
301
304
|
if template.HasField("container"):
|
|
302
|
-
if
|
|
305
|
+
if env_vars:
|
|
303
306
|
template.container.env.clear()
|
|
304
|
-
template.container.env.extend([literals_pb2.KeyValuePair(key=k, value=v) for k, v in
|
|
307
|
+
template.container.env.extend([literals_pb2.KeyValuePair(key=k, value=v) for k, v in env_vars.items()])
|
|
305
308
|
if resources:
|
|
306
309
|
template.container.resources.CopyFrom(get_proto_resources(resources))
|
|
307
310
|
if retries:
|
|
@@ -382,6 +385,7 @@ class Task(ToJSONMixin):
|
|
|
382
385
|
async def listall(
|
|
383
386
|
cls,
|
|
384
387
|
by_task_name: str | None = None,
|
|
388
|
+
by_task_env: str | None = None,
|
|
385
389
|
project: str | None = None,
|
|
386
390
|
domain: str | None = None,
|
|
387
391
|
sort_by: Tuple[str, Literal["asc", "desc"]] | None = None,
|
|
@@ -391,6 +395,7 @@ class Task(ToJSONMixin):
|
|
|
391
395
|
Get all runs for the current project and domain.
|
|
392
396
|
|
|
393
397
|
:param by_task_name: If provided, only tasks with this name will be returned.
|
|
398
|
+
:param by_task_env: If provided, only tasks with this environment prefix will be returned.
|
|
394
399
|
:param project: The project to filter tasks by. If None, the current project will be used.
|
|
395
400
|
:param domain: The domain to filter tasks by. If None, the current domain will be used.
|
|
396
401
|
:param sort_by: The sorting criteria for the project list, in the format (field, order).
|
|
@@ -413,6 +418,15 @@ class Task(ToJSONMixin):
|
|
|
413
418
|
values=[by_task_name],
|
|
414
419
|
)
|
|
415
420
|
)
|
|
421
|
+
if by_task_env:
|
|
422
|
+
# ideally we should have a STARTS_WITH filter, but it is not supported yet
|
|
423
|
+
filters.append(
|
|
424
|
+
list_pb2.Filter(
|
|
425
|
+
function=list_pb2.Filter.Function.CONTAINS,
|
|
426
|
+
field="name",
|
|
427
|
+
values=[f"{by_task_env}."],
|
|
428
|
+
)
|
|
429
|
+
)
|
|
416
430
|
original_limit = limit
|
|
417
431
|
if limit > cfg.batch_size:
|
|
418
432
|
limit = cfg.batch_size
|
flyte/storage/_storage.py
CHANGED
|
@@ -3,7 +3,7 @@ import pathlib
|
|
|
3
3
|
import random
|
|
4
4
|
import tempfile
|
|
5
5
|
import typing
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import AsyncGenerator, Optional
|
|
7
7
|
from uuid import UUID
|
|
8
8
|
|
|
9
9
|
import fsspec
|
|
@@ -15,6 +15,17 @@ from obstore.fsspec import register
|
|
|
15
15
|
from flyte._initialize import get_storage
|
|
16
16
|
from flyte._logging import logger
|
|
17
17
|
|
|
18
|
+
_OBSTORE_SUPPORTED_PROTOCOLS = ["s3", "gs", "abfs", "abfss"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _is_obstore_supported_protocol(protocol: str) -> bool:
|
|
22
|
+
"""
|
|
23
|
+
Check if the given protocol is supported by obstore.
|
|
24
|
+
:param protocol: Protocol to check.
|
|
25
|
+
:return: True if the protocol is supported, False otherwise.
|
|
26
|
+
"""
|
|
27
|
+
return protocol in _OBSTORE_SUPPORTED_PROTOCOLS
|
|
28
|
+
|
|
18
29
|
|
|
19
30
|
def is_remote(path: typing.Union[pathlib.Path | str]) -> bool:
|
|
20
31
|
"""
|
|
@@ -178,6 +189,36 @@ async def put(from_path: str, to_path: Optional[str] = None, recursive: bool = F
|
|
|
178
189
|
return to_path
|
|
179
190
|
|
|
180
191
|
|
|
192
|
+
async def _put_stream_obstore_bypass(data_iterable: typing.AsyncIterable[bytes] | bytes, to_path: str, **kwargs) -> str:
|
|
193
|
+
"""
|
|
194
|
+
NOTE: This can break if obstore changes its API.
|
|
195
|
+
|
|
196
|
+
This function is a workaround for obstore's fsspec implementation which does not support async file operations.
|
|
197
|
+
It uses the synchronous methods directly to put a stream of data.
|
|
198
|
+
"""
|
|
199
|
+
import obstore
|
|
200
|
+
from obstore.store import ObjectStore
|
|
201
|
+
|
|
202
|
+
fs = get_underlying_filesystem(path=to_path)
|
|
203
|
+
if not hasattr(fs, "_split_path") or not hasattr(fs, "_construct_store"):
|
|
204
|
+
raise NotImplementedError(f"Obstore bypass not supported for {fs.protocol} protocol, methods missing.")
|
|
205
|
+
bucket, path = fs._split_path(to_path) # pylint: disable=W0212
|
|
206
|
+
store: ObjectStore = fs._construct_store(bucket)
|
|
207
|
+
if "attributes" in kwargs:
|
|
208
|
+
attributes = kwargs.pop("attributes")
|
|
209
|
+
else:
|
|
210
|
+
attributes = {}
|
|
211
|
+
buf_file = obstore.open_writer_async(store, path, attributes=attributes)
|
|
212
|
+
if isinstance(data_iterable, bytes):
|
|
213
|
+
await buf_file.write(data_iterable)
|
|
214
|
+
else:
|
|
215
|
+
async for data in data_iterable:
|
|
216
|
+
await buf_file.write(data)
|
|
217
|
+
# await buf_file.flush()
|
|
218
|
+
await buf_file.close()
|
|
219
|
+
return to_path
|
|
220
|
+
|
|
221
|
+
|
|
181
222
|
async def put_stream(
|
|
182
223
|
data_iterable: typing.AsyncIterable[bytes] | bytes, *, name: str | None = None, to_path: str | None = None, **kwargs
|
|
183
224
|
) -> str:
|
|
@@ -204,9 +245,13 @@ async def put_stream(
|
|
|
204
245
|
ctx = internal_ctx()
|
|
205
246
|
to_path = ctx.raw_data.get_random_remote_path(file_name=name)
|
|
206
247
|
fs = get_underlying_filesystem(path=to_path)
|
|
248
|
+
|
|
207
249
|
file_handle = None
|
|
208
250
|
if isinstance(fs, AsyncFileSystem):
|
|
209
251
|
try:
|
|
252
|
+
if _is_obstore_supported_protocol(fs.protocol):
|
|
253
|
+
# If the protocol is supported by obstore, use the obstore bypass method
|
|
254
|
+
return await _put_stream_obstore_bypass(data_iterable, to_path=to_path, **kwargs)
|
|
210
255
|
file_handle = await fs.open_async(to_path, "wb", **kwargs)
|
|
211
256
|
if isinstance(data_iterable, bytes):
|
|
212
257
|
await file_handle.write(data_iterable)
|
|
@@ -214,8 +259,8 @@ async def put_stream(
|
|
|
214
259
|
async for data in data_iterable:
|
|
215
260
|
await file_handle.write(data)
|
|
216
261
|
return str(to_path)
|
|
217
|
-
except NotImplementedError:
|
|
218
|
-
logger.debug(f"{fs} doesn't implement 'open_async', falling back to sync")
|
|
262
|
+
except NotImplementedError as e:
|
|
263
|
+
logger.debug(f"{fs} doesn't implement 'open_async', falling back to sync, {e}")
|
|
219
264
|
finally:
|
|
220
265
|
if file_handle is not None:
|
|
221
266
|
await file_handle.close()
|
|
@@ -230,7 +275,32 @@ async def put_stream(
|
|
|
230
275
|
return str(to_path)
|
|
231
276
|
|
|
232
277
|
|
|
233
|
-
async def
|
|
278
|
+
async def _get_stream_obstore_bypass(path: str, chunk_size, **kwargs) -> AsyncGenerator[bytes, None]:
|
|
279
|
+
"""
|
|
280
|
+
NOTE: This can break if obstore changes its API.
|
|
281
|
+
This function is a workaround for obstore's fsspec implementation which does not support async file operations.
|
|
282
|
+
It uses the synchronous methods directly to get a stream of data.
|
|
283
|
+
"""
|
|
284
|
+
import obstore
|
|
285
|
+
from obstore.store import ObjectStore
|
|
286
|
+
|
|
287
|
+
fs = get_underlying_filesystem(path=path)
|
|
288
|
+
if not hasattr(fs, "_split_path") or not hasattr(fs, "_construct_store"):
|
|
289
|
+
raise NotImplementedError(f"Obstore bypass not supported for {fs.protocol} protocol, methods missing.")
|
|
290
|
+
bucket, rem_path = fs._split_path(path) # pylint: disable=W0212
|
|
291
|
+
store: ObjectStore = fs._construct_store(bucket)
|
|
292
|
+
buf_file = await obstore.open_reader_async(store, rem_path, buffer_size=chunk_size)
|
|
293
|
+
try:
|
|
294
|
+
while True:
|
|
295
|
+
chunk = await buf_file.read()
|
|
296
|
+
if not chunk:
|
|
297
|
+
break
|
|
298
|
+
yield bytes(chunk)
|
|
299
|
+
finally:
|
|
300
|
+
buf_file.close()
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
async def get_stream(path: str, chunk_size=10 * 2**20, **kwargs) -> AsyncGenerator[bytes, None]:
|
|
234
304
|
"""
|
|
235
305
|
Get a stream of data from a remote location.
|
|
236
306
|
This is useful for downloading streaming data from a remote location.
|
|
@@ -246,18 +316,24 @@ async def get_stream(path: str, chunk_size=10 * 2**20, **kwargs) -> AsyncIterato
|
|
|
246
316
|
:return: An async iterator that yields chunks of data.
|
|
247
317
|
"""
|
|
248
318
|
fs = get_underlying_filesystem(path=path, **kwargs)
|
|
319
|
+
|
|
249
320
|
file_size = fs.info(path)["size"]
|
|
250
321
|
total_read = 0
|
|
251
322
|
file_handle = None
|
|
252
323
|
try:
|
|
324
|
+
if _is_obstore_supported_protocol(fs.protocol):
|
|
325
|
+
# If the protocol is supported by obstore, use the obstore bypass method
|
|
326
|
+
async for x in _get_stream_obstore_bypass(path, chunk_size=chunk_size, **kwargs):
|
|
327
|
+
yield x
|
|
328
|
+
return
|
|
253
329
|
if isinstance(fs, AsyncFileSystem):
|
|
254
330
|
file_handle = await fs.open_async(path, "rb")
|
|
255
331
|
while chunk := await file_handle.read(min(chunk_size, file_size - total_read)):
|
|
256
332
|
total_read += len(chunk)
|
|
257
333
|
yield chunk
|
|
258
334
|
return
|
|
259
|
-
except NotImplementedError:
|
|
260
|
-
logger.debug(f"{fs} doesn't implement 'open_async', falling back to sync")
|
|
335
|
+
except NotImplementedError as e:
|
|
336
|
+
logger.debug(f"{fs} doesn't implement 'open_async', falling back to sync, error: {e}")
|
|
261
337
|
finally:
|
|
262
338
|
if file_handle is not None:
|
|
263
339
|
file_handle.close()
|
|
@@ -279,4 +355,4 @@ def join(*paths: str) -> str:
|
|
|
279
355
|
return str(os.path.join(*paths))
|
|
280
356
|
|
|
281
357
|
|
|
282
|
-
register(
|
|
358
|
+
register(_OBSTORE_SUPPORTED_PROTOCOLS, asynchronous=True)
|
flyte/types/_type_engine.py
CHANGED
|
@@ -362,19 +362,6 @@ class PydanticTransformer(TypeTransformer[BaseModel]):
|
|
|
362
362
|
|
|
363
363
|
def get_literal_type(self, t: Type[BaseModel]) -> LiteralType:
|
|
364
364
|
schema = t.model_json_schema()
|
|
365
|
-
fields = t.__annotations__.items()
|
|
366
|
-
|
|
367
|
-
literal_type = {}
|
|
368
|
-
for name, python_type in fields:
|
|
369
|
-
try:
|
|
370
|
-
literal_type[name] = TypeEngine.to_literal_type(python_type)
|
|
371
|
-
except Exception as e:
|
|
372
|
-
logger.warning(
|
|
373
|
-
"Field {} of type {} cannot be converted to a literal type. Error: {}".format(name, python_type, e)
|
|
374
|
-
)
|
|
375
|
-
|
|
376
|
-
# This is for attribute access in FlytePropeller.
|
|
377
|
-
ts = TypeStructure(tag="", dataclass_type=literal_type)
|
|
378
365
|
|
|
379
366
|
meta_struct = struct_pb2.Struct()
|
|
380
367
|
meta_struct.update(
|
|
@@ -385,10 +372,10 @@ class PydanticTransformer(TypeTransformer[BaseModel]):
|
|
|
385
372
|
}
|
|
386
373
|
)
|
|
387
374
|
|
|
375
|
+
# The type engine used to publish a type structure for attribute access. As of v2, this is no longer needed.
|
|
388
376
|
return LiteralType(
|
|
389
377
|
simple=SimpleType.STRUCT,
|
|
390
378
|
metadata=schema,
|
|
391
|
-
structure=ts,
|
|
392
379
|
annotation=TypeAnnotation(annotations=meta_struct),
|
|
393
380
|
)
|
|
394
381
|
|
|
@@ -620,24 +607,6 @@ class DataclassTransformer(TypeTransformer[object]):
|
|
|
620
607
|
f"Possibly remove `DataClassJsonMixin` and `dataclass_json` decorator from dataclass declaration"
|
|
621
608
|
)
|
|
622
609
|
|
|
623
|
-
# Recursively construct the dataclass_type which contains the literal type of each field
|
|
624
|
-
literal_type = {}
|
|
625
|
-
|
|
626
|
-
hints = typing.get_type_hints(t)
|
|
627
|
-
# Get the type of each field from dataclass
|
|
628
|
-
for field in t.__dataclass_fields__.values(): # type: ignore
|
|
629
|
-
try:
|
|
630
|
-
name = field.name
|
|
631
|
-
python_type = hints.get(name, field.type)
|
|
632
|
-
literal_type[name] = TypeEngine.to_literal_type(python_type)
|
|
633
|
-
except Exception as e:
|
|
634
|
-
logger.debug(
|
|
635
|
-
f"Field {field.name} of type {field.type} cannot be converted to a literal type. Error: {e}"
|
|
636
|
-
)
|
|
637
|
-
|
|
638
|
-
# This is for attribute access in FlytePropeller.
|
|
639
|
-
ts = TypeStructure(tag="", dataclass_type=literal_type)
|
|
640
|
-
|
|
641
610
|
meta_struct = struct_pb2.Struct()
|
|
642
611
|
meta_struct.update(
|
|
643
612
|
{
|
|
@@ -646,10 +615,11 @@ class DataclassTransformer(TypeTransformer[object]):
|
|
|
646
615
|
}
|
|
647
616
|
}
|
|
648
617
|
)
|
|
618
|
+
|
|
619
|
+
# The type engine used to publish a type structure for attribute access. As of v2, this is no longer needed.
|
|
649
620
|
return types_pb2.LiteralType(
|
|
650
621
|
simple=types_pb2.SimpleType.STRUCT,
|
|
651
622
|
metadata=schema,
|
|
652
|
-
structure=ts,
|
|
653
623
|
annotation=TypeAnnotation(annotations=meta_struct),
|
|
654
624
|
)
|
|
655
625
|
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
flyte/__init__.py,sha256=
|
|
1
|
+
flyte/__init__.py,sha256=RIvRNnyKc9TfF5FlvREETDuosgs66w6d_A-MPMbyy9E,2158
|
|
2
2
|
flyte/_build.py,sha256=MkgfLAPeL56YeVrGRNZUCZgbwzlEzVP3wLbl5Qru4yk,578
|
|
3
|
-
flyte/_context.py,sha256=
|
|
3
|
+
flyte/_context.py,sha256=NGl-tDoTOoIljsUzD1IPTESOdaG8vKeoAzs5271XuPM,5244
|
|
4
4
|
flyte/_deploy.py,sha256=6FTL7m3unDG-1V-5hTF2pRnql-6e9pRRyCM9o3xiHWQ,10541
|
|
5
5
|
flyte/_doc.py,sha256=_OPCf3t_git6UT7kSJISFaWO9cfNzJhhoe6JjVdyCJo,706
|
|
6
6
|
flyte/_docstring.py,sha256=SsG0Ab_YMAwy2ABJlEo3eBKlyC3kwPdnDJ1FIms-ZBQ,1127
|
|
7
|
-
flyte/_environment.py,sha256=
|
|
7
|
+
flyte/_environment.py,sha256=vpe116KTNnCisYfMLXCoY09Gye79ZQC1u4HwnJcBp4c,3743
|
|
8
8
|
flyte/_excepthook.py,sha256=nXts84rzEg6-7RtFarbKzOsRZTQR4plnbWVIFMAEprs,1310
|
|
9
9
|
flyte/_group.py,sha256=7o1j16sZyUmYB50mOiq1ui4TBAKhRpDqLakV8Ya1kw4,803
|
|
10
10
|
flyte/_hash.py,sha256=Of_Zl_DzzzF2jp4ZsLm-3o-xJFCCJ8_GubmLI1htx78,504
|
|
11
|
-
flyte/_image.py,sha256=
|
|
12
|
-
flyte/_initialize.py,sha256=
|
|
11
|
+
flyte/_image.py,sha256=q-X_UZnFE_TUeJeo-zC-Oo2PeDQSz4h9dxvglNwJJ70,37045
|
|
12
|
+
flyte/_initialize.py,sha256=ZMoD6Hd7h32eoXfxcPM2DX4cI-k72iKBblNjRxu2wtA,18241
|
|
13
13
|
flyte/_interface.py,sha256=1B9zIwFDjiVp_3l_mk8EpA4g3Re-6DUBEBi9z9vDvPs,3504
|
|
14
|
-
flyte/_logging.py,sha256=
|
|
14
|
+
flyte/_logging.py,sha256=QmXwMG5MCz0bkns_BIIylQgafNqcDCp5dlzpW_JVetI,3697
|
|
15
15
|
flyte/_map.py,sha256=efPd8O-JKUg1OY3_MzU3KGbhsGYDVRNBwWr0ceNIXhQ,7444
|
|
16
16
|
flyte/_pod.py,sha256=--72b0c6IkOEbBwZPLmgl-ll-j7ECfG-kh75LzBnNN8,1068
|
|
17
17
|
flyte/_resources.py,sha256=L2JuvQDlMo1JLJeUmJPRwtWbunhR2xJEhFgQW5yc72c,9690
|
|
18
18
|
flyte/_retry.py,sha256=rfLv0MvWxzPByKESTglEmjPsytEAKiIvvmzlJxXwsfE,941
|
|
19
|
-
flyte/_reusable_environment.py,sha256=
|
|
20
|
-
flyte/_run.py,sha256=
|
|
21
|
-
flyte/_secret.py,sha256=
|
|
22
|
-
flyte/_task.py,sha256=
|
|
23
|
-
flyte/_task_environment.py,sha256=
|
|
19
|
+
flyte/_reusable_environment.py,sha256=qzmLJlHFiek8_k3EEqxew3837Pe2xjmz3mjGk_xqPEo,4857
|
|
20
|
+
flyte/_run.py,sha256=7OrZkxqiACFiZs53_t1Tb_qTLi8oULkBL5tjql9X5bM,25695
|
|
21
|
+
flyte/_secret.py,sha256=wug5NbIYEkXO6FJkqnPRnPoc2nKDerQiemWtRGRi288,3576
|
|
22
|
+
flyte/_task.py,sha256=0HJnvjyBiXEXux82vNDXpsoVdybE17hkhFnFT-aomPY,20091
|
|
23
|
+
flyte/_task_environment.py,sha256=unT-U9tUT5m_SQ9eLXq95IvMLCMm7YxL-9Ig-dfP-_0,9713
|
|
24
24
|
flyte/_task_plugins.py,sha256=9MH3nFPOH_e8_92BT4sFk4oyAnj6GJFvaPYWaraX7yE,1037
|
|
25
25
|
flyte/_timeout.py,sha256=zx5sFcbYmjJAJbZWSGzzX-BpC9HC7Jfs35T7vVhKwkk,1571
|
|
26
|
-
flyte/_tools.py,sha256=
|
|
26
|
+
flyte/_tools.py,sha256=lB3OiJSAhxzSMCYjLUF6nZjlFsmNpaRXtr3_Fefcxbg,747
|
|
27
27
|
flyte/_trace.py,sha256=SSE1nzUgmVTS2xFNtchEOjEjlRavMOIInasXzY8i9lU,4911
|
|
28
|
-
flyte/_version.py,sha256=
|
|
28
|
+
flyte/_version.py,sha256=dpeCcD5xnHmKtmqiX7Mgi73gjw8KMK0InroW6T0TmRQ,722
|
|
29
29
|
flyte/errors.py,sha256=z28rhbNmJF5Ie7quQWtoSL4K5p_tC3QjZDIZTupNQFw,6395
|
|
30
30
|
flyte/extend.py,sha256=GB4ZedGzKa30vYWRVPOdxEeK62xnUVFY4z2tD6H9eEw,376
|
|
31
|
-
flyte/models.py,sha256=
|
|
31
|
+
flyte/models.py,sha256=2DSdvTQJBEF8TFo9rHjI8dhPLD8nIEZcKyXSdl0-Vi4,15838
|
|
32
32
|
flyte/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
33
|
flyte/_bin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
34
|
flyte/_bin/runtime.py,sha256=8U_tIhdF8phBLDFr0U1xv92OKK5RquiaTJFv8v_fIgQ,5537
|
|
@@ -55,7 +55,7 @@ flyte/_internal/controllers/remote/_service_protocol.py,sha256=B9qbIg6DiGeac-iSc
|
|
|
55
55
|
flyte/_internal/imagebuild/__init__.py,sha256=dwXdJ1jMhw9RF8itF7jkPLanvX1yCviSns7hE5eoIts,102
|
|
56
56
|
flyte/_internal/imagebuild/docker_builder.py,sha256=KaaCvVFOY4XNMYMr3LAkDCV-mIzEQPr06UxcwhVD234,21321
|
|
57
57
|
flyte/_internal/imagebuild/image_builder.py,sha256=dXBXl62qcPabus6dR3eP8P9mBGNhpZHZ2Xm12AymKkk,11150
|
|
58
|
-
flyte/_internal/imagebuild/remote_builder.py,sha256=
|
|
58
|
+
flyte/_internal/imagebuild/remote_builder.py,sha256=fb7BRXCvqBAzwlY4Smq_G0GHANcwlqpKHQoZQn2s2ZQ,11557
|
|
59
59
|
flyte/_internal/imagebuild/utils.py,sha256=_ULn4jzoffXbuFpB-o_Lro-PvZ9KObYgtELC31NXsgM,1160
|
|
60
60
|
flyte/_internal/resolvers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
61
|
flyte/_internal/resolvers/_task_module.py,sha256=jwy1QYygUK7xmpCZLt1SPTfJCkfox3Ck3mTlTsm66UI,1973
|
|
@@ -66,9 +66,9 @@ flyte/_internal/runtime/convert.py,sha256=dX3PfIhuYvuCpRAFGRo-uTRy8Ys3Rgs9cowO6X
|
|
|
66
66
|
flyte/_internal/runtime/entrypoints.py,sha256=9Ng-aQ45M-_MMWeOe9uGmgx69qO9b0xaMRiu542ZI9g,6581
|
|
67
67
|
flyte/_internal/runtime/io.py,sha256=ysL7hMpfVumvsEYWOM-_VPa8MXn5_X_CZorKbOThyv4,5935
|
|
68
68
|
flyte/_internal/runtime/resources_serde.py,sha256=TObMVsSjVcQhcY8-nY81pbvrz7TP-adDD5xV-LqAaxM,4813
|
|
69
|
-
flyte/_internal/runtime/reuse.py,sha256=
|
|
69
|
+
flyte/_internal/runtime/reuse.py,sha256=uGjomQz4X4JvPv6M8eDW94g4YfHJugNYufwK6eVFlwI,4901
|
|
70
70
|
flyte/_internal/runtime/rusty.py,sha256=e2uSg9-Hooa65-BIuqXhIrEq86RHteFFs3W7dDuM3uo,6946
|
|
71
|
-
flyte/_internal/runtime/task_serde.py,sha256=
|
|
71
|
+
flyte/_internal/runtime/task_serde.py,sha256=0XwpxRU2CYxnwO_hoqrjSQxq0idKrErOk8XUkS02SDE,14134
|
|
72
72
|
flyte/_internal/runtime/taskrunner.py,sha256=rHWS4t5qgZnzGdGrs0_O0sSs_PVGoE1CNPDb-fTwwmo,7332
|
|
73
73
|
flyte/_internal/runtime/types_serde.py,sha256=EjRh9Yypx9-20XXQprtNgp766LeQVRoYWtY6XPGMZQg,1813
|
|
74
74
|
flyte/_protos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -159,15 +159,15 @@ flyte/_utils/uv_script_parser.py,sha256=PxqD8lSMi6xv0uDd1s8LKB2IPZr4ttZJCUweqlyM
|
|
|
159
159
|
flyte/cli/__init__.py,sha256=aeCcumeP9xD_5aCmaRYUPCe2QRJSGCaxcUbTZ3co768,341
|
|
160
160
|
flyte/cli/_abort.py,sha256=Ty-63Gtd2PUn6lCuL5AaasfBoPu7TDSU5EQKVbkF4qw,661
|
|
161
161
|
flyte/cli/_build.py,sha256=gX8fqYAMoArn8kfR__5GtWc9dJahV9bPkSljOCg5zvI,3540
|
|
162
|
-
flyte/cli/_common.py,sha256=
|
|
162
|
+
flyte/cli/_common.py,sha256=9BoRYzQBxuKdczC13u_2auDV8wYABvf3lWZhPcfGclA,13591
|
|
163
163
|
flyte/cli/_create.py,sha256=tXDhZAdsxvpQ4ngO4U-PhyYwzQ3Hi2AJrNtZ3eqJptQ,5541
|
|
164
164
|
flyte/cli/_delete.py,sha256=VTmXv09PBjkdtyl23mbSjIQQlN7Y1AI_bO0GkHP-f9E,546
|
|
165
165
|
flyte/cli/_deploy.py,sha256=sDbO8gobXR4O0Vlp3RKEH-kBSr25BiXJIoHVwau9Occ,8877
|
|
166
|
-
flyte/cli/_gen.py,sha256=
|
|
167
|
-
flyte/cli/_get.py,sha256=
|
|
166
|
+
flyte/cli/_gen.py,sha256=7K2eYQLGVr26I2OC3Xe_bzAn4ANYA5mPlBW5m1476PM,6079
|
|
167
|
+
flyte/cli/_get.py,sha256=E2HTekZcVbTtwy6LnM5WHzF41aT1uPRWqV1rYB4H5B8,10420
|
|
168
168
|
flyte/cli/_option.py,sha256=oC1Gs0u0UrOC1SsrFo-iCuAkqQvI1wJWCdjYXA9rW4Q,1445
|
|
169
169
|
flyte/cli/_params.py,sha256=8Gj8UYGHwu-SUXGWCTRX5QsVf19NiajhaUMMae6FF9o,19466
|
|
170
|
-
flyte/cli/_run.py,sha256=
|
|
170
|
+
flyte/cli/_run.py,sha256=ymEAd_mGFtO58fCcko9XhVXsvFWlydII_1GZ-031W1g,16308
|
|
171
171
|
flyte/cli/main.py,sha256=t5Ivjipd6bVHIGjRBGwkeP577j59ASq9c1wgoNf3h2c,5334
|
|
172
172
|
flyte/config/__init__.py,sha256=MiwEYK5Iv7MRR22z61nzbsbvZ9Q6MdmAU_g9If1Pmb8,144
|
|
173
173
|
flyte/config/_config.py,sha256=WElU--Kw4MM9zx1v-rLD8qYu2T5Zk0-1QbTpkEc27bc,10779
|
|
@@ -191,20 +191,20 @@ flyte/remote/_logs.py,sha256=t4H7DEZDYJC9Vx7oJ7R7m4Z56bWBAjm9ylU4UP1hKq0,6711
|
|
|
191
191
|
flyte/remote/_project.py,sha256=IbkxKRAvZunKLIwpmcreA4O-0GxWC0KPC62WSYvsK34,2868
|
|
192
192
|
flyte/remote/_run.py,sha256=FtIIMNODQGyc6oYLmuI_ku3bUxhDFIE-UU7ecMNZvBg,10018
|
|
193
193
|
flyte/remote/_secret.py,sha256=CF9WiZKeMJaUNeIawVPf8XHk9OjFt2wc0m7S9ZOdGbE,4399
|
|
194
|
-
flyte/remote/_task.py,sha256=
|
|
194
|
+
flyte/remote/_task.py,sha256=FIAXeMYpfMAHciqOAucdtRaJ7mZVvHnaWA3ZBP-KKw4,17325
|
|
195
195
|
flyte/remote/_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
196
|
flyte/remote/_client/_protocols.py,sha256=JyBWHs5WsVOxEDUyG9X7wPLDzzzjkoaNhJlU-X4YlN0,5599
|
|
197
|
-
flyte/remote/_client/controlplane.py,sha256=
|
|
197
|
+
flyte/remote/_client/controlplane.py,sha256=AUzZZotAZVtyrQRKSZrVqnjgM1R8xK1pHrdeD6KSom8,3608
|
|
198
198
|
flyte/remote/_client/auth/__init__.py,sha256=JQrIlwaqPlPzrxcOREhcfyFsC4LrfqL5TRz6A3JNSEA,413
|
|
199
199
|
flyte/remote/_client/auth/_auth_utils.py,sha256=Is6mr18J8AMQlbtu-Q63aMJgrZ27dXXNSig8KshR1_8,545
|
|
200
|
-
flyte/remote/_client/auth/_channel.py,sha256=
|
|
201
|
-
flyte/remote/_client/auth/_client_config.py,sha256=
|
|
200
|
+
flyte/remote/_client/auth/_channel.py,sha256=dIo8s8lhd5XCEQ0qgDewMBY93E2RQn56Yak-T-esH8k,9219
|
|
201
|
+
flyte/remote/_client/auth/_client_config.py,sha256=LhJpznsibAQkVx0emOhBSrfXjis7WkoL695WXHZAJMo,3435
|
|
202
202
|
flyte/remote/_client/auth/_default_html.py,sha256=XAdgP-25WySMODbusWOcQQPiXin1h-hfzmRJv_Dg3tE,1651
|
|
203
203
|
flyte/remote/_client/auth/_keyring.py,sha256=hJ2FxFdi5_FaKLcuqhelxj6Hc1WYQrez4c47qSl5c5A,5681
|
|
204
204
|
flyte/remote/_client/auth/_token_client.py,sha256=FxFaG_DcynQIZfEdAuJUsrcy0OnYbEr4gKLpu8WZHJo,10460
|
|
205
205
|
flyte/remote/_client/auth/errors.py,sha256=ZYS9k4GX_McacKhxHKt5V2A4CWjLUq4RkBx_goDTdHY,390
|
|
206
206
|
flyte/remote/_client/auth/_authenticators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
|
-
flyte/remote/_client/auth/_authenticators/base.py,sha256=
|
|
207
|
+
flyte/remote/_client/auth/_authenticators/base.py,sha256=LIIYt46j6_ShJRiwjNwNX-LxLiUoG1qbiN0ypyzGedY,17020
|
|
208
208
|
flyte/remote/_client/auth/_authenticators/client_credentials.py,sha256=e9DOFdKEvaM3uSR10lnNuJaOwAcCkZQWZPKv7xUoFsI,3483
|
|
209
209
|
flyte/remote/_client/auth/_authenticators/device_code.py,sha256=G4jBkHS51kQ333dAuk7dCVSpd1Zy8g85YBdwMp8QoO0,4855
|
|
210
210
|
flyte/remote/_client/auth/_authenticators/external_command.py,sha256=IfTJQACPd1xc6htZYC-HdMIx6Q9JHBPw1HUG1Pv6lXg,3838
|
|
@@ -219,7 +219,7 @@ flyte/report/_template.html,sha256=YehmLJG3QMYQ10UT1YZBu2ncVmAJ4iyqVp5hF3sXRAs,3
|
|
|
219
219
|
flyte/storage/__init__.py,sha256=0tcI9qtIVf0Fxczkno03vpwBDVlKMDSNN38uxMTH1bE,569
|
|
220
220
|
flyte/storage/_config.py,sha256=xVibWJaioOnkeTb_M30azgiUe1jvmQaOWRZEkpdoTao,8680
|
|
221
221
|
flyte/storage/_remote_fs.py,sha256=kM_iszbccjVD5VtVdgfkl1FHS8NPnY__JOo_CPQUE4c,1124
|
|
222
|
-
flyte/storage/_storage.py,sha256=
|
|
222
|
+
flyte/storage/_storage.py,sha256=MLzpysJ2AsIj0-LbPTGiFOuAXKqIOlyUOZrYAErgf7U,13383
|
|
223
223
|
flyte/storage/_utils.py,sha256=8oLCM-7D7JyJhzUi1_Q1NFx8GBUPRfou0T_5tPBmPbE,309
|
|
224
224
|
flyte/syncify/__init__.py,sha256=WgTk-v-SntULnI55CsVy71cxGJ9Q6pxpTrhbPFuouJ0,1974
|
|
225
225
|
flyte/syncify/_api.py,sha256=k4LQB8odJb5Fx2dabL340g0Tq1bKfSG_ZHsV5qRodE0,14858
|
|
@@ -228,12 +228,12 @@ flyte/types/_interface.py,sha256=5y9EC5r897xz03Hh0ltF8QVGKMfMfAznws-hKSEO4Go,167
|
|
|
228
228
|
flyte/types/_pickle.py,sha256=PjdR66OTDMZ3OYq6GvM_Ua0cIo5t2XQaIjmpJ9xo4Ys,4050
|
|
229
229
|
flyte/types/_renderer.py,sha256=ygcCo5l60lHufyQISFddZfWwLlQ8kJAKxUT_XnR_6dY,4818
|
|
230
230
|
flyte/types/_string_literals.py,sha256=NlG1xV8RSA-sZ-n-IFQCAsdB6jXJOAKkHWtnopxVVDk,4231
|
|
231
|
-
flyte/types/_type_engine.py,sha256=
|
|
231
|
+
flyte/types/_type_engine.py,sha256=_JMBMiwHM5qWWn2n4MVNsbadgTOuU1GJVlYvj8HcV9k,96773
|
|
232
232
|
flyte/types/_utils.py,sha256=pbts9E1_2LTdLygAY0UYTLYJ8AsN3BZyviSXvrtcutc,2626
|
|
233
|
-
flyte-2.0.
|
|
234
|
-
flyte-2.0.
|
|
235
|
-
flyte-2.0.
|
|
236
|
-
flyte-2.0.
|
|
237
|
-
flyte-2.0.
|
|
238
|
-
flyte-2.0.
|
|
239
|
-
flyte-2.0.
|
|
233
|
+
flyte-2.0.0b13.data/scripts/runtime.py,sha256=8U_tIhdF8phBLDFr0U1xv92OKK5RquiaTJFv8v_fIgQ,5537
|
|
234
|
+
flyte-2.0.0b13.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
235
|
+
flyte-2.0.0b13.dist-info/METADATA,sha256=_9P_PqRRg9vzFCtMMqVAQJKKN-QWHTNa_8d00kcFFmQ,10005
|
|
236
|
+
flyte-2.0.0b13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
237
|
+
flyte-2.0.0b13.dist-info/entry_points.txt,sha256=MIq2z5dBurdCJfpXfMKzgBv7sJOakKRYxr8G0cMiTrg,75
|
|
238
|
+
flyte-2.0.0b13.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
|
|
239
|
+
flyte-2.0.0b13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|