flyte 0.2.0b15__py3-none-any.whl → 0.2.0b17__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/__init__.py CHANGED
@@ -36,6 +36,7 @@ __all__ = [
36
36
  "TimeoutType",
37
37
  "__version__",
38
38
  "build",
39
+ "build_images",
39
40
  "ctx",
40
41
  "deploy",
41
42
  "group",
@@ -52,7 +53,7 @@ import sys
52
53
  from ._build import build
53
54
  from ._cache import Cache, CachePolicy, CacheRequest
54
55
  from ._context import ctx
55
- from ._deploy import deploy
56
+ from ._deploy import build_images, deploy
56
57
  from ._environment import Environment
57
58
  from ._excepthook import custom_excepthook
58
59
  from ._group import group
flyte/_bin/runtime.py CHANGED
@@ -118,9 +118,9 @@ def main(
118
118
  # File "src/python/grpcio/grpc/_cython/_cygrpc/aio/completion_queue.pyx.pxi", line 147,
119
119
  # in grpc._cython.cygrpc.PollerCompletionQueue._handle_events
120
120
  # BlockingIOError: [Errno 11] Resource temporarily unavailable
121
- init(org=org, project=project, domain=domain, **controller_kwargs)
121
+ # init(org=org, project=project, domain=domain, **controller_kwargs)
122
122
  # TODO solution is to use a single channel for both controller and reference tasks, but this requires a refactor
123
- # init()
123
+ init()
124
124
  # Controller is created with the same kwargs as init, so that it can be used to run tasks
125
125
  controller = create_controller(ct="remote", **controller_kwargs)
126
126
 
flyte/_deploy.py CHANGED
@@ -123,7 +123,7 @@ async def _build_image_bg(env_name: str, image: Image) -> Tuple[str, str]:
123
123
  return env_name, await build.aio(image)
124
124
 
125
125
 
126
- async def build_images(deployment: DeploymentPlan) -> ImageCache:
126
+ async def _build_images(deployment: DeploymentPlan) -> ImageCache:
127
127
  """
128
128
  Build the images for the given deployment plan and update the environment with the built image.
129
129
  """
@@ -155,7 +155,7 @@ async def apply(deployment: DeploymentPlan, copy_style: CopyFiles, dryrun: bool
155
155
  from ._code_bundle import build_code_bundle
156
156
 
157
157
  cfg = get_common_config()
158
- image_cache = await build_images(deployment)
158
+ image_cache = await _build_images(deployment)
159
159
 
160
160
  version = deployment.version
161
161
  code_bundle = None
@@ -241,3 +241,14 @@ async def deploy(
241
241
  raise NotImplementedError("Interactive mode not yet implemented for deployment")
242
242
  deployment = plan_deploy(*envs, version=version)
243
243
  return await apply(deployment, copy_style=copy_style, dryrun=dryrun)
244
+
245
+
246
+ @syncify
247
+ async def build_images(*envs: Environment) -> ImageCache:
248
+ """
249
+ Build the images for the given environments.
250
+ :param envs: Environment or list of environments to build images for.
251
+ :return: ImageCache containing the built images.
252
+ """
253
+ deployment = plan_deploy(*envs)
254
+ return await _build_images(deployment)
@@ -239,3 +239,17 @@ class ImageCache(BaseModel):
239
239
  val = cls.model_validate_json(json_str)
240
240
  val.serialized_form = s
241
241
  return val
242
+
243
+ def repr(self) -> typing.List[typing.List[Tuple[str, str]]]:
244
+ """
245
+ Returns a detailed representation of the deployed environments.
246
+ """
247
+ tuples = []
248
+ for k, v in self.image_lookup.items():
249
+ tuples.append(
250
+ [
251
+ ("Name", k),
252
+ ("image", v),
253
+ ]
254
+ )
255
+ return tuples
flyte/_run.py CHANGED
@@ -92,7 +92,7 @@ class _Runner:
92
92
  from flyte.remote._task import LazyEntity
93
93
 
94
94
  from ._code_bundle import build_code_bundle, build_pkl_bundle
95
- from ._deploy import build_images, plan_deploy
95
+ from ._deploy import build_images
96
96
  from ._internal.runtime.convert import convert_from_native_to_inputs
97
97
  from ._internal.runtime.task_serde import translate_task_to_wire
98
98
  from ._protos.common import identifier_pb2
@@ -110,8 +110,7 @@ class _Runner:
110
110
  if obj.parent_env is None:
111
111
  raise ValueError("Task is not attached to an environment. Please attach the task to an environment")
112
112
 
113
- deploy_plan = plan_deploy(cast(Environment, obj.parent_env()))
114
- image_cache = await build_images(deploy_plan)
113
+ image_cache = await build_images.aio(cast(Environment, obj.parent_env()))
115
114
 
116
115
  if self._interactive_mode:
117
116
  code_bundle = await build_pkl_bundle(
@@ -237,7 +236,7 @@ class _Runner:
237
236
  """
238
237
  import flyte.report
239
238
  from flyte._code_bundle import build_code_bundle, build_pkl_bundle
240
- from flyte._deploy import build_images, plan_deploy
239
+ from flyte._deploy import build_images
241
240
  from flyte.models import RawDataPath
242
241
  from flyte.storage import ABFS, GCS, S3
243
242
 
@@ -249,8 +248,7 @@ class _Runner:
249
248
  if obj.parent_env is None:
250
249
  raise ValueError("Task is not attached to an environment. Please attach the task to an environment.")
251
250
 
252
- deploy_plan = plan_deploy(cast(Environment, obj.parent_env()))
253
- image_cache = await build_images(deploy_plan)
251
+ image_cache = build_images.aio(cast(Environment, obj.parent_env()))
254
252
 
255
253
  code_bundle = None
256
254
  if self._name is not None:
flyte/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.2.0b15'
21
- __version_tuple__ = version_tuple = (0, 2, 0, 'b15')
20
+ __version__ = version = '0.2.0b17'
21
+ __version_tuple__ = version_tuple = (0, 2, 0, 'b17')
flyte/cli/_build.py ADDED
@@ -0,0 +1,117 @@
1
+ from dataclasses import dataclass, field, fields
2
+ from pathlib import Path
3
+ from types import ModuleType
4
+ from typing import Any, Dict, List, cast
5
+
6
+ import click
7
+ from click import Context
8
+
9
+ import flyte
10
+
11
+ from . import _common as common
12
+ from ._common import CLIConfig
13
+
14
+
15
+ @dataclass
16
+ class BuildArguments:
17
+ noop: bool = field(
18
+ default=False,
19
+ metadata={
20
+ "click.option": click.Option(
21
+ ["--noop"],
22
+ type=bool,
23
+ help="Dummy parameter, placeholder for future use. Does not affect the build process.",
24
+ )
25
+ },
26
+ )
27
+
28
+ @classmethod
29
+ def from_dict(cls, d: Dict[str, Any]) -> "BuildArguments":
30
+ return cls(**d)
31
+
32
+ @classmethod
33
+ def options(cls) -> List[click.Option]:
34
+ """
35
+ Return the set of base parameters added to every flyte run workflow subcommand.
36
+ """
37
+ return [common.get_option_from_metadata(f.metadata) for f in fields(cls) if f.metadata]
38
+
39
+
40
+ class BuildEnvCommand(click.Command):
41
+ def __init__(self, obj_name: str, obj: Any, build_args: BuildArguments, *args, **kwargs):
42
+ self.obj_name = obj_name
43
+ self.obj = obj
44
+ self.build_args = build_args
45
+ super().__init__(*args, **kwargs)
46
+
47
+ def invoke(self, ctx: Context):
48
+ from rich.console import Console
49
+
50
+ console = Console()
51
+ console.print(f"Building Environment: {self.obj_name}")
52
+ obj: CLIConfig = ctx.obj
53
+ obj.init()
54
+ with console.status("Building...", spinner="dots"):
55
+ image_cache = flyte.build_images(self.obj)
56
+
57
+ console.print(common.get_table("Images", image_cache.repr()))
58
+
59
+
60
+ class EnvPerFileGroup(common.ObjectsPerFileGroup):
61
+ """
62
+ Group that creates a command for each task in the current directory that is not `__init__.py`.
63
+ """
64
+
65
+ def __init__(self, filename: Path, build_args: BuildArguments, *args, **kwargs):
66
+ args = (filename, *args)
67
+ super().__init__(*args, **kwargs)
68
+ self.build_args = build_args
69
+
70
+ def _filter_objects(self, module: ModuleType) -> Dict[str, Any]:
71
+ return {k: v for k, v in module.__dict__.items() if isinstance(v, flyte.Environment)}
72
+
73
+ def _get_command_for_obj(self, ctx: click.Context, obj_name: str, obj: Any) -> click.Command:
74
+ obj = cast(flyte.Environment, obj)
75
+ return BuildEnvCommand(
76
+ name=obj_name,
77
+ obj_name=obj_name,
78
+ obj=obj,
79
+ help=f"{obj.name}" + (f": {obj.description}" if obj.description else ""),
80
+ build_args=self.build_args,
81
+ )
82
+
83
+
84
+ class EnvFiles(common.FileGroup):
85
+ """
86
+ Group that creates a command for each file in the current directory that is not `__init__.py`.
87
+ """
88
+
89
+ common_options_enabled = False
90
+
91
+ def __init__(
92
+ self,
93
+ *args,
94
+ **kwargs,
95
+ ):
96
+ if "params" not in kwargs:
97
+ kwargs["params"] = []
98
+ kwargs["params"].extend(BuildArguments.options())
99
+ super().__init__(*args, **kwargs)
100
+
101
+ def get_command(self, ctx, filename):
102
+ build_args = BuildArguments.from_dict(ctx.params)
103
+ return EnvPerFileGroup(
104
+ filename=Path(filename),
105
+ build_args=build_args,
106
+ name=filename,
107
+ help=f"Run, functions decorated `env.task` or instances of Tasks in {filename}",
108
+ )
109
+
110
+
111
+ build = EnvFiles(
112
+ name="build",
113
+ help="""
114
+ Build the environments defined in a python file or directory. This will build the images associated with the
115
+ environments.
116
+ """,
117
+ )
flyte/cli/_deploy.py CHANGED
@@ -32,16 +32,6 @@ class DeployArguments:
32
32
  },
33
33
  )
34
34
  dry_run: bool = field(default=False, metadata={"click.option": common.DRY_RUN_OPTION})
35
- local: bool = field(
36
- default=False,
37
- metadata={
38
- "click.option": click.Option(
39
- ["--local"],
40
- is_flag=True,
41
- help="Run the task locally",
42
- )
43
- },
44
- )
45
35
  copy_style: CopyFiles = field(
46
36
  default="loaded_modules",
47
37
  metadata={
flyte/cli/main.py CHANGED
@@ -3,6 +3,7 @@ import rich_click as click
3
3
  from flyte._logging import initialize_logger, logger
4
4
 
5
5
  from ._abort import abort
6
+ from ._build import build
6
7
  from ._common import CLIConfig
7
8
  from ._create import create
8
9
  from ._delete import delete
@@ -21,8 +22,12 @@ help_config = click.RichHelpConfiguration(
21
22
  "commands": ["run", "abort"],
22
23
  },
23
24
  {
24
- "name": "Management",
25
- "commands": ["create", "deploy", "get", "delete"],
25
+ "name": "Management of various objects.",
26
+ "commands": ["create", "get", "delete"],
27
+ },
28
+ {
29
+ "name": "Build and deploy environments, tasks and images.",
30
+ "commands": ["build", "deploy"],
26
31
  },
27
32
  {
28
33
  "name": "Documentation generation",
@@ -164,3 +169,4 @@ main.add_command(create) # type: ignore
164
169
  main.add_command(abort) # type: ignore
165
170
  main.add_command(gen) # type: ignore
166
171
  main.add_command(delete) # type: ignore
172
+ main.add_command(build)
@@ -27,8 +27,9 @@ def _extract_path_command_key(cmd: str, input_data_dir: Optional[str]) -> Option
27
27
  import re
28
28
 
29
29
  input_data_dir = input_data_dir or ""
30
- input_regex = rf"{re.escape(input_data_dir)}/(.+)$"
31
- match = re.match(input_regex, cmd)
30
+ input_regex = rf"{re.escape(input_data_dir)}/([\w\-.]+)" # captures file or dir names
31
+
32
+ match = re.search(input_regex, cmd)
32
33
  if match:
33
34
  return match.group(1)
34
35
  return None
@@ -105,13 +106,15 @@ class ContainerTask(TaskTemplate):
105
106
 
106
107
  volume_binding: Dict[str, Dict[str, str]] = {}
107
108
  path_k = _extract_path_command_key(cmd, str(self._input_data_dir))
108
- keys = path_k if path_k else _extract_command_key(cmd)
109
+ keys = [path_k] if path_k else _extract_command_key(cmd)
110
+
111
+ command = cmd
109
112
 
110
113
  if keys:
111
114
  for k in keys:
112
115
  input_val = kwargs.get(k)
113
116
  # TODO: Add support file and directory transformer first
114
- if type(input_val) in [File, Dir]:
117
+ if input_val and type(input_val) in [File, Dir]:
115
118
  if not path_k:
116
119
  raise AssertionError(
117
120
  "File and Directory commands should not use the template syntax "
@@ -119,15 +122,16 @@ class ContainerTask(TaskTemplate):
119
122
  "Please use a path-like syntax, such as: /var/inputs/infile.\n"
120
123
  "This requirement is due to how Flyte Propeller processes template syntax inputs."
121
124
  )
122
- local_flyte_file_or_dir_path = str(input_val)
125
+ local_flyte_file_or_dir_path = input_val.path
123
126
  remote_flyte_file_or_dir_path = os.path.join(self._input_data_dir, k) # type: ignore
124
127
  volume_binding[local_flyte_file_or_dir_path] = {
125
128
  "bind": remote_flyte_file_or_dir_path,
126
129
  "mode": "rw",
127
130
  }
128
- command = remote_flyte_file_or_dir_path
129
131
  else:
130
- command = cmd
132
+ command = command.replace(f"{{{{.inputs.{k}}}}}", str(input_val))
133
+ else:
134
+ command = cmd
131
135
 
132
136
  return command, volume_binding
133
137
 
@@ -199,15 +203,18 @@ class ContainerTask(TaskTemplate):
199
203
  else:
200
204
  return output_type(output_val)
201
205
 
202
- def _get_output_dict(self, output_directory: pathlib.Path) -> Dict[str, Any]:
203
- output_dict = {}
206
+ def _get_output(self, output_directory: pathlib.Path) -> Tuple[Any]:
207
+ output_items = []
204
208
  if self._outputs:
205
209
  for k, output_type in self._outputs.items():
206
210
  output_path = output_directory / k
207
211
  with output_path.open("r") as f:
208
212
  output_val = f.read()
209
- output_dict[k] = self._convert_output_val_to_correct_type(output_val, output_type)
210
- return output_dict
213
+ output_items.append(self._convert_output_val_to_correct_type(output_val, output_type))
214
+ # return a tuple so that each element is treated as a separate output.
215
+ # this allows flyte to map the user-defined output types (dict) to individual values.
216
+ # if we returned a list instead, it would be treated as a single output.
217
+ return tuple(output_items)
211
218
 
212
219
  async def execute(self, **kwargs) -> Any:
213
220
  try:
@@ -242,8 +249,8 @@ class ContainerTask(TaskTemplate):
242
249
 
243
250
  container.wait()
244
251
 
245
- output_dict = self._get_output_dict(output_directory)
246
- return output_dict
252
+ output = self._get_output(output_directory)
253
+ return output
247
254
 
248
255
  def data_loading_config(self, sctx: SerializationContext) -> tasks_pb2.DataLoadingConfig:
249
256
  literal_to_protobuf = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flyte
3
- Version: 0.2.0b15
3
+ Version: 0.2.0b17
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,7 +1,7 @@
1
- flyte/__init__.py,sha256=2OcML9ib7PwGyFRfQqc_i0l4BKHLabLbwBFvB7p1OeU,1699
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=4RfrjSniBYbHSKRKQpmACGHPYdlaE4voX4jn-BdcOhA,9280
4
+ flyte/_deploy.py,sha256=HcLv3JSVAVogQoV9QICMlwYHr6FZ2XPq1AkqmFhCt38,9622
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
@@ -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=32pLVE2UhZOYOHfYH2yKPSzVFkRj1OjjCUxgCYMyeXE,20200
20
+ flyte/_run.py,sha256=pR5JpxXFGZtxmBQXIydUdI6j5pHDhFLNiDQcKs4UyRw,20078
21
21
  flyte/_secret.py,sha256=SqIHs6mi8hEkIIBZe3bI9jJsPt65Mt6dV5uh9_op1ME,2392
22
22
  flyte/_task.py,sha256=-3VLSROj8g3-ZWzV272Ww7mt5yIeA753kmpNyr75I58,18087
23
23
  flyte/_task_environment.py,sha256=1PIuRQ6inH0vMw89iutWKAyPff9qaTEcjk6UR1Gl0cg,6861
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=RbabyiAT9BZS4y_-wPKvDqifAniKvrfGunjyicmEHU0,521
27
+ flyte/_version.py,sha256=2e2m6j7tL3Ebu8vRSSFdddz0gdOkgUI__sFESTmhDUA,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=JXh1wgOhCnIMBE7YJY9biepY3VedrGdIFHDfzmz5gjM,5783
32
+ flyte/_bin/runtime.py,sha256=09OKQeUwyEDkXF2HtzHeYVJsIMkEzLIO2tVCARvPGJE,5783
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
@@ -52,7 +52,7 @@ flyte/_internal/controllers/remote/_informer.py,sha256=StiPcQLLW0h36uEBhKsupMY79
52
52
  flyte/_internal/controllers/remote/_service_protocol.py,sha256=B9qbIg6DiGeac-iSccLmX_AL2xUgX4ezNUOiAbSy4V0,1357
53
53
  flyte/_internal/imagebuild/__init__.py,sha256=cLXVxkAyFpbdC1y-k3Rb6FRW9f_xpoRQWVn__G9IqKs,354
54
54
  flyte/_internal/imagebuild/docker_builder.py,sha256=cvJ_e2hDvLS9SBvdzgNwvSvkQORP6m-_mjMBHZf-m8I,14479
55
- flyte/_internal/imagebuild/image_builder.py,sha256=mzC0Dz_vUCnOB9ZO4zRMoS0qXFGsw6UBC_xOqU8TVkQ,9785
55
+ flyte/_internal/imagebuild/image_builder.py,sha256=fP70cm-yRwQu3zTb2D_LL1gIsoSY-FlHzILgFcgtb1U,10180
56
56
  flyte/_internal/imagebuild/remote_builder.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  flyte/_internal/resolvers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  flyte/_internal/resolvers/_task_module.py,sha256=jwy1QYygUK7xmpCZLt1SPTfJCkfox3Ck3mTlTsm66UI,1973
@@ -143,22 +143,23 @@ flyte/_utils/org_discovery.py,sha256=C7aJa0LfnWBkDtSU9M7bE60zp27qEhJC58piqOErZ94
143
143
  flyte/_utils/uv_script_parser.py,sha256=PxqD8lSMi6xv0uDd1s8LKB2IPZr4ttZJCUweqlyMTKk,1483
144
144
  flyte/cli/__init__.py,sha256=M02O-UGqQlA8JJ_jyWRiwQhTNc5CJJ7x9J7fNxTxBT0,52
145
145
  flyte/cli/_abort.py,sha256=Ty-63Gtd2PUn6lCuL5AaasfBoPu7TDSU5EQKVbkF4qw,661
146
+ flyte/cli/_build.py,sha256=oCbokuIN9_fCtjbhvmJbxHbyLpHirY6vqhxEyFFv8js,3524
146
147
  flyte/cli/_common.py,sha256=QphqiND3LkF3bngngtArZWqdLMe1uiG5K9XRCHwRdhA,10973
147
148
  flyte/cli/_create.py,sha256=a75II-xT71SpdopNY14rPuidO5qL0mH1UAwf205sVzQ,4313
148
149
  flyte/cli/_delete.py,sha256=VTmXv09PBjkdtyl23mbSjIQQlN7Y1AI_bO0GkHP-f9E,546
149
- flyte/cli/_deploy.py,sha256=_7tMgLavjvncdTdrn1sxN4UlnL16vuC1o-k5VefZTxM,4841
150
+ flyte/cli/_deploy.py,sha256=WUJDAb8qeJBj_mT1yh9v7QjCnC7C-5sMv9ZZZvCNcUc,4597
150
151
  flyte/cli/_gen.py,sha256=vlE5l8UR1zz4RSdaRyUfYFvGR0TLxGcTYcP4dhA3Pvg,5458
151
152
  flyte/cli/_get.py,sha256=UBh82YQ3WZF7WPZjW3l3RQG97JZYlgHMzpuiVdtJseg,9896
152
153
  flyte/cli/_params.py,sha256=cDeTvjOQP8EydVJUrncLeAxUaHvGorJyDvMSrAxapmM,19466
153
154
  flyte/cli/_run.py,sha256=a8Y1XLhti6kaaibcN2AZHjxIauHeXqT9wnXWDKee2ew,7733
154
- flyte/cli/main.py,sha256=a9VsgyGi-s_FoXL-HsSXYSQfLV_ljCJWnTCriOHWXWI,4382
155
+ flyte/cli/main.py,sha256=Tz9FuNa7MaKpG7LkxytRU8lGgC--LQ8ardTWEoj9CLE,4596
155
156
  flyte/config/__init__.py,sha256=MiwEYK5Iv7MRR22z61nzbsbvZ9Q6MdmAU_g9If1Pmb8,144
156
157
  flyte/config/_config.py,sha256=QE3T0W8xOULjJaqDMdMF90f9gFVjGR6h8QPOLsyqjYw,9831
157
158
  flyte/config/_internal.py,sha256=Bj0uzn3PYgxKbzM-q2GKXxp7Y6cyzhPzUB-Y2i6cQKo,2836
158
159
  flyte/config/_reader.py,sha256=c16jm0_IYxwEAjXENtllLeO_sT5Eg2RNLG4UjnAv_x4,7157
159
160
  flyte/connectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
161
  flyte/extras/__init__.py,sha256=FhB0uK7H1Yo5De9vOuF7UGnezTKncj3u2Wo5uQdWN0g,74
161
- flyte/extras/_container.py,sha256=bB9wxoU-Xq75LEIoR-MkadbImjCUNRv_Tf-b2pMTct8,10947
162
+ flyte/extras/_container.py,sha256=TwYBgo7-mSi4urXFHr8dkDnYUUg--tQLqd-TOvd5Xxg,11298
162
163
  flyte/io/__init__.py,sha256=F7hlpin_1JJjsdFZSn7_jQgltPzsjETX1DCYGz-ELqI,629
163
164
  flyte/io/_dir.py,sha256=rih9CY1YjNX05bcAu5LG62Xoyij5GXAlv7jLyVF0je8,15310
164
165
  flyte/io/_file.py,sha256=kp5700SKPy5htmMhm4hE2ybb99Ykny1b0Kwm3huCWXs,15572
@@ -211,8 +212,8 @@ flyte/types/_renderer.py,sha256=ygcCo5l60lHufyQISFddZfWwLlQ8kJAKxUT_XnR_6dY,4818
211
212
  flyte/types/_string_literals.py,sha256=NlG1xV8RSA-sZ-n-IFQCAsdB6jXJOAKkHWtnopxVVDk,4231
212
213
  flyte/types/_type_engine.py,sha256=Kk5g1nZubh2A4KWbvGBf5A-aZTvbTtjrY1Bg1_GOPV4,96643
213
214
  flyte/types/_utils.py,sha256=pbts9E1_2LTdLygAY0UYTLYJ8AsN3BZyviSXvrtcutc,2626
214
- flyte-0.2.0b15.dist-info/METADATA,sha256=8EpO_eWz-jwLENNAJAOph4ku1Z3h6-K7OG5W9tv1y3M,5850
215
- flyte-0.2.0b15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
216
- flyte-0.2.0b15.dist-info/entry_points.txt,sha256=MIq2z5dBurdCJfpXfMKzgBv7sJOakKRYxr8G0cMiTrg,75
217
- flyte-0.2.0b15.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
218
- flyte-0.2.0b15.dist-info/RECORD,,
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,,