flyte 0.2.0b4__py3-none-any.whl → 0.2.0b5__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/_build.py +3 -2
- flyte/_deploy.py +4 -4
- flyte/_initialize.py +17 -3
- flyte/_protos/workflow/common_pb2.py +27 -0
- flyte/_protos/workflow/common_pb2.pyi +14 -0
- flyte/_protos/workflow/common_pb2_grpc.py +4 -0
- flyte/_protos/workflow/run_definition_pb2.py +14 -14
- flyte/_protos/workflow/run_definition_pb2.pyi +4 -2
- flyte/_protos/workflow/task_definition_pb2.py +14 -13
- flyte/_protos/workflow/task_definition_pb2.pyi +7 -3
- flyte/_run.py +7 -5
- flyte/_trace.py +1 -6
- flyte/_version.py +2 -2
- flyte/io/_dir.py +2 -2
- flyte/io/_file.py +1 -4
- flyte/remote/_data.py +3 -3
- flyte/remote/_logs.py +40 -24
- flyte/remote/_project.py +8 -9
- flyte/remote/_run.py +81 -44
- flyte/remote/_secret.py +12 -12
- flyte/remote/_task.py +3 -3
- flyte/report/_report.py +4 -4
- flyte/syncify/__init__.py +5 -0
- flyte/syncify/_api.py +277 -0
- {flyte-0.2.0b4.dist-info → flyte-0.2.0b5.dist-info}/METADATA +1 -2
- {flyte-0.2.0b4.dist-info → flyte-0.2.0b5.dist-info}/RECORD +29 -25
- flyte/_api_commons.py +0 -3
- {flyte-0.2.0b4.dist-info → flyte-0.2.0b5.dist-info}/WHEEL +0 -0
- {flyte-0.2.0b4.dist-info → flyte-0.2.0b5.dist-info}/entry_points.txt +0 -0
- {flyte-0.2.0b4.dist-info → flyte-0.2.0b5.dist-info}/top_level.txt +0 -0
flyte/syncify/_api.py
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
import atexit
|
|
5
|
+
import concurrent.futures
|
|
6
|
+
import inspect
|
|
7
|
+
import threading
|
|
8
|
+
from typing import (
|
|
9
|
+
Any,
|
|
10
|
+
AsyncIterator,
|
|
11
|
+
Awaitable,
|
|
12
|
+
Callable,
|
|
13
|
+
Coroutine,
|
|
14
|
+
Iterator,
|
|
15
|
+
ParamSpec,
|
|
16
|
+
Protocol,
|
|
17
|
+
Type,
|
|
18
|
+
TypeVar,
|
|
19
|
+
Union,
|
|
20
|
+
cast,
|
|
21
|
+
overload,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
P = ParamSpec("P")
|
|
25
|
+
R_co = TypeVar("R_co", covariant=True)
|
|
26
|
+
T = TypeVar("T")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SyncFunction(Protocol[P, R_co]):
|
|
30
|
+
"""
|
|
31
|
+
A protocol that defines the interface for synchronous functions or methods that can be converted from asynchronous
|
|
32
|
+
ones.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
def __call__(self, *args: Any, **kwargs: Any) -> R_co: ...
|
|
36
|
+
|
|
37
|
+
def aio(self, *args: Any, **kwargs: Any) -> Awaitable[R_co]: ...
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class SyncGenFunction(Protocol[P, R_co]):
|
|
41
|
+
"""
|
|
42
|
+
A protocol that defines the interface for synchronous functions or methods that can be converted from asynchronous
|
|
43
|
+
ones.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
def __call__(self, *args: Any, **kwargs: Any) -> Iterator[R_co]: ...
|
|
47
|
+
|
|
48
|
+
def aio(self, *args: Any, **kwargs: Any) -> AsyncIterator[R_co]: ...
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class _BackgroundLoop:
|
|
52
|
+
"""
|
|
53
|
+
A background event loop that runs in a separate thread and used the the Syncify decorator to run asynchronous
|
|
54
|
+
functions or methods synchronously.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
def __init__(self):
|
|
58
|
+
self.loop = None
|
|
59
|
+
self.thread = threading.Thread(name="syncify_bg", target=self._run, daemon=True)
|
|
60
|
+
self.thread.start()
|
|
61
|
+
atexit.register(self.stop)
|
|
62
|
+
|
|
63
|
+
def _run(self):
|
|
64
|
+
self.loop = asyncio.new_event_loop()
|
|
65
|
+
asyncio.set_event_loop(self.loop)
|
|
66
|
+
self.loop.run_forever()
|
|
67
|
+
|
|
68
|
+
def stop(self):
|
|
69
|
+
# stop the loop and wait briefly for thread to exit
|
|
70
|
+
self.loop.call_soon_threadsafe(self.loop.stop)
|
|
71
|
+
self.thread.join(timeout=1)
|
|
72
|
+
|
|
73
|
+
def is_in_loop(self) -> bool:
|
|
74
|
+
"""
|
|
75
|
+
Check if the current thread is the background loop thread.
|
|
76
|
+
"""
|
|
77
|
+
# If the current thread is not the background loop thread, return False
|
|
78
|
+
if threading.current_thread() != self.thread:
|
|
79
|
+
return False
|
|
80
|
+
|
|
81
|
+
if not self.thread.is_alive():
|
|
82
|
+
# If the thread is not alive, we cannot be in the loop
|
|
83
|
+
return False
|
|
84
|
+
|
|
85
|
+
# Lets get the current event loop and check if it matches the background loop
|
|
86
|
+
loop = None
|
|
87
|
+
try:
|
|
88
|
+
loop = asyncio.get_running_loop()
|
|
89
|
+
except RuntimeError:
|
|
90
|
+
pass
|
|
91
|
+
|
|
92
|
+
return loop == self.loop
|
|
93
|
+
|
|
94
|
+
def iterate_in_loop_sync(self, async_gen: AsyncIterator[R_co]) -> Iterator[R_co]:
|
|
95
|
+
# Create an iterator that pulls items from the async generator
|
|
96
|
+
assert self.thread.name != threading.current_thread().name, "Cannot run coroutine in the same thread"
|
|
97
|
+
while True:
|
|
98
|
+
try:
|
|
99
|
+
# use __anext__() and cast to Coroutine so mypy is happy
|
|
100
|
+
future: concurrent.futures.Future[R_co] = asyncio.run_coroutine_threadsafe(
|
|
101
|
+
cast(Coroutine[Any, Any, R_co], async_gen.__anext__()),
|
|
102
|
+
self.loop,
|
|
103
|
+
)
|
|
104
|
+
yield future.result()
|
|
105
|
+
except (StopAsyncIteration, StopIteration):
|
|
106
|
+
break
|
|
107
|
+
|
|
108
|
+
def call_in_loop_sync(self, coro: Coroutine[Any, Any, R_co]) -> R_co:
|
|
109
|
+
"""
|
|
110
|
+
Run the given coroutine in the background loop and return its result.
|
|
111
|
+
"""
|
|
112
|
+
future: concurrent.futures.Future[R_co] = asyncio.run_coroutine_threadsafe(coro, self.loop)
|
|
113
|
+
return future.result()
|
|
114
|
+
|
|
115
|
+
async def iterate_in_loop(self, async_gen: AsyncIterator[R_co]) -> AsyncIterator[R_co]:
|
|
116
|
+
"""
|
|
117
|
+
Run the given async iterator in the background loop and yield its results.
|
|
118
|
+
"""
|
|
119
|
+
if self.is_in_loop():
|
|
120
|
+
# If we are already in the background loop, just return the async iterator
|
|
121
|
+
async for r in async_gen:
|
|
122
|
+
yield r
|
|
123
|
+
return
|
|
124
|
+
|
|
125
|
+
while True:
|
|
126
|
+
try:
|
|
127
|
+
# same replacement here for the async path
|
|
128
|
+
future: concurrent.futures.Future[R_co] = asyncio.run_coroutine_threadsafe(
|
|
129
|
+
cast(Coroutine[Any, Any, R_co], async_gen.__anext__()),
|
|
130
|
+
self.loop,
|
|
131
|
+
)
|
|
132
|
+
# Wrap the future in an asyncio Future to yield it in an async context
|
|
133
|
+
aio_future: asyncio.Future[R_co] = asyncio.wrap_future(future)
|
|
134
|
+
# await for the future to complete and yield its result
|
|
135
|
+
yield await aio_future
|
|
136
|
+
except StopAsyncIteration:
|
|
137
|
+
break
|
|
138
|
+
|
|
139
|
+
async def aio(self, coro: Coroutine[Any, Any, R_co]) -> R_co:
|
|
140
|
+
"""
|
|
141
|
+
Run the given coroutine in the background loop and return its result.
|
|
142
|
+
"""
|
|
143
|
+
if self.is_in_loop():
|
|
144
|
+
# If we are already in the background loop, just run the coroutine
|
|
145
|
+
return await coro
|
|
146
|
+
# Otherwise, run it in the background loop and wait for the result
|
|
147
|
+
future: concurrent.futures.Future[R_co] = asyncio.run_coroutine_threadsafe(coro, self.loop)
|
|
148
|
+
# Wrap the future in an asyncio Future to await it in an async context
|
|
149
|
+
aio_future: asyncio.Future[R_co] = asyncio.wrap_future(future)
|
|
150
|
+
# await for the future to complete and return its result
|
|
151
|
+
return await aio_future
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class _SyncWrapper:
|
|
155
|
+
"""
|
|
156
|
+
A wrapper class that the Syncify decorator uses to convert asynchronous functions or methods into synchronous ones.
|
|
157
|
+
"""
|
|
158
|
+
|
|
159
|
+
def __init__(
|
|
160
|
+
self,
|
|
161
|
+
fn: Any,
|
|
162
|
+
bg_loop: _BackgroundLoop,
|
|
163
|
+
instance: Any = None,
|
|
164
|
+
owner: Type | None = None,
|
|
165
|
+
underlying_obj: Any = None,
|
|
166
|
+
):
|
|
167
|
+
self.fn = fn
|
|
168
|
+
self._bg_loop = bg_loop
|
|
169
|
+
self._underlying_obj = underlying_obj
|
|
170
|
+
|
|
171
|
+
def __call__(self, *args: Any, **kwargs: Any) -> Any:
|
|
172
|
+
# bind method if needed
|
|
173
|
+
coro_fn = self.fn
|
|
174
|
+
|
|
175
|
+
if inspect.isasyncgenfunction(coro_fn):
|
|
176
|
+
# Handle async iterator by converting to sync iterator
|
|
177
|
+
async_gen = coro_fn(*args, **kwargs)
|
|
178
|
+
return self._bg_loop.iterate_in_loop_sync(async_gen)
|
|
179
|
+
else:
|
|
180
|
+
return self._bg_loop.call_in_loop_sync(coro_fn(*args, **kwargs))
|
|
181
|
+
|
|
182
|
+
def __get__(self, instance: Any, owner: Any) -> Any:
|
|
183
|
+
"""
|
|
184
|
+
This method is called when the wrapper is accessed as a method of a class instance.
|
|
185
|
+
:param instance:
|
|
186
|
+
:param owner:
|
|
187
|
+
:return:
|
|
188
|
+
"""
|
|
189
|
+
fn: Any = self.fn
|
|
190
|
+
if instance is not None:
|
|
191
|
+
# If we have an instance, we need to bind the method to the instance (for instance methods)
|
|
192
|
+
fn = self.fn.__get__(instance, owner)
|
|
193
|
+
|
|
194
|
+
if instance is None and owner is not None and self._underlying_obj is not None:
|
|
195
|
+
# If we have an owner, we need to bind the method to the owner (for classmethods or staticmethods)
|
|
196
|
+
fn = self._underlying_obj.__get__(None, owner)
|
|
197
|
+
|
|
198
|
+
return _SyncWrapper(fn, bg_loop=self._bg_loop, underlying_obj=self._underlying_obj)
|
|
199
|
+
|
|
200
|
+
def aio(self, *args: Any, **kwargs: Any) -> Any:
|
|
201
|
+
fn = self.fn
|
|
202
|
+
|
|
203
|
+
if inspect.isasyncgenfunction(fn):
|
|
204
|
+
# If the function is an async generator, we need to handle it differently
|
|
205
|
+
async_iter = fn(*args, **kwargs)
|
|
206
|
+
return self._bg_loop.iterate_in_loop(async_iter)
|
|
207
|
+
else:
|
|
208
|
+
# If we are already in the background loop, just return the coroutine
|
|
209
|
+
coro = fn(*args, **kwargs)
|
|
210
|
+
if hasattr(coro, "__aiter__"):
|
|
211
|
+
# If the coroutine is an async iterator, we need to handle it differently
|
|
212
|
+
return self._bg_loop.iterate_in_loop(coro)
|
|
213
|
+
return self._bg_loop.aio(coro)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
class Syncify:
|
|
217
|
+
"""
|
|
218
|
+
A decorator to convert asynchronous functions or methods into synchronous ones.
|
|
219
|
+
|
|
220
|
+
This is useful for integrating async code into synchronous contexts.
|
|
221
|
+
|
|
222
|
+
Example::
|
|
223
|
+
|
|
224
|
+
```python
|
|
225
|
+
syncer = Syncify()
|
|
226
|
+
|
|
227
|
+
@syncer
|
|
228
|
+
async def async_function(x: str) -> str:
|
|
229
|
+
return f"Hello, Async World {x}!"
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
# now you can call it synchronously
|
|
233
|
+
result = async_function("Async World")
|
|
234
|
+
print(result)
|
|
235
|
+
# Output: Hello, Async World Async World!
|
|
236
|
+
|
|
237
|
+
# or call it asynchronously
|
|
238
|
+
async def main():
|
|
239
|
+
result = await async_function.aio("World")
|
|
240
|
+
print(result)
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
"""
|
|
244
|
+
|
|
245
|
+
def __init__(self):
|
|
246
|
+
self._bg_loop = _BackgroundLoop()
|
|
247
|
+
|
|
248
|
+
@overload
|
|
249
|
+
def __call__(self, func: Callable[P, Awaitable[R_co]]) -> Any: ...
|
|
250
|
+
|
|
251
|
+
# def __call__(self, func: Callable[P, Awaitable[R_co]]) -> SyncFunction[P, R_co]: ...
|
|
252
|
+
|
|
253
|
+
@overload
|
|
254
|
+
def __call__(self, func: Callable[P, Iterator[R_co] | AsyncIterator[R_co]]) -> SyncGenFunction[P, R_co]: ...
|
|
255
|
+
|
|
256
|
+
# def __call__(self, func: Callable[[Type[T], *P.args, *P.kwargs], Awaitable[R_co]])
|
|
257
|
+
# -> SyncFunction[[Type[T], *P.args, *P.kwargs], R_co]: ...
|
|
258
|
+
@overload
|
|
259
|
+
def __call__(self, func: classmethod) -> Union[SyncFunction[P, R_co], SyncGenFunction[P, R_co]]: ...
|
|
260
|
+
|
|
261
|
+
@overload
|
|
262
|
+
def __call__(self, func: staticmethod) -> staticmethod: ...
|
|
263
|
+
|
|
264
|
+
def __call__(self, obj):
|
|
265
|
+
if isinstance(obj, classmethod):
|
|
266
|
+
return _SyncWrapper(obj.__func__, bg_loop=self._bg_loop, underlying_obj=obj)
|
|
267
|
+
if isinstance(obj, staticmethod):
|
|
268
|
+
return staticmethod(cast(Any, _SyncWrapper(obj.__func__, bg_loop=self._bg_loop)))
|
|
269
|
+
if inspect.isasyncgenfunction(obj):
|
|
270
|
+
# If the function is an async generator, we need to handle it differently
|
|
271
|
+
return cast(Callable[P, Iterator[R_co]], _SyncWrapper(obj, bg_loop=self._bg_loop))
|
|
272
|
+
if inspect.iscoroutinefunction(obj):
|
|
273
|
+
# If the function is a coroutine, we can wrap it directly
|
|
274
|
+
return _SyncWrapper(obj, bg_loop=self._bg_loop)
|
|
275
|
+
raise TypeError(
|
|
276
|
+
"Syncify can only be applied to async functions, async generators, async classmethods or staticmethods."
|
|
277
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flyte
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.0b5
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Author-email: Ketan Umare <kumare3@users.noreply.github.com>
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -18,7 +18,6 @@ Requires-Dist: pyyaml>=6.0.2
|
|
|
18
18
|
Requires-Dist: rich-click>=1.8.9
|
|
19
19
|
Requires-Dist: httpx>=0.28.1
|
|
20
20
|
Requires-Dist: keyring>=25.6.0
|
|
21
|
-
Requires-Dist: synchronicity>=0.9.11
|
|
22
21
|
Requires-Dist: msgpack>=1.1.0
|
|
23
22
|
Requires-Dist: toml>=0.10.2
|
|
24
23
|
Requires-Dist: async-lru>=2.0.5
|
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
flyte/__init__.py,sha256=5rPeSCWYJSKbqbiCx4cjPW0728c7ow-aogoXLaHGhFg,1340
|
|
2
|
-
flyte/
|
|
3
|
-
flyte/_build.py,sha256=MVBM-i2rCxHhIFQCR-Tc0JMA2XuJ5r4UZBW4M7HRvSw,580
|
|
2
|
+
flyte/_build.py,sha256=MkgfLAPeL56YeVrGRNZUCZgbwzlEzVP3wLbl5Qru4yk,578
|
|
4
3
|
flyte/_context.py,sha256=pYa43ut8gp6i-Y_zOy1WW_N2IbP9Vd-zIORO11vqK1E,4995
|
|
5
|
-
flyte/_deploy.py,sha256=
|
|
4
|
+
flyte/_deploy.py,sha256=hHZKLU3U7t1ZF_8x6LykkPu_KSDyaHL3f2WzyjLj9BQ,7723
|
|
6
5
|
flyte/_doc.py,sha256=_OPCf3t_git6UT7kSJISFaWO9cfNzJhhoe6JjVdyCJo,706
|
|
7
6
|
flyte/_docstring.py,sha256=SsG0Ab_YMAwy2ABJlEo3eBKlyC3kwPdnDJ1FIms-ZBQ,1127
|
|
8
7
|
flyte/_environment.py,sha256=ft0EsyFg6OnoIFPFbwkABLcq676veIH3TTR4SNilrj8,1499
|
|
9
8
|
flyte/_group.py,sha256=64q2GFDp3koIkx3IV4GBeGEbu4v-GPUxTlxU_sV2fPk,743
|
|
10
9
|
flyte/_hash.py,sha256=Of_Zl_DzzzF2jp4ZsLm-3o-xJFCCJ8_GubmLI1htx78,504
|
|
11
10
|
flyte/_image.py,sha256=8xEGmAALY6jQAsLfJQH9NweeVUaSTWivFEQt-JchN24,29068
|
|
12
|
-
flyte/_initialize.py,sha256=
|
|
11
|
+
flyte/_initialize.py,sha256=hdu-7p56KLCq3xFf-ErGuActhoJMA_iqggjU2MOQm2Y,15758
|
|
13
12
|
flyte/_interface.py,sha256=MP5o_qpIwfBNtAc7zo_cLSjMugsPyanuO6EgUSk4fBE,3644
|
|
14
13
|
flyte/_logging.py,sha256=FQvF3W1kkFypbARcOQ7WZVXO0XJasXp8EhozF6E6-aQ,3379
|
|
15
14
|
flyte/_resources.py,sha256=UOLyEVhdxolvrHhddiBbYdJuE1RkM_l7xeS9G1abe6M,7583
|
|
16
15
|
flyte/_retry.py,sha256=rfLv0MvWxzPByKESTglEmjPsytEAKiIvvmzlJxXwsfE,941
|
|
17
16
|
flyte/_reusable_environment.py,sha256=P4FBATVKAYcIKpdFN98sI8acPyKy8eIGx6V0kUb9YdM,1289
|
|
18
|
-
flyte/_run.py,sha256=
|
|
17
|
+
flyte/_run.py,sha256=2ugAk4tpvSAnNAlfhx4YysSrdFoce-hZHQ6XMHYxp0A,17783
|
|
19
18
|
flyte/_secret.py,sha256=SqIHs6mi8hEkIIBZe3bI9jJsPt65Mt6dV5uh9_op1ME,2392
|
|
20
19
|
flyte/_task.py,sha256=cqWfbMDMkEg1Q0sOkaSi1h_9Vn81DbGCOgNFZo8bMfI,14622
|
|
21
20
|
flyte/_task_environment.py,sha256=svSJJMEiiYsqz403s_urMgPdjguHJJSGVuBobT3uwVo,8403
|
|
22
21
|
flyte/_timeout.py,sha256=zx5sFcbYmjJAJbZWSGzzX-BpC9HC7Jfs35T7vVhKwkk,1571
|
|
23
22
|
flyte/_tools.py,sha256=JewkQZBR_M85tS6QY8e4xXue75jbOE48nID4ZHnc9jY,632
|
|
24
|
-
flyte/_trace.py,sha256=
|
|
25
|
-
flyte/_version.py,sha256=
|
|
23
|
+
flyte/_trace.py,sha256=7OQtQNosIlycTwaMjdc3GW4h3T3N0bYTsY6og4clPl8,5234
|
|
24
|
+
flyte/_version.py,sha256=o929JDYrvIu0qnHyRbZTFJje2DxGPT9DaVUyysEN3SA,519
|
|
26
25
|
flyte/errors.py,sha256=m2JUNqLC6anVW6UiDK_ihuA06q_Hkw1mIUMDskb2OW8,4289
|
|
27
26
|
flyte/models.py,sha256=GTRuR6GXc0RAbLmPEnnH54oRF7__2TNFhmYjFoYMjZA,12660
|
|
28
27
|
flyte/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -100,14 +99,17 @@ flyte/_protos/secret/secret_pb2.pyi,sha256=gQ2SbW8J93TB2i4c7FjsrJdj38rlhLmdY1T3k
|
|
|
100
99
|
flyte/_protos/secret/secret_pb2_grpc.py,sha256=3DOSlIwXhKUn_Kvsv3V6Hmnge1NgtZUI2V_wYOl3aak,9085
|
|
101
100
|
flyte/_protos/secret/secret_pb2_grpc_grpc.py,sha256=3DOSlIwXhKUn_Kvsv3V6Hmnge1NgtZUI2V_wYOl3aak,9085
|
|
102
101
|
flyte/_protos/validate/validate/validate_pb2.py,sha256=yJOyUdZVPAVOSvo8uNgynvObiS-fQFYJE97KilJnLZA,13409
|
|
102
|
+
flyte/_protos/workflow/common_pb2.py,sha256=NmukAKm8cxBvxYrZ7VuARExi5M5SB0mcP1AxSkq7n5E,1812
|
|
103
|
+
flyte/_protos/workflow/common_pb2.pyi,sha256=h69_9esVb6NRD5QNC-ahv7IbjxH77UrT9M9wvqbcjSA,652
|
|
104
|
+
flyte/_protos/workflow/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
103
105
|
flyte/_protos/workflow/node_execution_service_pb2.py,sha256=IOLg3tNikY7n00kLOVsC69yyXc5Ttnx-_-xUuc0q05Q,1654
|
|
104
106
|
flyte/_protos/workflow/node_execution_service_pb2.pyi,sha256=C7VVuw_bnxp68qemD3SLoGIL-Hmno6qkIoq3l6W2qb8,135
|
|
105
107
|
flyte/_protos/workflow/node_execution_service_pb2_grpc.py,sha256=2JJDS3Aww3FFDW-qYdTaxC75gRpsgnn4an6LPZmF9uA,947
|
|
106
108
|
flyte/_protos/workflow/queue_service_pb2.py,sha256=FuphK-Fy5kCjk9rLmQpD45-P9YS4B4aG8v7DEoF2XtE,11993
|
|
107
109
|
flyte/_protos/workflow/queue_service_pb2.pyi,sha256=qSCS0NyNRfNSjPuAlmVRprD4Be9d9rJNP6Of8lNsKGM,7819
|
|
108
110
|
flyte/_protos/workflow/queue_service_pb2_grpc.py,sha256=6KK87jYXrmK0jacf4AKhHp21QU9JFJPOiEBjbDRkBm0,7839
|
|
109
|
-
flyte/_protos/workflow/run_definition_pb2.py,sha256=
|
|
110
|
-
flyte/_protos/workflow/run_definition_pb2.pyi,sha256=
|
|
111
|
+
flyte/_protos/workflow/run_definition_pb2.py,sha256=U8n2q4G63sxdbdYXtIV65Kpjx3Q-ZDAagjt_qEsPKiI,16078
|
|
112
|
+
flyte/_protos/workflow/run_definition_pb2.pyi,sha256=ttY8nwp6Jq_8C_VpE08KSF2N9lZhnXYRH5sG1iNSTi8,15259
|
|
111
113
|
flyte/_protos/workflow/run_definition_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
112
114
|
flyte/_protos/workflow/run_logs_service_pb2.py,sha256=MKG9keauunf7EmIrlthQKgXrQAfMjbX9LyeBMlLhK30,3358
|
|
113
115
|
flyte/_protos/workflow/run_logs_service_pb2.pyi,sha256=88_Qp-qQh9PSUUPSsyuawc9gBi9_4OEbnp37cgH1VGE,1534
|
|
@@ -118,8 +120,8 @@ flyte/_protos/workflow/run_service_pb2_grpc.py,sha256=tO1qnrD5_0KrtToCIcuseVhkQN
|
|
|
118
120
|
flyte/_protos/workflow/state_service_pb2.py,sha256=xDEak38Egukk2yR4kr7Y7y-SsL4Y1rCnPN-FiGmmYsM,5785
|
|
119
121
|
flyte/_protos/workflow/state_service_pb2.pyi,sha256=S3oEFSPHem-t7ySb2UGcWjmf-QK7gFG2rNCWAiIwzGk,3545
|
|
120
122
|
flyte/_protos/workflow/state_service_pb2_grpc.py,sha256=E5yH8ZHNWUBFJkvsvqgX7ZmVU45UmbaHZynHGcQUd70,5801
|
|
121
|
-
flyte/_protos/workflow/task_definition_pb2.py,sha256=
|
|
122
|
-
flyte/_protos/workflow/task_definition_pb2.pyi,sha256=
|
|
123
|
+
flyte/_protos/workflow/task_definition_pb2.py,sha256=CmAhYoED4Dms4bxPxC-_9_dXvlyAtqxPTnJ4n-A1Irg,6786
|
|
124
|
+
flyte/_protos/workflow/task_definition_pb2.pyi,sha256=f1H0pTLvqlUTCtXVyPWgJ4HSNtAtJ6BgP2N6XbArRfY,3312
|
|
123
125
|
flyte/_protos/workflow/task_definition_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
|
124
126
|
flyte/_protos/workflow/task_service_pb2.py,sha256=lY1MamKB9kNprHpBm1zQkeg25aTItXARu7Ta7rxzlB8,3787
|
|
125
127
|
flyte/_protos/workflow/task_service_pb2.pyi,sha256=YY9pajzA_eF_xMHgVQMvThNI0QYulgfLn1741IYo8tI,1495
|
|
@@ -150,8 +152,8 @@ flyte/extras/__init__.py,sha256=FhB0uK7H1Yo5De9vOuF7UGnezTKncj3u2Wo5uQdWN0g,74
|
|
|
150
152
|
flyte/extras/_container.py,sha256=JM-JNsj9-Mjf7E4OQcAS2Z5IJBXhB-HtQkGn_mu7gvk,11249
|
|
151
153
|
flyte/io/__init__.py,sha256=e2wHVEoZ84TGOtOPrtTg6hJpeuxiYI56Sg011yq6nUQ,236
|
|
152
154
|
flyte/io/_dataframe.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
|
-
flyte/io/_dir.py,sha256=
|
|
154
|
-
flyte/io/_file.py,sha256=
|
|
155
|
+
flyte/io/_dir.py,sha256=rih9CY1YjNX05bcAu5LG62Xoyij5GXAlv7jLyVF0je8,15310
|
|
156
|
+
flyte/io/_file.py,sha256=eL48TwJjPDyN9tPG9Hfs22P4qqc-GBsTm3E5e-JmfdY,15430
|
|
155
157
|
flyte/io/pickle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
156
158
|
flyte/io/pickle/transformer.py,sha256=b7vAxLHgi-HMHy3vOG0sGMeDf6LimFmU_jAcvNOZI1o,4047
|
|
157
159
|
flyte/io/structured_dataset/__init__.py,sha256=69ixVV9OEXiLiQ6SV2S8tEC7dVQe7YTt9NV1OotlG64,4524
|
|
@@ -159,12 +161,12 @@ flyte/io/structured_dataset/basic_dfs.py,sha256=lrcALNYke_gSmmAhIiUN5afqhA-W5bSu
|
|
|
159
161
|
flyte/io/structured_dataset/structured_dataset.py,sha256=DrRIHA3zbkfLBekw3pPTF_SM0Rbn_BGBp1YJPyd9zY0,52644
|
|
160
162
|
flyte/remote/__init__.py,sha256=zBWV88VF-L8430xVrOyk07EmLsOKhOUMVBsqFUDtO6Q,565
|
|
161
163
|
flyte/remote/_console.py,sha256=avmELJPx8nQMAVPrHlh6jEIRPjrMwFpdZjJsWOOa9rE,660
|
|
162
|
-
flyte/remote/_data.py,sha256=
|
|
163
|
-
flyte/remote/_logs.py,sha256=
|
|
164
|
-
flyte/remote/_project.py,sha256=
|
|
165
|
-
flyte/remote/_run.py,sha256=
|
|
166
|
-
flyte/remote/_secret.py,sha256=
|
|
167
|
-
flyte/remote/_task.py,sha256
|
|
164
|
+
flyte/remote/_data.py,sha256=DPK85gB6M71RjxqIh1Q5PdZ9xcJ0m1w_3cT2lAO0r7w,5795
|
|
165
|
+
flyte/remote/_logs.py,sha256=CzhHaPq-1nZn0yxZQPRjPpoEWmfWYBxPdAAp8zcHchU,6138
|
|
166
|
+
flyte/remote/_project.py,sha256=dTBYqORDAbLvh9WnPO1Ytuzw2vxNYZwwNsKE2_b0o14,2807
|
|
167
|
+
flyte/remote/_run.py,sha256=u42FCF837FVywdHgajHH6sZw5FVacyqVPH178rXKpio,30666
|
|
168
|
+
flyte/remote/_secret.py,sha256=l5xeMS83uMcWWeSSTRsSZUNhS0N--1Dze09C-thSOQs,4341
|
|
169
|
+
flyte/remote/_task.py,sha256=6TBdjPWgxHmdY9OJMMPGZax8h7Qs7q9dprNktjnZ77E,7904
|
|
168
170
|
flyte/remote/_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
169
171
|
flyte/remote/_client/_protocols.py,sha256=RVlVpX0jNg9kIf80lgtYimIWlqv30HOiFAdmDAROXCs,5481
|
|
170
172
|
flyte/remote/_client/controlplane.py,sha256=FsOfj4rO4MIMnYrpAT53F8q588VVf5t4sDuwoPuc840,3102
|
|
@@ -187,21 +189,23 @@ flyte/remote/_client/auth/_grpc_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
187
189
|
flyte/remote/_client/auth/_grpc_utils/auth_interceptor.py,sha256=JCjdoWV41sjdvfJcUmrJdIfQ0meuGFwv2ArU7FQGDDA,12403
|
|
188
190
|
flyte/remote/_client/auth/_grpc_utils/default_metadata_interceptor.py,sha256=IoMGWM42_VyzxqIVYe458o0uKsqhH-mcERUs9CY1L5U,6194
|
|
189
191
|
flyte/report/__init__.py,sha256=yLbeUxYaVaDlgBod3Oh34zGBSotl1UlXq1vUkb9q7cs,152
|
|
190
|
-
flyte/report/_report.py,sha256=
|
|
192
|
+
flyte/report/_report.py,sha256=jZXl-dqkZHiVAPBuUCmE4e1vE9FpHLkermOeZehi8Tc,5175
|
|
191
193
|
flyte/report/_template.html,sha256=YehmLJG3QMYQ10UT1YZBu2ncVmAJ4iyqVp5hF3sXRAs,3458
|
|
192
194
|
flyte/storage/__init__.py,sha256=kkOyqBXJVZSKt3ALitGn9zK6bkchy1-c3TOPB4QhPxk,499
|
|
193
195
|
flyte/storage/_config.py,sha256=xVibWJaioOnkeTb_M30azgiUe1jvmQaOWRZEkpdoTao,8680
|
|
194
196
|
flyte/storage/_remote_fs.py,sha256=kM_iszbccjVD5VtVdgfkl1FHS8NPnY__JOo_CPQUE4c,1124
|
|
195
197
|
flyte/storage/_storage.py,sha256=mBy7MKII2M1UTVm_EUUDwVb7uT1_AOPzQr2wCJ-fgW0,9873
|
|
196
198
|
flyte/storage/_utils.py,sha256=8oLCM-7D7JyJhzUi1_Q1NFx8GBUPRfou0T_5tPBmPbE,309
|
|
199
|
+
flyte/syncify/__init__.py,sha256=tmGOUw3XvDXpaxQk95oRmUTObcIzjEvBFaceSzrXATU,94
|
|
200
|
+
flyte/syncify/_api.py,sha256=Ayq9xzb1IJJrlHuTJ160C3k7tdrAjhX4z-FgQM-3T8M,9799
|
|
197
201
|
flyte/types/__init__.py,sha256=xMIYOolT3Vq0qXy7unw90IVdYztdMDpKg0oG0XAPC9o,364
|
|
198
202
|
flyte/types/_interface.py,sha256=mY7mb8v2hJPGk7AU99gdOWl4_jArA1VFtjYGlE31SK0,953
|
|
199
203
|
flyte/types/_renderer.py,sha256=ygcCo5l60lHufyQISFddZfWwLlQ8kJAKxUT_XnR_6dY,4818
|
|
200
204
|
flyte/types/_string_literals.py,sha256=NlG1xV8RSA-sZ-n-IFQCAsdB6jXJOAKkHWtnopxVVDk,4231
|
|
201
205
|
flyte/types/_type_engine.py,sha256=QxyoDWRG_whfLCz88YqEVVoTTnca0FZv9eHeLLT0_-s,93645
|
|
202
206
|
flyte/types/_utils.py,sha256=pbts9E1_2LTdLygAY0UYTLYJ8AsN3BZyviSXvrtcutc,2626
|
|
203
|
-
flyte-0.2.
|
|
204
|
-
flyte-0.2.
|
|
205
|
-
flyte-0.2.
|
|
206
|
-
flyte-0.2.
|
|
207
|
-
flyte-0.2.
|
|
207
|
+
flyte-0.2.0b5.dist-info/METADATA,sha256=k8vAmgiVFmkpS_8iz8AAnTAmsXTFVcSmXU2Lge-OnX8,10234
|
|
208
|
+
flyte-0.2.0b5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
209
|
+
flyte-0.2.0b5.dist-info/entry_points.txt,sha256=MIq2z5dBurdCJfpXfMKzgBv7sJOakKRYxr8G0cMiTrg,75
|
|
210
|
+
flyte-0.2.0b5.dist-info/top_level.txt,sha256=7dkyFbikvA12LEZEqawx8oDG1CMod6hTliPj7iWzgYo,6
|
|
211
|
+
flyte-0.2.0b5.dist-info/RECORD,,
|
flyte/_api_commons.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|