flyte 0.2.0b17__py3-none-any.whl → 0.2.0b19__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.

Files changed (42) hide show
  1. flyte/_bin/runtime.py +10 -2
  2. flyte/_code_bundle/bundle.py +2 -2
  3. flyte/_deploy.py +2 -3
  4. flyte/_image.py +100 -64
  5. flyte/_initialize.py +9 -1
  6. flyte/_internal/imagebuild/__init__.py +4 -0
  7. flyte/_internal/imagebuild/docker_builder.py +57 -24
  8. flyte/_internal/imagebuild/image_builder.py +69 -42
  9. flyte/_internal/imagebuild/remote_builder.py +259 -0
  10. flyte/_protos/imagebuilder/definition_pb2.py +59 -0
  11. flyte/_protos/imagebuilder/definition_pb2.pyi +140 -0
  12. flyte/_protos/imagebuilder/definition_pb2_grpc.py +4 -0
  13. flyte/_protos/imagebuilder/payload_pb2.py +32 -0
  14. flyte/_protos/imagebuilder/payload_pb2.pyi +21 -0
  15. flyte/_protos/imagebuilder/payload_pb2_grpc.py +4 -0
  16. flyte/_protos/imagebuilder/service_pb2.py +29 -0
  17. flyte/_protos/imagebuilder/service_pb2.pyi +5 -0
  18. flyte/_protos/imagebuilder/service_pb2_grpc.py +66 -0
  19. flyte/_run.py +71 -8
  20. flyte/_task_environment.py +1 -0
  21. flyte/_version.py +2 -2
  22. flyte/cli/__init__.py +9 -0
  23. flyte/cli/_build.py +1 -1
  24. flyte/cli/_common.py +14 -11
  25. flyte/cli/_create.py +15 -0
  26. flyte/cli/_deploy.py +2 -2
  27. flyte/cli/_get.py +9 -6
  28. flyte/cli/_run.py +1 -0
  29. flyte/cli/main.py +8 -0
  30. flyte/config/_config.py +30 -2
  31. flyte/config/_internal.py +8 -0
  32. flyte/config/_reader.py +0 -3
  33. flyte/extras/_container.py +2 -2
  34. flyte/remote/_data.py +2 -0
  35. flyte/remote/_run.py +10 -4
  36. flyte/remote/_task.py +35 -7
  37. flyte/types/_type_engine.py +2 -4
  38. {flyte-0.2.0b17.dist-info → flyte-0.2.0b19.dist-info}/METADATA +1 -1
  39. {flyte-0.2.0b17.dist-info → flyte-0.2.0b19.dist-info}/RECORD +42 -33
  40. {flyte-0.2.0b17.dist-info → flyte-0.2.0b19.dist-info}/WHEEL +0 -0
  41. {flyte-0.2.0b17.dist-info → flyte-0.2.0b19.dist-info}/entry_points.txt +0 -0
  42. {flyte-0.2.0b17.dist-info → flyte-0.2.0b19.dist-info}/top_level.txt +0 -0
flyte/cli/_get.py CHANGED
@@ -46,7 +46,7 @@ def project(cfg: common.CLIConfig, name: str | None = None):
46
46
  if name:
47
47
  console.print(pretty_repr(Project.get(name)))
48
48
  else:
49
- console.print(common.get_table("Projects", Project.listall()))
49
+ console.print(common.get_table("Projects", Project.listall(), simple=cfg.simple))
50
50
 
51
51
 
52
52
  @get.command(cls=common.CommandBase)
@@ -69,7 +69,7 @@ def run(cfg: common.CLIConfig, name: str | None = None, project: str | None = No
69
69
  details = RunDetails.get(name=name)
70
70
  console.print(pretty_repr(details))
71
71
  else:
72
- console.print(common.get_table("Runs", Run.listall()))
72
+ console.print(common.get_table("Runs", Run.listall(), simple=cfg.simple))
73
73
 
74
74
 
75
75
  @get.command(cls=common.CommandBase)
@@ -103,9 +103,9 @@ def task(
103
103
  t = v.fetch()
104
104
  console.print(pretty_repr(t))
105
105
  else:
106
- console.print(common.get_table("Tasks", Task.listall(by_task_name=name, limit=limit)))
106
+ console.print(common.get_table("Tasks", Task.listall(by_task_name=name, limit=limit), simple=cfg.simple))
107
107
  else:
108
- console.print(common.get_table("Tasks", Task.listall(limit=limit)))
108
+ console.print(common.get_table("Tasks", Task.listall(limit=limit), simple=cfg.simple))
109
109
 
110
110
 
111
111
  @get.command(cls=common.CommandBase)
@@ -131,7 +131,9 @@ def action(
131
131
  console.print(pretty_repr(remote.Action.get(run_name=run_name, name=action_name)))
132
132
  else:
133
133
  # List all actions for the run
134
- console.print(common.get_table(f"Actions for {run_name}", remote.Action.listall(for_run_name=run_name)))
134
+ console.print(
135
+ common.get_table(f"Actions for {run_name}", remote.Action.listall(for_run_name=run_name), simple=cfg.simple)
136
+ )
135
137
 
136
138
 
137
139
  @get.command(cls=common.CommandBase)
@@ -225,7 +227,7 @@ def secret(
225
227
  if name:
226
228
  console.print(pretty_repr(remote.Secret.get(name)))
227
229
  else:
228
- console.print(common.get_table("Secrets", remote.Secret.listall()))
230
+ console.print(common.get_table("Secrets", remote.Secret.listall(), simple=cfg.simple))
229
231
 
230
232
 
231
233
  @get.command(cls=common.CommandBase)
@@ -294,6 +296,7 @@ def io(
294
296
  common.get_panel(
295
297
  "Inputs & Outputs",
296
298
  f"[green bold]Inputs[/green bold]\n{inputs}\n\n[blue bold]Outputs[/blue bold]\n{outputs}",
299
+ simple=cfg.simple,
297
300
  )
298
301
  )
299
302
 
flyte/cli/_run.py CHANGED
@@ -117,6 +117,7 @@ class RunTaskCommand(click.Command):
117
117
  f"[green bold]Created Run: {r.name} [/green bold] "
118
118
  f"(Project: {r.action.action_id.run.project}, Domain: {r.action.action_id.run.domain})\n"
119
119
  f"➡️ [blue bold]{r.url}[/blue bold]",
120
+ simple=obj.simple,
120
121
  )
121
122
  )
122
123
  if self.run_args.follow:
flyte/cli/main.py CHANGED
@@ -97,6 +97,12 @@ def _verbosity_to_loglevel(verbosity: int) -> int | None:
97
97
  type=click.Path(exists=True),
98
98
  help="Path to the configuration file to use. If not specified, the default configuration file is used.",
99
99
  )
100
+ @click.option(
101
+ "--simple",
102
+ is_flag=True,
103
+ default=False,
104
+ help="Use a simple output format for commands that support it. This is useful for copying, pasting, and scripting.",
105
+ )
100
106
  @click.rich_config(help_config=help_config)
101
107
  @click.pass_context
102
108
  def main(
@@ -106,6 +112,7 @@ def main(
106
112
  verbose: int,
107
113
  org: str | None,
108
114
  config_file: str | None,
115
+ simple: bool = False,
109
116
  ):
110
117
  """
111
118
  The Flyte CLI is the command line interface for working with the Flyte SDK and backend.
@@ -159,6 +166,7 @@ def main(
159
166
  org=org,
160
167
  config=cfg,
161
168
  ctx=ctx,
169
+ simple=simple,
162
170
  )
163
171
 
164
172
 
flyte/config/_config.py CHANGED
@@ -13,7 +13,7 @@ from flyte._logging import logger
13
13
  from flyte.config import _internal
14
14
  from flyte.config._reader import ConfigFile, get_config_file, read_file_if_exists
15
15
 
16
- _all__ = ["ConfigFile", "PlatformConfig", "TaskConfig"]
16
+ _all__ = ["ConfigFile", "PlatformConfig", "TaskConfig", "ImageConfig"]
17
17
 
18
18
  if TYPE_CHECKING:
19
19
  from flyte.remote._client.auth import AuthType
@@ -140,6 +140,28 @@ class TaskConfig(object):
140
140
  return TaskConfig(**kwargs)
141
141
 
142
142
 
143
+ @rich.repr.auto
144
+ @dataclass(init=True, repr=True, eq=True, frozen=True)
145
+ class ImageConfig(object):
146
+ """
147
+ Configuration for Docker image settings.
148
+ """
149
+
150
+ builder: str | None = None
151
+
152
+ @classmethod
153
+ def auto(cls, config_file: typing.Optional[typing.Union[str, ConfigFile]] = None) -> "ImageConfig":
154
+ """
155
+ Reads from a config file, and overrides from Environment variables. Refer to ConfigEntry for details
156
+ :param config_file:
157
+ :return:
158
+ """
159
+ config_file = get_config_file(config_file)
160
+ kwargs: typing.Dict[str, typing.Any] = {}
161
+ kwargs = set_if_exists(kwargs, "builder", _internal.Image.BUILDER.read(config_file))
162
+ return ImageConfig(**kwargs)
163
+
164
+
143
165
  @rich.repr.auto
144
166
  @dataclass(init=True, repr=True, eq=True, frozen=True)
145
167
  class Config(object):
@@ -154,16 +176,19 @@ class Config(object):
154
176
 
155
177
  platform: PlatformConfig = field(default=PlatformConfig())
156
178
  task: TaskConfig = field(default=TaskConfig())
179
+ image: ImageConfig = field(default=ImageConfig())
157
180
  source: pathlib.Path | None = None
158
181
 
159
182
  def with_params(
160
183
  self,
161
184
  platform: PlatformConfig | None = None,
162
185
  task: TaskConfig | None = None,
186
+ image: ImageConfig | None = None,
163
187
  ) -> "Config":
164
188
  return Config(
165
189
  platform=platform or self.platform,
166
190
  task=task or self.task,
191
+ image=image or self.image,
167
192
  )
168
193
 
169
194
  @classmethod
@@ -182,7 +207,10 @@ class Config(object):
182
207
  logger.debug("No config file found, using default values")
183
208
  return Config()
184
209
  return Config(
185
- platform=PlatformConfig.auto(config_file), task=TaskConfig.auto(config_file), source=config_file.path
210
+ platform=PlatformConfig.auto(config_file),
211
+ task=TaskConfig.auto(config_file),
212
+ image=ImageConfig.auto(config_file),
213
+ source=config_file.path,
186
214
  )
187
215
 
188
216
 
flyte/config/_internal.py CHANGED
@@ -62,3 +62,11 @@ class Task(object):
62
62
  ORG = ConfigEntry(YamlConfigEntry("task.org"))
63
63
  PROJECT = ConfigEntry(YamlConfigEntry("task.project"))
64
64
  DOMAIN = ConfigEntry(YamlConfigEntry("task.domain"))
65
+
66
+
67
+ class Image(object):
68
+ """
69
+ Defines the configuration for the image builder.
70
+ """
71
+
72
+ BUILDER = ConfigEntry(YamlConfigEntry("image.builder"))
flyte/config/_reader.py CHANGED
@@ -177,9 +177,6 @@ def get_config_file(c: typing.Union[str, ConfigFile, None]) -> ConfigFile | None
177
177
  """
178
178
  Checks if the given argument is a file or a configFile and returns a loaded configFile else returns None
179
179
  """
180
- if "PYTEST_VERSION" in os.environ:
181
- # Use default local config in the pytest environment
182
- return None
183
180
  if isinstance(c, str):
184
181
  logger.debug(f"Using specified config file at {c}")
185
182
  return ConfigFile(c)
@@ -260,8 +260,8 @@ class ContainerTask(TaskTemplate):
260
260
  }
261
261
 
262
262
  return tasks_pb2.DataLoadingConfig(
263
- input_path=str(self._input_data_dir),
264
- output_path=str(self._output_data_dir),
263
+ input_path=str(self._input_data_dir) if self._input_data_dir else None,
264
+ output_path=str(self._output_data_dir) if self._output_data_dir else None,
265
265
  enabled=True,
266
266
  format=literal_to_protobuf.get(self._metadata_format, "JSON"),
267
267
  )
flyte/remote/_data.py CHANGED
@@ -18,6 +18,7 @@ from google.protobuf import duration_pb2
18
18
  from flyte._initialize import CommonInit, ensure_client, get_client, get_common_config
19
19
  from flyte._logging import make_hyperlink
20
20
  from flyte.errors import InitializationError, RuntimeSystemError
21
+ from flyte.syncify import syncify
21
22
 
22
23
  _UPLOAD_EXPIRES_IN = timedelta(seconds=60)
23
24
 
@@ -113,6 +114,7 @@ async def _upload_single_file(
113
114
  return str_digest, resp.native_url
114
115
 
115
116
 
117
+ @syncify
116
118
  async def upload_file(fp: Path, verify: bool = True) -> Tuple[str, str]:
117
119
  """
118
120
  Uploads a file to a remote location and returns the remote URI.
flyte/remote/_run.py CHANGED
@@ -226,12 +226,13 @@ class Run:
226
226
  ):
227
227
  await self.action.show_logs(attempt, max_lines, show_ts, raw, filter_system=filter_system)
228
228
 
229
+ @syncify
229
230
  async def details(self) -> RunDetails:
230
231
  """
231
232
  Get the details of the run. This is a placeholder for getting the run details.
232
233
  """
233
234
  if self._details is None:
234
- self._details = await RunDetails.get_details(RunDetails, self.pb2.action.id.run)
235
+ self._details = await RunDetails.get_details.aio(self.pb2.action.id.run)
235
236
  return self._details
236
237
 
237
238
  @property
@@ -387,6 +388,11 @@ class RunDetails:
387
388
  """
388
389
  Rich representation of the Run object.
389
390
  """
391
+ yield "labels", str(self.pb2.run_spec.labels)
392
+ yield "annotations", str(self.pb2.run_spec.annotations)
393
+ yield "env-vars", str(self.pb2.run_spec.envs)
394
+ yield "is-interruptible", str(self.pb2.run_spec.interruptible)
395
+ yield "cache-overwrite", self.pb2.run_spec.overwrite_cache
390
396
  yield from _action_details_rich_repr(self.pb2.action)
391
397
 
392
398
  def __repr__(self) -> str:
@@ -631,7 +637,7 @@ class Action:
631
637
  # Update progress description with the current phase
632
638
  progress.update(
633
639
  task_id,
634
- description=f"Run: {self.name} in {ad.phase}, Runtime: {ad.runtime} secs "
640
+ description=f"Run: {self.run_name} in {ad.phase}, Runtime: {ad.runtime} secs "
635
641
  f"Attempts[{ad.attempts}]",
636
642
  )
637
643
 
@@ -639,10 +645,10 @@ class Action:
639
645
  if ad.done():
640
646
  progress.stop_task(task_id)
641
647
  if ad.pb2.status.phase == run_definition_pb2.PHASE_SUCCEEDED:
642
- console.print(f"[bold green]Run '{self.name}' completed successfully.[/bold green]")
648
+ console.print(f"[bold green]Run '{self.run_name}' completed successfully.[/bold green]")
643
649
  else:
644
650
  console.print(
645
- f"[bold red]Run '{self.name}' exited unsuccessfully in state {ad.phase} "
651
+ f"[bold red]Run '{self.run_name}' exited unsuccessfully in state {ad.phase}"
646
652
  f"with error: {ad.error_info}[/bold red]"
647
653
  )
648
654
  break
flyte/remote/_task.py CHANGED
@@ -13,7 +13,7 @@ import flyte.errors
13
13
  from flyte._context import internal_ctx
14
14
  from flyte._initialize import ensure_client, get_client, get_common_config
15
15
  from flyte._logging import logger
16
- from flyte._protos.common import list_pb2
16
+ from flyte._protos.common import identifier_pb2, list_pb2
17
17
  from flyte._protos.workflow import task_definition_pb2, task_service_pb2
18
18
  from flyte.models import NativeInterface
19
19
  from flyte.syncify import syncify
@@ -83,14 +83,22 @@ class TaskDetails:
83
83
  pb2: task_definition_pb2.TaskDetails
84
84
 
85
85
  @classmethod
86
- def get(cls, name: str, version: str | None = None, auto_version: AutoVersioning | None = None) -> LazyEntity:
86
+ def get(
87
+ cls,
88
+ name: str,
89
+ project: str | None,
90
+ domain: str | None,
91
+ version: str | None = None,
92
+ auto_version: AutoVersioning | None = None,
93
+ ) -> LazyEntity:
87
94
  """
88
95
  Get a task by its ID or name. If both are provided, the ID will take precedence.
89
96
 
90
97
  Either version or auto_version are required parameters.
91
98
 
92
- :param uri: The URI of the task. If provided, do not provide the rest of the parameters.
93
99
  :param name: The name of the task.
100
+ :param project: The project of the task.
101
+ :param domain: The domain of the task.
94
102
  :param version: The version of the task.
95
103
  :param auto_version: If set to "latest", the latest-by-time ordered from now, version of the task will be used.
96
104
  If set to "current", the version will be derived from the callee tasks context. This is useful if you are
@@ -110,6 +118,8 @@ class TaskDetails:
110
118
  tasks = []
111
119
  async for x in Task.listall.aio(
112
120
  by_task_name=name,
121
+ project=project,
122
+ domain=domain,
113
123
  sort_by=("created_at", "desc"),
114
124
  limit=1,
115
125
  ):
@@ -125,8 +135,8 @@ class TaskDetails:
125
135
  cfg = get_common_config()
126
136
  task_id = task_definition_pb2.TaskIdentifier(
127
137
  org=cfg.org,
128
- project=cfg.project,
129
- domain=cfg.domain,
138
+ project=project or cfg.project,
139
+ domain=domain or cfg.domain,
130
140
  name=name,
131
141
  version=_version,
132
142
  )
@@ -303,26 +313,37 @@ class Task:
303
313
  return self.pb2.task_id.version
304
314
 
305
315
  @classmethod
306
- def get(cls, name: str, version: str | None = None, auto_version: AutoVersioning | None = None) -> LazyEntity:
316
+ def get(
317
+ cls,
318
+ name: str,
319
+ project: str | None = None,
320
+ domain: str | None = None,
321
+ version: str | None = None,
322
+ auto_version: AutoVersioning | None = None,
323
+ ) -> LazyEntity:
307
324
  """
308
325
  Get a task by its ID or name. If both are provided, the ID will take precedence.
309
326
 
310
327
  Either version or auto_version are required parameters.
311
328
 
312
329
  :param name: The name of the task.
330
+ :param project: The project of the task.
331
+ :param domain: The domain of the task.
313
332
  :param version: The version of the task.
314
333
  :param auto_version: If set to "latest", the latest-by-time ordered from now, version of the task will be used.
315
334
  If set to "current", the version will be derived from the callee tasks context. This is useful if you are
316
335
  deploying all environments with the same version. If auto_version is current, you can only access the task from
317
336
  within a task context.
318
337
  """
319
- return TaskDetails.get(name, version=version, auto_version=auto_version)
338
+ return TaskDetails.get(name, project=project, domain=domain, version=version, auto_version=auto_version)
320
339
 
321
340
  @syncify
322
341
  @classmethod
323
342
  async def listall(
324
343
  cls,
325
344
  by_task_name: str | None = None,
345
+ project: str | None = None,
346
+ domain: str | None = None,
326
347
  sort_by: Tuple[str, Literal["asc", "desc"]] | None = None,
327
348
  limit: int = 100,
328
349
  ) -> Union[AsyncIterator[Task], Iterator[Task]]:
@@ -330,6 +351,8 @@ class Task:
330
351
  Get all runs for the current project and domain.
331
352
 
332
353
  :param by_task_name: If provided, only tasks with this name will be returned.
354
+ :param project: The project to filter tasks by. If None, the current project will be used.
355
+ :param domain: The domain to filter tasks by. If None, the current domain will be used.
333
356
  :param sort_by: The sorting criteria for the project list, in the format (field, order).
334
357
  :param limit: The maximum number of tasks to return.
335
358
  :return: An iterator of runs.
@@ -358,6 +381,11 @@ class Task:
358
381
  resp = await get_client().task_service.ListTasks(
359
382
  task_service_pb2.ListTasksRequest(
360
383
  org=cfg.org,
384
+ project_id=identifier_pb2.ProjectIdentifier(
385
+ organization=cfg.org,
386
+ domain=domain or cfg.domain,
387
+ name=project or cfg.project,
388
+ ),
361
389
  request=list_pb2.ListRequest(
362
390
  sort_by=sort_pb2,
363
391
  filters=filters,
@@ -628,10 +628,8 @@ class DataclassTransformer(TypeTransformer[object]):
628
628
  python_type = hints.get(name, field.type)
629
629
  literal_type[name] = TypeEngine.to_literal_type(python_type)
630
630
  except Exception as e:
631
- logger.warning(
632
- "Field {} of type {} cannot be converted to a literal type. Error: {}".format(
633
- field.name, field.type, e
634
- )
631
+ logger.debug(
632
+ f"Field {field.name} of type {field.type} cannot be converted to a literal type. Error: {e}"
635
633
  )
636
634
 
637
635
  # This is for attribute access in FlytePropeller.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flyte
3
- Version: 0.2.0b17
3
+ Version: 0.2.0b19
4
4
  Summary: Add your description here
5
5
  Author-email: Ketan Umare <kumare3@users.noreply.github.com>
6
6
  Requires-Python: >=3.10
@@ -1,15 +1,15 @@
1
1
  flyte/__init__.py,sha256=VjIdD4AyX7mYNoWDSqZ6tmNKo14ZFwfToKeb49SB60U,1733
2
2
  flyte/_build.py,sha256=MkgfLAPeL56YeVrGRNZUCZgbwzlEzVP3wLbl5Qru4yk,578
3
3
  flyte/_context.py,sha256=K0-TCt-_pHOoE5Xni87_8uIe2vCBOhfNQEtjGT4Hu4k,5239
4
- flyte/_deploy.py,sha256=HcLv3JSVAVogQoV9QICMlwYHr6FZ2XPq1AkqmFhCt38,9622
4
+ flyte/_deploy.py,sha256=HU2ksZUvHj77DrJm7MryN0n26DUJqo4h7-op4fUTBUg,9593
5
5
  flyte/_doc.py,sha256=_OPCf3t_git6UT7kSJISFaWO9cfNzJhhoe6JjVdyCJo,706
6
6
  flyte/_docstring.py,sha256=SsG0Ab_YMAwy2ABJlEo3eBKlyC3kwPdnDJ1FIms-ZBQ,1127
7
7
  flyte/_environment.py,sha256=dmIFmFLRIklOEYL9gsP2IH3-MYcjHYyyOlqlcf3E6_A,2924
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=_4IxJ5T4IESBRrxT9ZOlnStSUThcYtceGUDLgtCxMg8,29149
12
- flyte/_initialize.py,sha256=zPcygfpUM24vZ8-6BizPTiDYHeEgXSPbqD4QqJ_pA_A,17831
11
+ flyte/_image.py,sha256=bnbJ9K-41nBNs8Izm9nmsIjiJuCo2Xtfqs-2hWracgU,29723
12
+ flyte/_initialize.py,sha256=xKl_LYMluRt21wWqa6RTKuLo0_DCbSaTfUk27_brtNk,18232
13
13
  flyte/_interface.py,sha256=1B9zIwFDjiVp_3l_mk8EpA4g3Re-6DUBEBi9z9vDvPs,3504
14
14
  flyte/_logging.py,sha256=_yNo-Nx2yzh0MLoZGbnIYHGKei4wtQmSGM0lE30Ev7w,3662
15
15
  flyte/_map.py,sha256=efPd8O-JKUg1OY3_MzU3KGbhsGYDVRNBwWr0ceNIXhQ,7444
@@ -17,19 +17,19 @@ flyte/_pod.py,sha256=lNaQuWX22QG6Xji7-8GpuKUkqCmVFaRxOVU-eUEa-Vk,637
17
17
  flyte/_resources.py,sha256=UOLyEVhdxolvrHhddiBbYdJuE1RkM_l7xeS9G1abe6M,7583
18
18
  flyte/_retry.py,sha256=rfLv0MvWxzPByKESTglEmjPsytEAKiIvvmzlJxXwsfE,941
19
19
  flyte/_reusable_environment.py,sha256=P4FBATVKAYcIKpdFN98sI8acPyKy8eIGx6V0kUb9YdM,1289
20
- flyte/_run.py,sha256=pR5JpxXFGZtxmBQXIydUdI6j5pHDhFLNiDQcKs4UyRw,20078
20
+ flyte/_run.py,sha256=HDObXGfZKBafebuh1OR5e1NWLUSbBDcceIz3kX2GMss,22828
21
21
  flyte/_secret.py,sha256=SqIHs6mi8hEkIIBZe3bI9jJsPt65Mt6dV5uh9_op1ME,2392
22
22
  flyte/_task.py,sha256=-3VLSROj8g3-ZWzV272Ww7mt5yIeA753kmpNyr75I58,18087
23
- flyte/_task_environment.py,sha256=1PIuRQ6inH0vMw89iutWKAyPff9qaTEcjk6UR1Gl0cg,6861
23
+ flyte/_task_environment.py,sha256=B493b54xpnNFNtHek3cmT4XuNiPNVf2gx9Yylyb1ncw,6905
24
24
  flyte/_timeout.py,sha256=zx5sFcbYmjJAJbZWSGzzX-BpC9HC7Jfs35T7vVhKwkk,1571
25
25
  flyte/_tools.py,sha256=JewkQZBR_M85tS6QY8e4xXue75jbOE48nID4ZHnc9jY,632
26
26
  flyte/_trace.py,sha256=C788bgoSc3st8kE8Cae2xegnLx2CT6uuRKKfaDrDUys,5122
27
- flyte/_version.py,sha256=2e2m6j7tL3Ebu8vRSSFdddz0gdOkgUI__sFESTmhDUA,521
27
+ flyte/_version.py,sha256=lLSH9VnhVbr8iiWziUI8I52uyc9JpXJ8faNOzpZKfEE,521
28
28
  flyte/errors.py,sha256=skXcdexLisFZFcTnUmMvMmuh4Ty96oJkyLKaipzkyeI,4954
29
29
  flyte/models.py,sha256=my7Vxo-NK6gHGahyqtHr42wYjPGw0nl2SGBBoSb6hIc,14733
30
30
  flyte/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  flyte/_bin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- flyte/_bin/runtime.py,sha256=09OKQeUwyEDkXF2HtzHeYVJsIMkEzLIO2tVCARvPGJE,5783
32
+ flyte/_bin/runtime.py,sha256=_ADnpWY4nVvjaujfcx2pBpOskAvnm0WtXBf1uPnZIAQ,6230
33
33
  flyte/_cache/__init__.py,sha256=zhdO5UuHQRdzn8GHmSN40nrxfAmI4ihDRuHZM11U84Y,305
34
34
  flyte/_cache/cache.py,sha256=ErhWzzJdEjTIuEF4f-r6IBgko-3Al9iUs1Eq4O42TUE,5021
35
35
  flyte/_cache/defaults.py,sha256=gzJZW0QJPUfd2OPnGpv3tzIfwPtgFjAKoie3NP1P97U,217
@@ -38,7 +38,7 @@ flyte/_code_bundle/__init__.py,sha256=G7DJTQ0UN_ETvdh55pYcWsTrZJKXEcyQl9iQQNQOBX
38
38
  flyte/_code_bundle/_ignore.py,sha256=Tfaoa62CQVTH17kBHD6Xv6xEh1FhcAyvXivl9m-MEE0,3853
39
39
  flyte/_code_bundle/_packaging.py,sha256=5QUuea6kg9s-ebBg7gFAHaxOMchxR5MhTQ8KohWsjPk,6909
40
40
  flyte/_code_bundle/_utils.py,sha256=b0s3ZVKSRwaa_2CMTCqt2iRrUvTTW3FmlyqCD9k5BS0,12028
41
- flyte/_code_bundle/bundle.py,sha256=8T0gcXck6dmg-8L2-0G3B2iNjC-Xwydu806iyKneMMY,8789
41
+ flyte/_code_bundle/bundle.py,sha256=nUAwYTVAE3Z9dfgkBtsqCoKJImjSl4AicG36yweWHLc,8797
42
42
  flyte/_internal/__init__.py,sha256=vjXgGzAAjy609YFkAy9_RVPuUlslsHSJBXCLNTVnqOY,136
43
43
  flyte/_internal/controllers/__init__.py,sha256=5CBnS9lb1VFMzZuRXUiaPhlN3G9qh7Aq9kTwxW5hsRw,4301
44
44
  flyte/_internal/controllers/_local_controller.py,sha256=Wpgtd50C_ovIHpQSZC6asQc7iKyKIraEf-MAHCwcNJI,7124
@@ -50,10 +50,10 @@ flyte/_internal/controllers/remote/_controller.py,sha256=G4gEUl-2f4FqACz3IK7sK0-
50
50
  flyte/_internal/controllers/remote/_core.py,sha256=UKjiL3dGidXcR1dPzJswn67g38HQmVXV7n0zoX_8AZY,18422
51
51
  flyte/_internal/controllers/remote/_informer.py,sha256=StiPcQLLW0h36uEBhKsupMY79EeFCKA3QQzvv2IyvRo,14188
52
52
  flyte/_internal/controllers/remote/_service_protocol.py,sha256=B9qbIg6DiGeac-iSccLmX_AL2xUgX4ezNUOiAbSy4V0,1357
53
- flyte/_internal/imagebuild/__init__.py,sha256=cLXVxkAyFpbdC1y-k3Rb6FRW9f_xpoRQWVn__G9IqKs,354
54
- flyte/_internal/imagebuild/docker_builder.py,sha256=cvJ_e2hDvLS9SBvdzgNwvSvkQORP6m-_mjMBHZf-m8I,14479
55
- flyte/_internal/imagebuild/image_builder.py,sha256=fP70cm-yRwQu3zTb2D_LL1gIsoSY-FlHzILgFcgtb1U,10180
56
- flyte/_internal/imagebuild/remote_builder.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ flyte/_internal/imagebuild/__init__.py,sha256=4fPz5RN3QB1DGw5O2sZo7x71F3EWhyE1jmCCqy4iezk,573
54
+ flyte/_internal/imagebuild/docker_builder.py,sha256=LIfqtLQ4NVxkjgWlASiIi_xqvxhztlUDTVt4P7McLDo,15946
55
+ flyte/_internal/imagebuild/image_builder.py,sha256=dXBXl62qcPabus6dR3eP8P9mBGNhpZHZ2Xm12AymKkk,11150
56
+ flyte/_internal/imagebuild/remote_builder.py,sha256=wm-D3xhdrk8OSQxeyI0nfMpw3P1gW7mqDKAOKOnwY6o,10089
57
57
  flyte/_internal/resolvers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  flyte/_internal/resolvers/_task_module.py,sha256=jwy1QYygUK7xmpCZLt1SPTfJCkfox3Ck3mTlTsm66UI,1973
59
59
  flyte/_internal/resolvers/common.py,sha256=ADQLRoyGsJ4vuUkitffMGrMKKjy0vpk6X53g4FuKDLc,993
@@ -88,6 +88,15 @@ flyte/_protos/common/role_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXq
88
88
  flyte/_protos/common/runtime_version_pb2.py,sha256=djTmB3fRv2V0IV6Jzz4mtmHvEuEK4KPCkJWdRcW3DUQ,2012
89
89
  flyte/_protos/common/runtime_version_pb2.pyi,sha256=pPQ9qVtfvE1sGhdZo47aThk2quLtXOOywRhYXFp-Kzg,1132
90
90
  flyte/_protos/common/runtime_version_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
91
+ flyte/_protos/imagebuilder/definition_pb2.py,sha256=F5ZuNWfj4pV4m32eXQvRAeCtKCYyiOIiu8P9foRgJe0,6204
92
+ flyte/_protos/imagebuilder/definition_pb2.pyi,sha256=XFqU2GiajohvO8UlbFdTyXedK7MzeOPC1dXEVTqDnHE,6368
93
+ flyte/_protos/imagebuilder/definition_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
94
+ flyte/_protos/imagebuilder/payload_pb2.py,sha256=CwlIgDS3aP-9fcNPnkLBhGvHMvy14YJahrlAx1DY6M0,2411
95
+ flyte/_protos/imagebuilder/payload_pb2.pyi,sha256=67PTfjzvozDcLDeE4aFdUf27CmHiKKc9FlI_RW0G94A,1002
96
+ flyte/_protos/imagebuilder/payload_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
97
+ flyte/_protos/imagebuilder/service_pb2.py,sha256=mDmwsjYZAP_TQisdRQOq3hu1CtdjyqqHpIwvh96o0uI,2003
98
+ flyte/_protos/imagebuilder/service_pb2.pyi,sha256=VtgJsGavjjVjxdMJQ2OiA2EckDOoPn1DSzKZ-Nfgzf4,202
99
+ flyte/_protos/imagebuilder/service_pb2_grpc.py,sha256=zAmG2jku0e_uRzjcncuy49-7qOZQTxcPCJYJLHD9BSU,2620
91
100
  flyte/_protos/logs/dataplane/payload_pb2.py,sha256=3AqZl3EzNtGZcc5hDxPoP_QQRz1pbCeI-vCcoUyT_U4,12114
92
101
  flyte/_protos/logs/dataplane/payload_pb2.pyi,sha256=KuuIIpTUpXR-HVwKc9kqUvs1cRyMQzFhERdr3GUGTeA,9714
93
102
  flyte/_protos/logs/dataplane/payload_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
@@ -141,25 +150,25 @@ flyte/_utils/helpers.py,sha256=9N70yzfLF4lLGEEdOv5OcweEpYtrCvZqqhtzkjZUXNY,4779
141
150
  flyte/_utils/lazy_module.py,sha256=fvXPjvZLzCfcI8Vzs4pKedUDdY0U_RQ1ZVrp9b8qBQY,1994
142
151
  flyte/_utils/org_discovery.py,sha256=C7aJa0LfnWBkDtSU9M7bE60zp27qEhJC58piqOErZ94,2088
143
152
  flyte/_utils/uv_script_parser.py,sha256=PxqD8lSMi6xv0uDd1s8LKB2IPZr4ttZJCUweqlyMTKk,1483
144
- flyte/cli/__init__.py,sha256=M02O-UGqQlA8JJ_jyWRiwQhTNc5CJJ7x9J7fNxTxBT0,52
153
+ flyte/cli/__init__.py,sha256=aeCcumeP9xD_5aCmaRYUPCe2QRJSGCaxcUbTZ3co768,341
145
154
  flyte/cli/_abort.py,sha256=Ty-63Gtd2PUn6lCuL5AaasfBoPu7TDSU5EQKVbkF4qw,661
146
- flyte/cli/_build.py,sha256=oCbokuIN9_fCtjbhvmJbxHbyLpHirY6vqhxEyFFv8js,3524
147
- flyte/cli/_common.py,sha256=QphqiND3LkF3bngngtArZWqdLMe1uiG5K9XRCHwRdhA,10973
148
- flyte/cli/_create.py,sha256=a75II-xT71SpdopNY14rPuidO5qL0mH1UAwf205sVzQ,4313
155
+ flyte/cli/_build.py,sha256=SBgybTVWOZ22VBHFL8CVFB_oo34lF9wvlwNirYFFyk0,3543
156
+ flyte/cli/_common.py,sha256=CFBmdc0c59XqWb7PuZfLr7Z55HXnlqKaxDCq1sgY9MU,11115
157
+ flyte/cli/_create.py,sha256=8U4kePYmfW02j54184IurNYiTGvjdr3J-ERQM9goHdg,4715
149
158
  flyte/cli/_delete.py,sha256=VTmXv09PBjkdtyl23mbSjIQQlN7Y1AI_bO0GkHP-f9E,546
150
- flyte/cli/_deploy.py,sha256=WUJDAb8qeJBj_mT1yh9v7QjCnC7C-5sMv9ZZZvCNcUc,4597
159
+ flyte/cli/_deploy.py,sha256=Zxm7vn1zrqmll73CJTiVGYJI95P-XBI1AlhOlmbmkD0,4635
151
160
  flyte/cli/_gen.py,sha256=vlE5l8UR1zz4RSdaRyUfYFvGR0TLxGcTYcP4dhA3Pvg,5458
152
- flyte/cli/_get.py,sha256=UBh82YQ3WZF7WPZjW3l3RQG97JZYlgHMzpuiVdtJseg,9896
161
+ flyte/cli/_get.py,sha256=fRLXefcF_fgJ7TgmaF06gdscOvLDamNvO0TpveqHDAQ,10063
153
162
  flyte/cli/_params.py,sha256=cDeTvjOQP8EydVJUrncLeAxUaHvGorJyDvMSrAxapmM,19466
154
- flyte/cli/_run.py,sha256=a8Y1XLhti6kaaibcN2AZHjxIauHeXqT9wnXWDKee2ew,7733
155
- flyte/cli/main.py,sha256=Tz9FuNa7MaKpG7LkxytRU8lGgC--LQ8ardTWEoj9CLE,4596
163
+ flyte/cli/_run.py,sha256=fyxGt5ZbW84EcjPVJq5ADK4254kzYHUa2ggp7MRKarI,7776
164
+ flyte/cli/main.py,sha256=7P8nBWvme7beBola5Oo-tHgn9ydWIA-J3w5XH_ORImM,4836
156
165
  flyte/config/__init__.py,sha256=MiwEYK5Iv7MRR22z61nzbsbvZ9Q6MdmAU_g9If1Pmb8,144
157
- flyte/config/_config.py,sha256=QE3T0W8xOULjJaqDMdMF90f9gFVjGR6h8QPOLsyqjYw,9831
158
- flyte/config/_internal.py,sha256=Bj0uzn3PYgxKbzM-q2GKXxp7Y6cyzhPzUB-Y2i6cQKo,2836
159
- flyte/config/_reader.py,sha256=c16jm0_IYxwEAjXENtllLeO_sT5Eg2RNLG4UjnAv_x4,7157
166
+ flyte/config/_config.py,sha256=WElU--Kw4MM9zx1v-rLD8qYu2T5Zk0-1QbTpkEc27bc,10779
167
+ flyte/config/_internal.py,sha256=LMcAtDjvTjf5bGlsJVxPuLxQQ82mLd00xK5-JlYGCi8,2989
168
+ flyte/config/_reader.py,sha256=K_ZAxSbXVmswMmMtObQWnTw398r6EcwyHOg2i7bp2Cs,7037
160
169
  flyte/connectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
170
  flyte/extras/__init__.py,sha256=FhB0uK7H1Yo5De9vOuF7UGnezTKncj3u2Wo5uQdWN0g,74
162
- flyte/extras/_container.py,sha256=TwYBgo7-mSi4urXFHr8dkDnYUUg--tQLqd-TOvd5Xxg,11298
171
+ flyte/extras/_container.py,sha256=kxwiMltfMizjOKmsXYQ-rLOCHmX-TCCeJRM7ukuHoOg,11367
163
172
  flyte/io/__init__.py,sha256=F7hlpin_1JJjsdFZSn7_jQgltPzsjETX1DCYGz-ELqI,629
164
173
  flyte/io/_dir.py,sha256=rih9CY1YjNX05bcAu5LG62Xoyij5GXAlv7jLyVF0je8,15310
165
174
  flyte/io/_file.py,sha256=kp5700SKPy5htmMhm4hE2ybb99Ykny1b0Kwm3huCWXs,15572
@@ -168,12 +177,12 @@ flyte/io/_structured_dataset/basic_dfs.py,sha256=D0QzcaMBO_R2s9Oi9mDqiykkBp0kgi-
168
177
  flyte/io/_structured_dataset/structured_dataset.py,sha256=ddRjz36RhNxIy0gakzdLStBzoo4cAOgXbNqiqt5YhMI,52645
169
178
  flyte/remote/__init__.py,sha256=h0J9W1yWbvPq2R9HXa_HezJtxHoWl6d9QKQbuuKDMnU,597
170
179
  flyte/remote/_console.py,sha256=avmELJPx8nQMAVPrHlh6jEIRPjrMwFpdZjJsWOOa9rE,660
171
- flyte/remote/_data.py,sha256=EO1ZXGYvhfFDOlU9Q0-tSJqLK4shc7q3nvOPPWJxuTc,6078
180
+ flyte/remote/_data.py,sha256=h3oR2ZmwOEg6HpWyYVbVcHBs8_LX2RmRolHxgwBjlQE,6121
172
181
  flyte/remote/_logs.py,sha256=EOXg4OS8yYclsT6NASgOLMo0TA2sZpKb2MWZXpWBPuI,6404
173
182
  flyte/remote/_project.py,sha256=dTBYqORDAbLvh9WnPO1Ytuzw2vxNYZwwNsKE2_b0o14,2807
174
- flyte/remote/_run.py,sha256=MQRxd6Ib_Si2aGV83H4P1ZR3QiDpec_gwsAtjjkp8qY,31247
183
+ flyte/remote/_run.py,sha256=yIFMydcZu57sTZ45_MKJBK_igvmZ_T50j65WCL_0lCw,31573
175
184
  flyte/remote/_secret.py,sha256=l5xeMS83uMcWWeSSTRsSZUNhS0N--1Dze09C-thSOQs,4341
176
- flyte/remote/_task.py,sha256=7e5Y0K8vd8TC2J6Nb0nOCUPaUh8IiV3kKfgsCP9CcGw,14227
185
+ flyte/remote/_task.py,sha256=pIQ2pIIcaEaOo5J1ua3eRlj9NAue9WOSyw64f1-A2oY,15183
177
186
  flyte/remote/_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
187
  flyte/remote/_client/_protocols.py,sha256=JyBWHs5WsVOxEDUyG9X7wPLDzzzjkoaNhJlU-X4YlN0,5599
179
188
  flyte/remote/_client/controlplane.py,sha256=FsOfj4rO4MIMnYrpAT53F8q588VVf5t4sDuwoPuc840,3102
@@ -210,10 +219,10 @@ flyte/types/_interface.py,sha256=5y9EC5r897xz03Hh0ltF8QVGKMfMfAznws-hKSEO4Go,167
210
219
  flyte/types/_pickle.py,sha256=PjdR66OTDMZ3OYq6GvM_Ua0cIo5t2XQaIjmpJ9xo4Ys,4050
211
220
  flyte/types/_renderer.py,sha256=ygcCo5l60lHufyQISFddZfWwLlQ8kJAKxUT_XnR_6dY,4818
212
221
  flyte/types/_string_literals.py,sha256=NlG1xV8RSA-sZ-n-IFQCAsdB6jXJOAKkHWtnopxVVDk,4231
213
- flyte/types/_type_engine.py,sha256=Kk5g1nZubh2A4KWbvGBf5A-aZTvbTtjrY1Bg1_GOPV4,96643
222
+ flyte/types/_type_engine.py,sha256=CCjpqXNX2BMza2cKq42hJXwabWy8GWsimsgiGZJ_00M,96583
214
223
  flyte/types/_utils.py,sha256=pbts9E1_2LTdLygAY0UYTLYJ8AsN3BZyviSXvrtcutc,2626
215
- flyte-0.2.0b17.dist-info/METADATA,sha256=1YonrUOjdoOg1arAfsZNEdKxBy6VBjI5WlW9QJYHd68,5850
216
- flyte-0.2.0b17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
217
- flyte-0.2.0b17.dist-info/entry_points.txt,sha256=MIq2z5dBurdCJfpXfMKzgBv7sJOakKRYxr8G0cMiTrg,75
218
- flyte-0.2.0b17.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
219
- flyte-0.2.0b17.dist-info/RECORD,,
224
+ flyte-0.2.0b19.dist-info/METADATA,sha256=CA-imLK_aWownDK2aSjTFveyezSzr-divP6xIUBRQNY,5850
225
+ flyte-0.2.0b19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
226
+ flyte-0.2.0b19.dist-info/entry_points.txt,sha256=MIq2z5dBurdCJfpXfMKzgBv7sJOakKRYxr8G0cMiTrg,75
227
+ flyte-0.2.0b19.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
228
+ flyte-0.2.0b19.dist-info/RECORD,,