flyte 2.0.0b19__py3-none-any.whl → 2.0.0b21__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 (37) hide show
  1. flyte/_bin/runtime.py +2 -2
  2. flyte/_code_bundle/_ignore.py +11 -3
  3. flyte/_code_bundle/_packaging.py +9 -5
  4. flyte/_code_bundle/_utils.py +2 -2
  5. flyte/_initialize.py +14 -7
  6. flyte/_interface.py +35 -2
  7. flyte/_internal/controllers/remote/__init__.py +0 -2
  8. flyte/_internal/controllers/remote/_controller.py +3 -3
  9. flyte/_internal/controllers/remote/_core.py +120 -92
  10. flyte/_internal/controllers/remote/_informer.py +15 -6
  11. flyte/_internal/imagebuild/docker_builder.py +58 -8
  12. flyte/_internal/imagebuild/remote_builder.py +9 -26
  13. flyte/_keyring/__init__.py +0 -0
  14. flyte/_keyring/file.py +85 -0
  15. flyte/_logging.py +19 -8
  16. flyte/_utils/coro_management.py +2 -1
  17. flyte/_version.py +3 -3
  18. flyte/config/_config.py +6 -4
  19. flyte/config/_reader.py +19 -4
  20. flyte/errors.py +9 -0
  21. flyte/git/_config.py +2 -0
  22. flyte/io/_dataframe/dataframe.py +3 -2
  23. flyte/io/_dir.py +72 -72
  24. flyte/models.py +6 -2
  25. flyte/remote/_client/auth/_authenticators/device_code.py +3 -4
  26. flyte/remote/_data.py +2 -3
  27. flyte/remote/_run.py +17 -1
  28. flyte/storage/_config.py +5 -1
  29. flyte/types/_type_engine.py +7 -0
  30. {flyte-2.0.0b19.data → flyte-2.0.0b21.data}/scripts/runtime.py +2 -2
  31. {flyte-2.0.0b19.dist-info → flyte-2.0.0b21.dist-info}/METADATA +2 -1
  32. {flyte-2.0.0b19.dist-info → flyte-2.0.0b21.dist-info}/RECORD +37 -35
  33. {flyte-2.0.0b19.dist-info → flyte-2.0.0b21.dist-info}/entry_points.txt +3 -0
  34. {flyte-2.0.0b19.data → flyte-2.0.0b21.data}/scripts/debug.py +0 -0
  35. {flyte-2.0.0b19.dist-info → flyte-2.0.0b21.dist-info}/WHEEL +0 -0
  36. {flyte-2.0.0b19.dist-info → flyte-2.0.0b21.dist-info}/licenses/LICENSE +0 -0
  37. {flyte-2.0.0b19.dist-info → flyte-2.0.0b21.dist-info}/top_level.txt +0 -0
flyte/io/_dir.py CHANGED
@@ -27,21 +27,21 @@ class Dir(BaseModel, Generic[T], SerializableType):
27
27
  The generic type T represents the format of the files in the directory.
28
28
 
29
29
  Example:
30
- ```python
31
- # Async usage
32
- from pandas import DataFrame
33
- data_dir = Dir[DataFrame](path="s3://my-bucket/data/")
34
-
35
- # Walk through files
36
- async for file in data_dir.walk():
37
- async with file.open() as f:
38
- content = await f.read()
39
-
40
- # Sync alternative
41
- for file in data_dir.walk_sync():
42
- with file.open_sync() as f:
43
- content = f.read()
44
- ```
30
+ ```python
31
+ # Async usage
32
+ from pandas import DataFrame
33
+ data_dir = Dir[DataFrame](path="s3://my-bucket/data/")
34
+
35
+ # Walk through files
36
+ async for file in data_dir.walk():
37
+ async with file.open() as f:
38
+ content = await f.read()
39
+
40
+ # Sync alternative
41
+ for file in data_dir.walk_sync():
42
+ with file.open_sync() as f:
43
+ content = f.read()
44
+ ```
45
45
  """
46
46
 
47
47
  # Represents either a local or remote path.
@@ -94,11 +94,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
94
94
  File objects for each file found in the directory
95
95
 
96
96
  Example:
97
- ```python
98
- async for file in directory.walk():
99
- local_path = await file.download()
100
- # Process the file
101
- ```
97
+ ```python
98
+ async for file in directory.walk():
99
+ local_path = await file.download()
100
+ # Process the file
101
+ ```
102
102
  """
103
103
  fs = storage.get_underlying_filesystem(path=self.path)
104
104
  if recursive is False:
@@ -134,11 +134,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
134
134
  File objects for each file found in the directory
135
135
 
136
136
  Example:
137
- ```python
138
- for file in directory.walk_sync():
139
- local_path = file.download_sync()
140
- # Process the file
141
- ```
137
+ ```python
138
+ for file in directory.walk_sync():
139
+ local_path = file.download_sync()
140
+ # Process the file
141
+ ```
142
142
  """
143
143
  fs = storage.get_underlying_filesystem(path=self.path)
144
144
  for parent, _, files in fs.walk(self.path, maxdepth=max_depth):
@@ -157,11 +157,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
157
157
  A list of File objects
158
158
 
159
159
  Example:
160
- ```python
161
- files = await directory.list_files()
162
- for file in files:
163
- # Process the file
164
- ```
160
+ ```python
161
+ files = await directory.list_files()
162
+ for file in files:
163
+ # Process the file
164
+ ```
165
165
  """
166
166
  # todo: this should probably also just defer to fsspec.find()
167
167
  files = []
@@ -177,11 +177,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
177
177
  A list of File objects
178
178
 
179
179
  Example:
180
- ```python
181
- files = directory.list_files_sync()
182
- for file in files:
183
- # Process the file
184
- ```
180
+ ```python
181
+ files = directory.list_files_sync()
182
+ for file in files:
183
+ # Process the file
184
+ ```
185
185
  """
186
186
  return list(self.walk_sync(recursive=False))
187
187
 
@@ -197,9 +197,9 @@ class Dir(BaseModel, Generic[T], SerializableType):
197
197
  The path to the downloaded directory
198
198
 
199
199
  Example:
200
- ```python
201
- local_dir = await directory.download('/tmp/my_data/')
202
- ```
200
+ ```python
201
+ local_dir = await directory.download('/tmp/my_data/')
202
+ ```
203
203
  """
204
204
  local_dest = str(local_path) if local_path else str(storage.get_random_local_path())
205
205
  if not storage.is_remote(self.path):
@@ -230,9 +230,9 @@ class Dir(BaseModel, Generic[T], SerializableType):
230
230
  The path to the downloaded directory
231
231
 
232
232
  Example:
233
- ```python
234
- local_dir = directory.download_sync('/tmp/my_data/')
235
- ```
233
+ ```python
234
+ local_dir = directory.download_sync('/tmp/my_data/')
235
+ ```
236
236
  """
237
237
  local_dest = str(local_path) if local_path else str(storage.get_random_local_path())
238
238
  if not storage.is_remote(self.path):
@@ -268,11 +268,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
268
268
  A new Dir instance pointing to the uploaded directory
269
269
 
270
270
  Example:
271
- ```python
272
- remote_dir = await Dir[DataFrame].from_local('/tmp/data_dir/', 's3://bucket/data/')
273
- # With a known hash value you want to use for cache key calculation
274
- remote_dir = await Dir[DataFrame].from_local('/tmp/data_dir/', 's3://bucket/data/', dir_cache_key='abc123')
275
- ```
271
+ ```python
272
+ remote_dir = await Dir[DataFrame].from_local('/tmp/data_dir/', 's3://bucket/data/')
273
+ # With a known hash value you want to use for cache key calculation
274
+ remote_dir = await Dir[DataFrame].from_local('/tmp/data_dir/', 's3://bucket/data/', dir_cache_key='abc123')
275
+ ```
276
276
  """
277
277
  local_path_str = str(local_path)
278
278
  dirname = os.path.basename(os.path.normpath(local_path_str))
@@ -291,11 +291,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
291
291
  the cache key will be computed based on this object's attributes.
292
292
 
293
293
  Example:
294
- ```python
295
- remote_dir = Dir.from_existing_remote("s3://bucket/data/")
296
- # With a known hash
297
- remote_dir = Dir.from_existing_remote("s3://bucket/data/", dir_cache_key="abc123")
298
- ```
294
+ ```python
295
+ remote_dir = Dir.from_existing_remote("s3://bucket/data/")
296
+ # With a known hash
297
+ remote_dir = Dir.from_existing_remote("s3://bucket/data/", dir_cache_key="abc123")
298
+ ```
299
299
  """
300
300
  return cls(path=remote_path, hash=dir_cache_key)
301
301
 
@@ -312,9 +312,9 @@ class Dir(BaseModel, Generic[T], SerializableType):
312
312
  A new Dir instance pointing to the uploaded directory
313
313
 
314
314
  Example:
315
- ```python
316
- remote_dir = Dir[DataFrame].from_local_sync('/tmp/data_dir/', 's3://bucket/data/')
317
- ```
315
+ ```python
316
+ remote_dir = Dir[DataFrame].from_local_sync('/tmp/data_dir/', 's3://bucket/data/')
317
+ ```
318
318
  """
319
319
  # Implement this after we figure out the final sync story
320
320
  raise NotImplementedError("Sync upload is not implemented for remote paths")
@@ -327,10 +327,10 @@ class Dir(BaseModel, Generic[T], SerializableType):
327
327
  True if the directory exists, False otherwise
328
328
 
329
329
  Example:
330
- ```python
331
- if await directory.exists():
332
- # Process the directory
333
- ```
330
+ ```python
331
+ if await directory.exists():
332
+ # Process the directory
333
+ ```
334
334
  """
335
335
  fs = storage.get_underlying_filesystem(path=self.path)
336
336
  if isinstance(fs, AsyncFileSystem):
@@ -346,10 +346,10 @@ class Dir(BaseModel, Generic[T], SerializableType):
346
346
  True if the directory exists, False otherwise
347
347
 
348
348
  Example:
349
- ```python
350
- if directory.exists_sync():
351
- # Process the directory
352
- ```
349
+ ```python
350
+ if directory.exists_sync():
351
+ # Process the directory
352
+ ```
353
353
  """
354
354
  fs = storage.get_underlying_filesystem(path=self.path)
355
355
  return fs.exists(self.path)
@@ -365,11 +365,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
365
365
  A File instance if the file exists, None otherwise
366
366
 
367
367
  Example:
368
- ```python
369
- file = await directory.get_file("data.csv")
370
- if file:
371
- # Process the file
372
- ```
368
+ ```python
369
+ file = await directory.get_file("data.csv")
370
+ if file:
371
+ # Process the file
372
+ ```
373
373
  """
374
374
  fs = storage.get_underlying_filesystem(path=self.path)
375
375
  file_path = fs.sep.join([self.path, file_name])
@@ -390,11 +390,11 @@ class Dir(BaseModel, Generic[T], SerializableType):
390
390
  A File instance if the file exists, None otherwise
391
391
 
392
392
  Example:
393
- ```python
394
- file = directory.get_file_sync("data.csv")
395
- if file:
396
- # Process the file
397
- ```
393
+ ```python
394
+ file = directory.get_file_sync("data.csv")
395
+ if file:
396
+ # Process the file
397
+ ```
398
398
  """
399
399
  file_path = os.path.join(self.path, file_name)
400
400
  file = File[T](path=file_path)
flyte/models.py CHANGED
@@ -3,13 +3,14 @@ from __future__ import annotations
3
3
  import inspect
4
4
  import os
5
5
  import pathlib
6
+ import typing
6
7
  from dataclasses import dataclass, field, replace
7
8
  from typing import TYPE_CHECKING, Any, Callable, ClassVar, Dict, List, Literal, Optional, Tuple, Type
8
9
 
9
10
  import rich.repr
10
11
 
11
12
  from flyte._docstring import Docstring
12
- from flyte._interface import extract_return_annotation
13
+ from flyte._interface import extract_return_annotation, literal_to_enum
13
14
  from flyte._logging import logger
14
15
 
15
16
  if TYPE_CHECKING:
@@ -329,7 +330,10 @@ class NativeInterface:
329
330
  logger.warning(
330
331
  f"Function {func.__name__} has parameter {name} without type annotation. Data will be pickled."
331
332
  )
332
- param_info[name] = (param.annotation, param.default)
333
+ if typing.get_origin(param.annotation) is Literal:
334
+ param_info[name] = (literal_to_enum(param.annotation), param.default)
335
+ else:
336
+ param_info[name] = (param.annotation, param.default)
333
337
 
334
338
  # Get return type
335
339
  outputs = extract_return_annotation(sig.return_annotation)
@@ -1,4 +1,4 @@
1
- import click
1
+ from rich import print as rich_print
2
2
 
3
3
  from flyte._logging import logger
4
4
  from flyte.remote._client.auth import _token_client as token_client
@@ -94,10 +94,9 @@ class DeviceCodeAuthenticator(Authenticator):
94
94
 
95
95
  full_uri = f"{resp.verification_uri}?user_code={resp.user_code}"
96
96
  text = (
97
- f"To Authenticate, navigate in a browser to the following URL: "
98
- f"{click.style(full_uri, fg='blue', underline=True)}"
97
+ f"To Authenticate, navigate in a browser to the following URL: [blue link={full_uri}]{full_uri}[/blue link]"
99
98
  )
100
- click.secho(text)
99
+ rich_print(text)
101
100
  try:
102
101
  token, refresh_token, expires_in = await token_client.poll_token_endpoint(
103
102
  resp,
flyte/remote/_data.py CHANGED
@@ -16,7 +16,6 @@ from flyteidl.service import dataproxy_pb2
16
16
  from google.protobuf import duration_pb2
17
17
 
18
18
  from flyte._initialize import CommonInit, ensure_client, get_client, get_common_config
19
- from flyte._logging import make_hyperlink
20
19
  from flyte.errors import InitializationError, RuntimeSystemError
21
20
  from flyte.syncify import syncify
22
21
 
@@ -91,7 +90,7 @@ async def _upload_single_file(
91
90
  raise RuntimeSystemError(e.code().value, f"Failed to get signed url for {fp}: {e.details()}")
92
91
  except Exception as e:
93
92
  raise RuntimeSystemError(type(e).__name__, f"Failed to get signed url for {fp}.") from e
94
- logger.debug(f"Uploading to {make_hyperlink('signed url', resp.signed_url)} for {fp}")
93
+ logger.debug(f"Uploading to [link={resp.signed_url}]signed url[/link] for [link=file://{fp}]{fp}[/link]")
95
94
  extra_headers = get_extra_headers_for_protocol(resp.native_url)
96
95
  extra_headers.update(resp.headers)
97
96
  encoded_md5 = b64encode(md5_bytes)
@@ -101,7 +100,7 @@ async def _upload_single_file(
101
100
  extra_headers.update({"Content-Length": str(content_length), "Content-MD5": encoded_md5.decode("utf-8")})
102
101
  async with httpx.AsyncClient(verify=verify) as aclient:
103
102
  put_resp = await aclient.put(resp.signed_url, headers=extra_headers, content=file)
104
- if put_resp.status_code != 200:
103
+ if put_resp.status_code not in [200, 201, 204]:
105
104
  raise RuntimeSystemError(
106
105
  "UploadFailed",
107
106
  f"Failed to upload {fp} to {resp.signed_url}, status code: {put_resp.status_code}, "
flyte/remote/_run.py CHANGED
@@ -157,10 +157,26 @@ class Run(ToJSONMixin):
157
157
  """
158
158
  Get the details of the run. This is a placeholder for getting the run details.
159
159
  """
160
- if self._details is None:
160
+ if self._details is None or not self._details.done():
161
161
  self._details = await RunDetails.get_details.aio(self.pb2.action.id.run)
162
162
  return self._details
163
163
 
164
+ @syncify
165
+ async def inputs(self) -> ActionInputs:
166
+ """
167
+ Get the inputs of the run. This is a placeholder for getting the run inputs.
168
+ """
169
+ details = await self.details.aio()
170
+ return await details.inputs()
171
+
172
+ @syncify
173
+ async def outputs(self) -> ActionOutputs:
174
+ """
175
+ Get the outputs of the run. This is a placeholder for getting the run outputs.
176
+ """
177
+ details = await self.details.aio()
178
+ return await details.outputs()
179
+
164
180
  @property
165
181
  def url(self) -> str:
166
182
  """
flyte/storage/_config.py CHANGED
@@ -61,6 +61,7 @@ class S3(Storage):
61
61
  endpoint: typing.Optional[str] = None
62
62
  access_key_id: typing.Optional[str] = None
63
63
  secret_access_key: typing.Optional[str] = None
64
+ region: typing.Optional[str] = None
64
65
 
65
66
  _KEY_ENV_VAR_MAPPING: ClassVar[typing.Dict[str, str]] = {
66
67
  "endpoint": "FLYTE_AWS_ENDPOINT",
@@ -76,7 +77,7 @@ class S3(Storage):
76
77
  _KEY_SKIP_SIGNATURE: ClassVar = "skip_signature"
77
78
 
78
79
  @classmethod
79
- def auto(cls) -> S3:
80
+ def auto(cls, region: str | None = None) -> S3:
80
81
  """
81
82
  :return: Config
82
83
  """
@@ -88,6 +89,7 @@ class S3(Storage):
88
89
  kwargs = set_if_exists(kwargs, "endpoint", endpoint)
89
90
  kwargs = set_if_exists(kwargs, "access_key_id", access_key_id)
90
91
  kwargs = set_if_exists(kwargs, "secret_access_key", secret_access_key)
92
+ kwargs = set_if_exists(kwargs, "region", region)
91
93
 
92
94
  return S3(**kwargs)
93
95
 
@@ -141,6 +143,8 @@ class S3(Storage):
141
143
  kwargs["config"] = config
142
144
  kwargs["client_options"] = client_options or None
143
145
  kwargs["retry_config"] = retry_config or None
146
+ if self.region:
147
+ kwargs["region"] = self.region
144
148
 
145
149
  return kwargs
146
150
 
@@ -786,6 +786,13 @@ class EnumTransformer(TypeTransformer[enum.Enum]):
786
786
  return LiteralType(enum_type=types_pb2.EnumType(values=values))
787
787
 
788
788
  async def to_literal(self, python_val: enum.Enum, python_type: Type[T], expected: LiteralType) -> Literal:
789
+ if isinstance(python_val, str):
790
+ # this is the case when python Literals are used as enums
791
+ if python_val not in expected.enum_type.values:
792
+ raise TypeTransformerFailedError(
793
+ f"Value {python_val} is not valid value, expected - {expected.enum_type.values}"
794
+ )
795
+ return Literal(scalar=Scalar(primitive=Primitive(string_value=python_val))) # type: ignore
789
796
  if type(python_val).__class__ != enum.EnumMeta:
790
797
  raise TypeTransformerFailedError("Expected an enum")
791
798
  if type(python_val.value) is not str:
@@ -21,8 +21,8 @@ import click
21
21
 
22
22
  ACTION_NAME = "ACTION_NAME"
23
23
  RUN_NAME = "RUN_NAME"
24
- PROJECT_NAME = "FLYTE_INTERNAL_TASK_PROJECT"
25
- DOMAIN_NAME = "FLYTE_INTERNAL_TASK_DOMAIN"
24
+ PROJECT_NAME = "FLYTE_INTERNAL_EXECUTION_PROJECT"
25
+ DOMAIN_NAME = "FLYTE_INTERNAL_EXECUTION_DOMAIN"
26
26
  ORG_NAME = "_U_ORG_NAME"
27
27
  ENDPOINT_OVERRIDE = "_U_EP_OVERRIDE"
28
28
  RUN_OUTPUT_BASE_DIR = "_U_RUN_BASE"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flyte
3
- Version: 2.0.0b19
3
+ Version: 2.0.0b21
4
4
  Summary: Add your description here
5
5
  Author-email: Ketan Umare <kumare3@users.noreply.github.com>
6
6
  Requires-Python: >=3.10
@@ -24,6 +24,7 @@ Requires-Dist: toml>=0.10.2
24
24
  Requires-Dist: async-lru>=2.0.5
25
25
  Requires-Dist: mashumaro
26
26
  Requires-Dist: dataclasses_json
27
+ Requires-Dist: aiolimiter>=1.2.1
27
28
  Dynamic: license-file
28
29
 
29
30
  # Flyte 2 SDK 🚀
@@ -9,9 +9,9 @@ flyte/_excepthook.py,sha256=nXts84rzEg6-7RtFarbKzOsRZTQR4plnbWVIFMAEprs,1310
9
9
  flyte/_group.py,sha256=7o1j16sZyUmYB50mOiq1ui4TBAKhRpDqLakV8Ya1kw4,803
10
10
  flyte/_hash.py,sha256=KMKjoI7SaxXildb-xv6n5Vb32B0csvBiYc06iUe-BrI,137
11
11
  flyte/_image.py,sha256=CSbH7XSSRSNtzri5hLOR-tKIaFW2m8VMEoC1TZmdg6M,38602
12
- flyte/_initialize.py,sha256=trR10NvbDn7hRr0Tkk702D18CtZA7BA3PSIDgHr92eY,17733
13
- flyte/_interface.py,sha256=1B9zIwFDjiVp_3l_mk8EpA4g3Re-6DUBEBi9z9vDvPs,3504
14
- flyte/_logging.py,sha256=eFplcnmHdhkJ8wNByFk_04fwqYYmS-GvyCEhqosyxdg,6088
12
+ flyte/_initialize.py,sha256=XzbAtqPM83ml4jH14kvClUCeKshchFQUvFZghGZVGQM,17923
13
+ flyte/_interface.py,sha256=LBprgsS_DIx5fdnWUyeKQnl2XlAyc1SYlRNlZySwRIA,4766
14
+ flyte/_logging.py,sha256=7e_rQC4gtBcKvJStNX8Af-ZJG0U0r-2Om_8JMvkvb5k,6283
15
15
  flyte/_map.py,sha256=8u4jZsM26V-M-dhVbSnyqSrkzJnGgisN3kwwSNQZaa4,10697
16
16
  flyte/_pod.py,sha256=MB5eP2WvTc5lD5ovdVlxoOpx-wJeutv0S64s75astLc,1105
17
17
  flyte/_resources.py,sha256=L2JuvQDlMo1JLJeUmJPRwtWbunhR2xJEhFgQW5yc72c,9690
@@ -25,22 +25,22 @@ flyte/_task_plugins.py,sha256=9MH3nFPOH_e8_92BT4sFk4oyAnj6GJFvaPYWaraX7yE,1037
25
25
  flyte/_timeout.py,sha256=zx5sFcbYmjJAJbZWSGzzX-BpC9HC7Jfs35T7vVhKwkk,1571
26
26
  flyte/_tools.py,sha256=lB3OiJSAhxzSMCYjLUF6nZjlFsmNpaRXtr3_Fefcxbg,747
27
27
  flyte/_trace.py,sha256=-BIprs2MbupWl3vsC_Pn33SV3fSVku1rUIsnwfmrIy0,5204
28
- flyte/_version.py,sha256=nQUNxDZJt__tA11kox5MN0Qw8wDm85cQSW36nTZmT7s,722
29
- flyte/errors.py,sha256=utl0biQhyYbNdkddVsJAGbGZgUPka_DYnUaHTlQL-Jc,6451
28
+ flyte/_version.py,sha256=yhZDd6WrjR7VGM3U8AX0LKHWlEqOxtftv0MsV5z9dR0,722
29
+ flyte/errors.py,sha256=k1-pgz7xm4syViJmPwp7ZDusmqcrlM2uZKrl0com_9I,6707
30
30
  flyte/extend.py,sha256=GB4ZedGzKa30vYWRVPOdxEeK62xnUVFY4z2tD6H9eEw,376
31
- flyte/models.py,sha256=dtaQyU4PhtEr5L39xwiPDVKSYuYKaArRfRNliIfPUf8,16207
31
+ flyte/models.py,sha256=l7h-o6pLHGqFcbymAOagHdR4BGKBLJUs6Pmd4J1xbQU,16409
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/debug.py,sha256=hnX2tlv9QbqckoT5CJ3c3apJj3tGDpsrdV7ZAsE7j34,911
35
- flyte/_bin/runtime.py,sha256=CoMgKQ_pBifnHsNF1MlBGmMrenrKXuMIHTLRF7MKDfA,6193
35
+ flyte/_bin/runtime.py,sha256=SWSHMHGPQdKSjbc9yJkBbLOXUIpPq8iBk0eFsKDdCeM,6203
36
36
  flyte/_cache/__init__.py,sha256=zhdO5UuHQRdzn8GHmSN40nrxfAmI4ihDRuHZM11U84Y,305
37
37
  flyte/_cache/cache.py,sha256=-oS5q6QpkxPqZ8gWkn8uVNgzx3JFuXaWLV-h0KVKW9c,5010
38
38
  flyte/_cache/defaults.py,sha256=gzJZW0QJPUfd2OPnGpv3tzIfwPtgFjAKoie3NP1P97U,217
39
39
  flyte/_cache/policy_function_body.py,sha256=_AcyN6XKRXq16yV5lWuRJYCIVUlmyPvvWuYRxfU-Ldo,1507
40
40
  flyte/_code_bundle/__init__.py,sha256=G7DJTQ0UN_ETvdh55pYcWsTrZJKXEcyQl9iQQNQOBXQ,328
41
- flyte/_code_bundle/_ignore.py,sha256=Tfaoa62CQVTH17kBHD6Xv6xEh1FhcAyvXivl9m-MEE0,3853
42
- flyte/_code_bundle/_packaging.py,sha256=5QUuea6kg9s-ebBg7gFAHaxOMchxR5MhTQ8KohWsjPk,6909
43
- flyte/_code_bundle/_utils.py,sha256=_wUShhA7w46K8fYUbY3S2CkGgcSSHB4wVPNTza0zHFs,12190
41
+ flyte/_code_bundle/_ignore.py,sha256=INTPvv8ironCBIl_sJ_VaXnMd7gJcx0hL-OvrZNXdRo,4127
42
+ flyte/_code_bundle/_packaging.py,sha256=H-_boKm4Wlri2D1zR-VzjvDxM-_R-_hKUBWVPUWYFKU,7094
43
+ flyte/_code_bundle/_utils.py,sha256=UXyYiW5fPGgSDi1KnVX1Ow_03oKnROhLS21GiYRjlpE,12203
44
44
  flyte/_code_bundle/bundle.py,sha256=L5RgACketbali3v9s5r97nsoueKWtaWyHbv2p2MeMIE,8821
45
45
  flyte/_debug/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  flyte/_debug/constants.py,sha256=oAiXr59RJfg1rjlY4_Iw1SDH1V61kvqBLBua3aQ8oW4,1641
@@ -50,17 +50,17 @@ flyte/_internal/__init__.py,sha256=vjXgGzAAjy609YFkAy9_RVPuUlslsHSJBXCLNTVnqOY,1
50
50
  flyte/_internal/controllers/__init__.py,sha256=yNALzu-3YVii_D_GlrBoWUpL4PTLYUa7oIKnA7hbee0,4296
51
51
  flyte/_internal/controllers/_local_controller.py,sha256=lXFvmxd_ctinJ5z4Fd_bZW0_LcOn0vc12F1try6uYgg,7308
52
52
  flyte/_internal/controllers/_trace.py,sha256=ywFg_M2nGrCKYLbh4iVdsVlRtPT1K2S-XZMvDJU8AKU,1499
53
- flyte/_internal/controllers/remote/__init__.py,sha256=9_azH1eHLqY6VULpDugXi7Kf1kK1ODqEnsQ_3wM6IqU,1919
53
+ flyte/_internal/controllers/remote/__init__.py,sha256=EkDZ4gpp715M5CMnwpFh9s04jkWowndF9RqhXJ34yRA,1869
54
54
  flyte/_internal/controllers/remote/_action.py,sha256=zYilKk3yq2jOxUm258xd4TRl1o3T2la4PXFc0xjcytI,7301
55
55
  flyte/_internal/controllers/remote/_client.py,sha256=HPbzbfaWZVv5wpOvKNtFXR6COiZDwd1cUJQqi60A7oU,1421
56
- flyte/_internal/controllers/remote/_controller.py,sha256=IZ74-PdpsDplRAMutvlwFVzrSjQdJJ-naUb2d2SLXKM,25175
57
- flyte/_internal/controllers/remote/_core.py,sha256=A7GX-V8LqFoF0Llfvxy3xmrRsiIHSJv2z2gdFWTHs48,19053
58
- flyte/_internal/controllers/remote/_informer.py,sha256=w4p29_dzS_ns762eNBljvnbJLgCm36d1Ogo2ZkgV1yg,14418
56
+ flyte/_internal/controllers/remote/_controller.py,sha256=Mp65OvENDfJ0CpwoAhb1ndCdrJ2hMIccwI0_t8xD7uU,25209
57
+ flyte/_internal/controllers/remote/_core.py,sha256=5qIGFNTilJwtYLQ_KQoawLQ172ih-uH6MfrQKVXqd8k,20828
58
+ flyte/_internal/controllers/remote/_informer.py,sha256=M2uqfe0oz9ySkYK94UFLoTPRt9UoaYQKzmy4lrVOchY,14912
59
59
  flyte/_internal/controllers/remote/_service_protocol.py,sha256=B9qbIg6DiGeac-iSccLmX_AL2xUgX4ezNUOiAbSy4V0,1357
60
60
  flyte/_internal/imagebuild/__init__.py,sha256=dwXdJ1jMhw9RF8itF7jkPLanvX1yCviSns7hE5eoIts,102
61
- flyte/_internal/imagebuild/docker_builder.py,sha256=qzKqicgGpWB6wC2DYTc4yh5LJT_hbQ7nacIqnx4bkOQ,21595
61
+ flyte/_internal/imagebuild/docker_builder.py,sha256=3PqIh8NGiNo8f9ekUxyZYF4i9I40BD06VoEGaV-ymoo,23840
62
62
  flyte/_internal/imagebuild/image_builder.py,sha256=dXBXl62qcPabus6dR3eP8P9mBGNhpZHZ2Xm12AymKkk,11150
63
- flyte/_internal/imagebuild/remote_builder.py,sha256=nJP-8NaOYubzcfPH8T_iOM38bdyGk1pYd1GzZkZOmaM,13901
63
+ flyte/_internal/imagebuild/remote_builder.py,sha256=QOs0miveAnDEDxXCNRnkblw7DB-BJwQUOeL0Y_9ao2A,13120
64
64
  flyte/_internal/imagebuild/utils.py,sha256=2MMCNyyMoPLO8sJ5J9TnrZwd1xWTty5AW2VVp8ZUd_M,1250
65
65
  flyte/_internal/resolvers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
66
  flyte/_internal/resolvers/_task_module.py,sha256=jwy1QYygUK7xmpCZLt1SPTfJCkfox3Ck3mTlTsm66UI,1973
@@ -76,6 +76,8 @@ flyte/_internal/runtime/rusty.py,sha256=e2uSg9-Hooa65-BIuqXhIrEq86RHteFFs3W7dDuM
76
76
  flyte/_internal/runtime/task_serde.py,sha256=lE1x_hEEvPkRN_ogVqWL76dGruG2pZt1q0LyCE2d-f4,14093
77
77
  flyte/_internal/runtime/taskrunner.py,sha256=T1dviDXYds18eSwT_J6AMvD4oY91t1r_31EAFA5grO0,7683
78
78
  flyte/_internal/runtime/types_serde.py,sha256=EjRh9Yypx9-20XXQprtNgp766LeQVRoYWtY6XPGMZQg,1813
79
+ flyte/_keyring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
+ flyte/_keyring/file.py,sha256=6XxDnk_hejWRnH8WLd7RVFqoiRY23Td8Cm2nh1VCloo,2950
79
81
  flyte/_protos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
82
  flyte/_protos/common/authorization_pb2.py,sha256=6G7CAfq_Vq1qrm8JFkAnMAj0AaEipiX7MkjA7nk91-M,6707
81
83
  flyte/_protos/common/authorization_pb2.pyi,sha256=tdqc3wZo3Yc6lKfjVgJlUFUFzGv4GAaCknIv43RGd-8,4759
@@ -154,7 +156,7 @@ flyte/_protos/workflow/task_service_pb2_grpc.py,sha256=whmfmOTiNhz6_CBsXm8aXUCwt
154
156
  flyte/_utils/__init__.py,sha256=Lwn9_fLxNF4YR0oCUIKCwM_aXYT5UFjUFInofTHnQTs,831
155
157
  flyte/_utils/asyn.py,sha256=KeJKarXNIyD16g6oPM0T9cH7JDmh1KY7JLbwo7i0IlQ,3673
156
158
  flyte/_utils/async_cache.py,sha256=JtZJmWO62OowJ0QFNl6wryWqh-kuDi76aAASMie87QY,4596
157
- flyte/_utils/coro_management.py,sha256=wIsul4XY-tQbH9bjqZ3A0jKluE19xSzLlkMeYu_dk_A,934
159
+ flyte/_utils/coro_management.py,sha256=2XPC1UznYDwJB9_BXMSUjsJmbksiW1JKIU3fNmBWMCI,1030
158
160
  flyte/_utils/file_handling.py,sha256=iU4TxW--fCho_Eg5xTMODn96P03SxzF-V-5f-7bZAZY,2233
159
161
  flyte/_utils/helpers.py,sha256=9N70yzfLF4lLGEEdOv5OcweEpYtrCvZqqhtzkjZUXNY,4779
160
162
  flyte/_utils/lazy_module.py,sha256=fvXPjvZLzCfcI8Vzs4pKedUDdY0U_RQ1ZVrp9b8qBQY,1994
@@ -175,29 +177,29 @@ flyte/cli/_params.py,sha256=oCSnBh6fDSS1HLFZvNRstfXlaJHTWaOVwMQ_R6icehs,20009
175
177
  flyte/cli/_run.py,sha256=bd024EikZwqHBSLCr1K45bkwwXMD8vxnl_0EIQAh4T0,16376
176
178
  flyte/cli/main.py,sha256=t5Ivjipd6bVHIGjRBGwkeP577j59ASq9c1wgoNf3h2c,5334
177
179
  flyte/config/__init__.py,sha256=MiwEYK5Iv7MRR22z61nzbsbvZ9Q6MdmAU_g9If1Pmb8,144
178
- flyte/config/_config.py,sha256=-J3a9Iq_XN5GUREEGZcksElHaD0woY_kKNfCrmyKn5w,10807
180
+ flyte/config/_config.py,sha256=gsGtIZa9CUILfBmWm2CaEMRLHcSOeNUgwPHeIV807bs,10942
179
181
  flyte/config/_internal.py,sha256=LMcAtDjvTjf5bGlsJVxPuLxQQ82mLd00xK5-JlYGCi8,2989
180
- flyte/config/_reader.py,sha256=aG27pQAtoEl-r7uZmvZIWz_-lQbh3U4-3-7_Rl7CCZA,7282
182
+ flyte/config/_reader.py,sha256=dMS27dI8CUjwIEzpTR4aQpNzA_GP0vpaquLIlv-UW3E,7702
181
183
  flyte/connectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
184
  flyte/extras/__init__.py,sha256=FhB0uK7H1Yo5De9vOuF7UGnezTKncj3u2Wo5uQdWN0g,74
183
185
  flyte/extras/_container.py,sha256=xfbxaGrx2JyQyrvQx1UWTzho2ion8_xujPW5V4uDEIs,11818
184
186
  flyte/git/__init__.py,sha256=OYDrwq1mZ70xC4QC205s1seFvdk9fjDPSv8DrbopdC8,70
185
- flyte/git/_config.py,sha256=sxiaqwEVwlI6fCznlOmj2QxX9v2pQm-avW2lPj95mU8,632
187
+ flyte/git/_config.py,sha256=nOczu_9GwaDLji_TbrwjtKoG_buiJEPXMGzSDjeLhr0,739
186
188
  flyte/io/__init__.py,sha256=qF8jq_IKuocuGU0LAvoy_uxjMs4G-vXjDA9Prba0JGU,538
187
- flyte/io/_dir.py,sha256=BED3aupTJUkan3dBXoqZ0r5u-F1Nm_8LUtlCxEg4gUM,16736
189
+ flyte/io/_dir.py,sha256=I2u2PeyIFHpfTmRVyogei1y8HnXOZIPpdaoXN0dRRSM,16456
188
190
  flyte/io/_file.py,sha256=tMLp4rd5l_RZzM5zWSn82aSK_xcvi6fJ1Aogkvgc6tE,18641
189
191
  flyte/io/_hashing_io.py,sha256=QvhQ4K5jiHgzzPqZY4gFz5Fm-BAzq6bzyCpzXhfnWlk,10014
190
192
  flyte/io/_dataframe/__init__.py,sha256=SDgNw45uf7m3cHhbUCOA3V3-5A2zSKgPcsWriRLwd74,4283
191
193
  flyte/io/_dataframe/basic_dfs.py,sha256=tUJKiBbIJ30r9hjwMo-y3bxjdLmyf3WVe9n9tYskKWk,8043
192
- flyte/io/_dataframe/dataframe.py,sha256=YLXqUt-1rzE4nklmSWbe-O2-6jmR-sfzdKVVhq80tK8,49283
194
+ flyte/io/_dataframe/dataframe.py,sha256=HOW6W12uAlN_1YH9fOgk-HaAse3ACgVyb18vsa83Uzo,49371
193
195
  flyte/remote/__init__.py,sha256=y9eke9JzEJkygk8eKZjSj44fJGlyepuW4i-j6lbCAPY,617
194
196
  flyte/remote/_action.py,sha256=o19TUh7qo5JrCU1NhqXWAPKCWco6yjrvKVP5gt6fskU,24254
195
197
  flyte/remote/_common.py,sha256=2XLLxWL1NjwfdPQUhOfYn3zMrg-yGNfi6NYIaqHutUA,862
196
198
  flyte/remote/_console.py,sha256=avmELJPx8nQMAVPrHlh6jEIRPjrMwFpdZjJsWOOa9rE,660
197
- flyte/remote/_data.py,sha256=zYXXlqEvPdsC44Gm7rP_hQjRgVe3EFfhZNEWKF0p4MQ,6163
199
+ flyte/remote/_data.py,sha256=WeRkhUrJlx7rU3CpvbPvikosv7r02UMveWrf70cFilQ,6156
198
200
  flyte/remote/_logs.py,sha256=t4H7DEZDYJC9Vx7oJ7R7m4Z56bWBAjm9ylU4UP1hKq0,6711
199
201
  flyte/remote/_project.py,sha256=IbkxKRAvZunKLIwpmcreA4O-0GxWC0KPC62WSYvsK34,2868
200
- flyte/remote/_run.py,sha256=FtIIMNODQGyc6oYLmuI_ku3bUxhDFIE-UU7ecMNZvBg,10018
202
+ flyte/remote/_run.py,sha256=HQuIWPyZguFoSgl_fbH9HYiFhd1xIaX1iUlSzF2m3-s,10547
201
203
  flyte/remote/_secret.py,sha256=CF9WiZKeMJaUNeIawVPf8XHk9OjFt2wc0m7S9ZOdGbE,4399
202
204
  flyte/remote/_task.py,sha256=EuTNXfnqksQf-UxLMIo20sds53mbyl0qpgjujnw3y-A,18654
203
205
  flyte/remote/_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -214,7 +216,7 @@ flyte/remote/_client/auth/errors.py,sha256=ZYS9k4GX_McacKhxHKt5V2A4CWjLUq4RkBx_g
214
216
  flyte/remote/_client/auth/_authenticators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
215
217
  flyte/remote/_client/auth/_authenticators/base.py,sha256=LIIYt46j6_ShJRiwjNwNX-LxLiUoG1qbiN0ypyzGedY,17020
216
218
  flyte/remote/_client/auth/_authenticators/client_credentials.py,sha256=e9DOFdKEvaM3uSR10lnNuJaOwAcCkZQWZPKv7xUoFsI,3483
217
- flyte/remote/_client/auth/_authenticators/device_code.py,sha256=E_TfI49Tcy1G0rn7BQV-Q1o4Ebu2ubx7h8pjeCYLieo,4805
219
+ flyte/remote/_client/auth/_authenticators/device_code.py,sha256=YKj0HLT2Gegoc8_mKEOgVRUw_Bp9EtDeTUAvmc3IoMY,4806
218
220
  flyte/remote/_client/auth/_authenticators/external_command.py,sha256=IfTJQACPd1xc6htZYC-HdMIx6Q9JHBPw1HUG1Pv6lXg,3838
219
221
  flyte/remote/_client/auth/_authenticators/factory.py,sha256=_oBWs7xIG6l13q06V2PUGIDmzU9-XYUK5hx5S6gZjrU,10291
220
222
  flyte/remote/_client/auth/_authenticators/pkce.py,sha256=PXbYCmgYGn_LP2EED1O41uzeV4I7L03M1-u3CMRag_M,23097
@@ -225,7 +227,7 @@ flyte/report/__init__.py,sha256=yLbeUxYaVaDlgBod3Oh34zGBSotl1UlXq1vUkb9q7cs,152
225
227
  flyte/report/_report.py,sha256=b-VMFke-5SitqGfNEXKTm0PuEPzonWpvlAl5V3wSh4o,5328
226
228
  flyte/report/_template.html,sha256=YehmLJG3QMYQ10UT1YZBu2ncVmAJ4iyqVp5hF3sXRAs,3458
227
229
  flyte/storage/__init__.py,sha256=0tcI9qtIVf0Fxczkno03vpwBDVlKMDSNN38uxMTH1bE,569
228
- flyte/storage/_config.py,sha256=xVibWJaioOnkeTb_M30azgiUe1jvmQaOWRZEkpdoTao,8680
230
+ flyte/storage/_config.py,sha256=Pl4i5KSkUJA_4HqDdvQlPn1OxFmVWIxl1bw0tp0mDGM,8871
229
231
  flyte/storage/_remote_fs.py,sha256=kM_iszbccjVD5VtVdgfkl1FHS8NPnY__JOo_CPQUE4c,1124
230
232
  flyte/storage/_storage.py,sha256=i9oAn9Co1S5U0noLeDxG9ROQd5KS-b7G1k1fMoVuYbE,14046
231
233
  flyte/storage/_utils.py,sha256=8oLCM-7D7JyJhzUi1_Q1NFx8GBUPRfou0T_5tPBmPbE,309
@@ -236,13 +238,13 @@ flyte/types/_interface.py,sha256=5y9EC5r897xz03Hh0ltF8QVGKMfMfAznws-hKSEO4Go,167
236
238
  flyte/types/_pickle.py,sha256=PjdR66OTDMZ3OYq6GvM_Ua0cIo5t2XQaIjmpJ9xo4Ys,4050
237
239
  flyte/types/_renderer.py,sha256=ygcCo5l60lHufyQISFddZfWwLlQ8kJAKxUT_XnR_6dY,4818
238
240
  flyte/types/_string_literals.py,sha256=NlG1xV8RSA-sZ-n-IFQCAsdB6jXJOAKkHWtnopxVVDk,4231
239
- flyte/types/_type_engine.py,sha256=IwBdBXr3sso2Y-ZMiIBmXmczfI7GyJMpThXDuQiOqco,94951
241
+ flyte/types/_type_engine.py,sha256=CKWWGwSOP3vFZUlMnv-Rgzu-EJ-DkX--Yhn_g3M9cjw,95394
240
242
  flyte/types/_utils.py,sha256=pbts9E1_2LTdLygAY0UYTLYJ8AsN3BZyviSXvrtcutc,2626
241
- flyte-2.0.0b19.data/scripts/debug.py,sha256=hnX2tlv9QbqckoT5CJ3c3apJj3tGDpsrdV7ZAsE7j34,911
242
- flyte-2.0.0b19.data/scripts/runtime.py,sha256=CoMgKQ_pBifnHsNF1MlBGmMrenrKXuMIHTLRF7MKDfA,6193
243
- flyte-2.0.0b19.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
244
- flyte-2.0.0b19.dist-info/METADATA,sha256=EYDtynzbTo44xv8-onc7OLPeT1giPi5XcW_k_b2SrII,10012
245
- flyte-2.0.0b19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
246
- flyte-2.0.0b19.dist-info/entry_points.txt,sha256=MIq2z5dBurdCJfpXfMKzgBv7sJOakKRYxr8G0cMiTrg,75
247
- flyte-2.0.0b19.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
248
- flyte-2.0.0b19.dist-info/RECORD,,
243
+ flyte-2.0.0b21.data/scripts/debug.py,sha256=hnX2tlv9QbqckoT5CJ3c3apJj3tGDpsrdV7ZAsE7j34,911
244
+ flyte-2.0.0b21.data/scripts/runtime.py,sha256=SWSHMHGPQdKSjbc9yJkBbLOXUIpPq8iBk0eFsKDdCeM,6203
245
+ flyte-2.0.0b21.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
246
+ flyte-2.0.0b21.dist-info/METADATA,sha256=P0WPet5aQBjjrj1JvlecH69jE20-AunhqhIGWkMld98,10045
247
+ flyte-2.0.0b21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
248
+ flyte-2.0.0b21.dist-info/entry_points.txt,sha256=rb43Gfxw40iPH5B6EUs6Ter0ekLkGXsj7R890_MOTyk,136
249
+ flyte-2.0.0b21.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
250
+ flyte-2.0.0b21.dist-info/RECORD,,
@@ -1,3 +1,6 @@
1
1
  [console_scripts]
2
2
  a0 = flyte._bin.runtime:main
3
3
  flyte = flyte.cli.main:main
4
+
5
+ [keyring.backends]
6
+ flyte_keyring_file = flyte._keyring.file