modal 0.72.5__py3-none-any.whl → 0.72.48__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.
- modal/_container_entrypoint.py +5 -10
- modal/_object.py +297 -0
- modal/_resolver.py +7 -5
- modal/_runtime/container_io_manager.py +0 -11
- modal/_runtime/user_code_imports.py +7 -7
- modal/_serialization.py +4 -3
- modal/_tunnel.py +1 -1
- modal/app.py +14 -61
- modal/app.pyi +25 -25
- modal/cli/app.py +3 -2
- modal/cli/container.py +1 -1
- modal/cli/import_refs.py +185 -113
- modal/cli/launch.py +10 -5
- modal/cli/programs/run_jupyter.py +2 -2
- modal/cli/programs/vscode.py +3 -3
- modal/cli/run.py +134 -68
- modal/client.py +1 -0
- modal/client.pyi +18 -14
- modal/cloud_bucket_mount.py +4 -0
- modal/cloud_bucket_mount.pyi +4 -0
- modal/cls.py +33 -5
- modal/cls.pyi +20 -5
- modal/container_process.pyi +8 -6
- modal/dict.py +1 -1
- modal/dict.pyi +32 -29
- modal/environments.py +1 -1
- modal/environments.pyi +2 -1
- modal/experimental.py +47 -11
- modal/experimental.pyi +29 -0
- modal/file_io.pyi +30 -28
- modal/file_pattern_matcher.py +3 -4
- modal/functions.py +31 -23
- modal/functions.pyi +57 -50
- modal/gpu.py +19 -26
- modal/image.py +47 -19
- modal/image.pyi +28 -21
- modal/io_streams.pyi +14 -12
- modal/mount.py +14 -5
- modal/mount.pyi +28 -25
- modal/network_file_system.py +7 -7
- modal/network_file_system.pyi +27 -24
- modal/object.py +2 -265
- modal/object.pyi +46 -130
- modal/parallel_map.py +2 -2
- modal/parallel_map.pyi +10 -7
- modal/partial_function.py +22 -3
- modal/partial_function.pyi +45 -27
- modal/proxy.py +1 -1
- modal/proxy.pyi +2 -1
- modal/queue.py +1 -1
- modal/queue.pyi +26 -23
- modal/runner.py +14 -3
- modal/sandbox.py +11 -7
- modal/sandbox.pyi +30 -27
- modal/secret.py +1 -1
- modal/secret.pyi +2 -1
- modal/token_flow.pyi +6 -4
- modal/volume.py +1 -1
- modal/volume.pyi +36 -33
- {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/METADATA +2 -2
- {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/RECORD +73 -71
- modal_proto/api.proto +151 -4
- modal_proto/api_grpc.py +113 -0
- modal_proto/api_pb2.py +998 -795
- modal_proto/api_pb2.pyi +430 -11
- modal_proto/api_pb2_grpc.py +233 -1
- modal_proto/api_pb2_grpc.pyi +75 -3
- modal_proto/modal_api_grpc.py +7 -0
- modal_version/_version_generated.py +1 -1
- {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/LICENSE +0 -0
- {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/WHEEL +0 -0
- {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/entry_points.txt +0 -0
- {modal-0.72.5.dist-info → modal-0.72.48.dist-info}/top_level.txt +0 -0
modal/sandbox.pyi
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import _typeshed
|
2
2
|
import collections.abc
|
3
3
|
import google.protobuf.message
|
4
|
+
import modal._object
|
4
5
|
import modal._tunnel
|
5
6
|
import modal.app
|
6
7
|
import modal.client
|
@@ -23,7 +24,7 @@ import os
|
|
23
24
|
import typing
|
24
25
|
import typing_extensions
|
25
26
|
|
26
|
-
class _Sandbox(modal.
|
27
|
+
class _Sandbox(modal._object._Object):
|
27
28
|
_result: typing.Optional[modal_proto.api_pb2.GenericResult]
|
28
29
|
_stdout: modal.io_streams._StreamReader[str]
|
29
30
|
_stderr: modal.io_streams._StreamReader[str]
|
@@ -154,6 +155,8 @@ class _Sandbox(modal.object._Object):
|
|
154
155
|
client: typing.Optional[modal.client._Client] = None,
|
155
156
|
) -> collections.abc.AsyncGenerator[_Sandbox, None]: ...
|
156
157
|
|
158
|
+
SUPERSELF = typing.TypeVar("SUPERSELF", covariant=True)
|
159
|
+
|
157
160
|
class Sandbox(modal.object.Object):
|
158
161
|
_result: typing.Optional[modal_proto.api_pb2.GenericResult]
|
159
162
|
_stdout: modal.io_streams.StreamReader[str]
|
@@ -263,49 +266,49 @@ class Sandbox(modal.object.Object):
|
|
263
266
|
|
264
267
|
from_id: __from_id_spec
|
265
268
|
|
266
|
-
class __set_tags_spec(typing_extensions.Protocol):
|
269
|
+
class __set_tags_spec(typing_extensions.Protocol[SUPERSELF]):
|
267
270
|
def __call__(self, tags: dict[str, str], *, client: typing.Optional[modal.client.Client] = None): ...
|
268
271
|
async def aio(self, tags: dict[str, str], *, client: typing.Optional[modal.client.Client] = None): ...
|
269
272
|
|
270
|
-
set_tags: __set_tags_spec
|
273
|
+
set_tags: __set_tags_spec[typing_extensions.Self]
|
271
274
|
|
272
|
-
class __snapshot_filesystem_spec(typing_extensions.Protocol):
|
275
|
+
class __snapshot_filesystem_spec(typing_extensions.Protocol[SUPERSELF]):
|
273
276
|
def __call__(self, timeout: int = 55) -> modal.image.Image: ...
|
274
277
|
async def aio(self, timeout: int = 55) -> modal.image.Image: ...
|
275
278
|
|
276
|
-
snapshot_filesystem: __snapshot_filesystem_spec
|
279
|
+
snapshot_filesystem: __snapshot_filesystem_spec[typing_extensions.Self]
|
277
280
|
|
278
|
-
class __wait_spec(typing_extensions.Protocol):
|
281
|
+
class __wait_spec(typing_extensions.Protocol[SUPERSELF]):
|
279
282
|
def __call__(self, raise_on_termination: bool = True): ...
|
280
283
|
async def aio(self, raise_on_termination: bool = True): ...
|
281
284
|
|
282
|
-
wait: __wait_spec
|
285
|
+
wait: __wait_spec[typing_extensions.Self]
|
283
286
|
|
284
|
-
class __tunnels_spec(typing_extensions.Protocol):
|
287
|
+
class __tunnels_spec(typing_extensions.Protocol[SUPERSELF]):
|
285
288
|
def __call__(self, timeout: int = 50) -> dict[int, modal._tunnel.Tunnel]: ...
|
286
289
|
async def aio(self, timeout: int = 50) -> dict[int, modal._tunnel.Tunnel]: ...
|
287
290
|
|
288
|
-
tunnels: __tunnels_spec
|
291
|
+
tunnels: __tunnels_spec[typing_extensions.Self]
|
289
292
|
|
290
|
-
class __terminate_spec(typing_extensions.Protocol):
|
293
|
+
class __terminate_spec(typing_extensions.Protocol[SUPERSELF]):
|
291
294
|
def __call__(self): ...
|
292
295
|
async def aio(self): ...
|
293
296
|
|
294
|
-
terminate: __terminate_spec
|
297
|
+
terminate: __terminate_spec[typing_extensions.Self]
|
295
298
|
|
296
|
-
class __poll_spec(typing_extensions.Protocol):
|
299
|
+
class __poll_spec(typing_extensions.Protocol[SUPERSELF]):
|
297
300
|
def __call__(self) -> typing.Optional[int]: ...
|
298
301
|
async def aio(self) -> typing.Optional[int]: ...
|
299
302
|
|
300
|
-
poll: __poll_spec
|
303
|
+
poll: __poll_spec[typing_extensions.Self]
|
301
304
|
|
302
|
-
class ___get_task_id_spec(typing_extensions.Protocol):
|
305
|
+
class ___get_task_id_spec(typing_extensions.Protocol[SUPERSELF]):
|
303
306
|
def __call__(self): ...
|
304
307
|
async def aio(self): ...
|
305
308
|
|
306
|
-
_get_task_id: ___get_task_id_spec
|
309
|
+
_get_task_id: ___get_task_id_spec[typing_extensions.Self]
|
307
310
|
|
308
|
-
class __exec_spec(typing_extensions.Protocol):
|
311
|
+
class __exec_spec(typing_extensions.Protocol[SUPERSELF]):
|
309
312
|
@typing.overload
|
310
313
|
def __call__(
|
311
314
|
self,
|
@@ -363,9 +366,9 @@ class Sandbox(modal.object.Object):
|
|
363
366
|
_pty_info: typing.Optional[modal_proto.api_pb2.PTYInfo] = None,
|
364
367
|
) -> modal.container_process.ContainerProcess[bytes]: ...
|
365
368
|
|
366
|
-
exec: __exec_spec
|
369
|
+
exec: __exec_spec[typing_extensions.Self]
|
367
370
|
|
368
|
-
class __open_spec(typing_extensions.Protocol):
|
371
|
+
class __open_spec(typing_extensions.Protocol[SUPERSELF]):
|
369
372
|
@typing.overload
|
370
373
|
def __call__(self, path: str, mode: _typeshed.OpenTextMode) -> modal.file_io.FileIO[str]: ...
|
371
374
|
@typing.overload
|
@@ -375,27 +378,27 @@ class Sandbox(modal.object.Object):
|
|
375
378
|
@typing.overload
|
376
379
|
async def aio(self, path: str, mode: _typeshed.OpenBinaryMode) -> modal.file_io.FileIO[bytes]: ...
|
377
380
|
|
378
|
-
open: __open_spec
|
381
|
+
open: __open_spec[typing_extensions.Self]
|
379
382
|
|
380
|
-
class __ls_spec(typing_extensions.Protocol):
|
383
|
+
class __ls_spec(typing_extensions.Protocol[SUPERSELF]):
|
381
384
|
def __call__(self, path: str) -> list[str]: ...
|
382
385
|
async def aio(self, path: str) -> list[str]: ...
|
383
386
|
|
384
|
-
ls: __ls_spec
|
387
|
+
ls: __ls_spec[typing_extensions.Self]
|
385
388
|
|
386
|
-
class __mkdir_spec(typing_extensions.Protocol):
|
389
|
+
class __mkdir_spec(typing_extensions.Protocol[SUPERSELF]):
|
387
390
|
def __call__(self, path: str, parents: bool = False) -> None: ...
|
388
391
|
async def aio(self, path: str, parents: bool = False) -> None: ...
|
389
392
|
|
390
|
-
mkdir: __mkdir_spec
|
393
|
+
mkdir: __mkdir_spec[typing_extensions.Self]
|
391
394
|
|
392
|
-
class __rm_spec(typing_extensions.Protocol):
|
395
|
+
class __rm_spec(typing_extensions.Protocol[SUPERSELF]):
|
393
396
|
def __call__(self, path: str, recursive: bool = False) -> None: ...
|
394
397
|
async def aio(self, path: str, recursive: bool = False) -> None: ...
|
395
398
|
|
396
|
-
rm: __rm_spec
|
399
|
+
rm: __rm_spec[typing_extensions.Self]
|
397
400
|
|
398
|
-
class __watch_spec(typing_extensions.Protocol):
|
401
|
+
class __watch_spec(typing_extensions.Protocol[SUPERSELF]):
|
399
402
|
def __call__(
|
400
403
|
self,
|
401
404
|
path: str,
|
@@ -411,7 +414,7 @@ class Sandbox(modal.object.Object):
|
|
411
414
|
timeout: typing.Optional[int] = None,
|
412
415
|
) -> typing.AsyncIterator[modal.file_io.FileWatchEvent]: ...
|
413
416
|
|
414
|
-
watch: __watch_spec
|
417
|
+
watch: __watch_spec[typing_extensions.Self]
|
415
418
|
|
416
419
|
@property
|
417
420
|
def stdout(self) -> modal.io_streams.StreamReader[str]: ...
|
modal/secret.py
CHANGED
@@ -6,6 +6,7 @@ from grpclib import GRPCError, Status
|
|
6
6
|
|
7
7
|
from modal_proto import api_pb2
|
8
8
|
|
9
|
+
from ._object import _get_environment_name, _Object
|
9
10
|
from ._resolver import Resolver
|
10
11
|
from ._runtime.execution_context import is_local
|
11
12
|
from ._utils.async_utils import synchronize_api
|
@@ -14,7 +15,6 @@ from ._utils.grpc_utils import retry_transient_errors
|
|
14
15
|
from ._utils.name_utils import check_object_name
|
15
16
|
from .client import _Client
|
16
17
|
from .exception import InvalidError, NotFoundError
|
17
|
-
from .object import _get_environment_name, _Object
|
18
18
|
|
19
19
|
ENV_DICT_WRONG_TYPE_ERR = "the env_dict argument to Secret has to be a dict[str, Union[str, None]]"
|
20
20
|
|
modal/secret.pyi
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
+
import modal._object
|
1
2
|
import modal.client
|
2
3
|
import modal.object
|
3
4
|
import typing
|
4
5
|
import typing_extensions
|
5
6
|
|
6
|
-
class _Secret(modal.
|
7
|
+
class _Secret(modal._object._Object):
|
7
8
|
@staticmethod
|
8
9
|
def from_dict(env_dict: dict[str, typing.Optional[str]] = {}): ...
|
9
10
|
@staticmethod
|
modal/token_flow.pyi
CHANGED
@@ -13,10 +13,12 @@ class _TokenFlow:
|
|
13
13
|
self, timeout: float = 40.0, grpc_extra_timeout: float = 5.0
|
14
14
|
) -> typing.Optional[modal_proto.api_pb2.TokenFlowWaitResponse]: ...
|
15
15
|
|
16
|
+
SUPERSELF = typing.TypeVar("SUPERSELF", covariant=True)
|
17
|
+
|
16
18
|
class TokenFlow:
|
17
19
|
def __init__(self, client: modal.client.Client): ...
|
18
20
|
|
19
|
-
class __start_spec(typing_extensions.Protocol):
|
21
|
+
class __start_spec(typing_extensions.Protocol[SUPERSELF]):
|
20
22
|
def __call__(
|
21
23
|
self, utm_source: typing.Optional[str] = None, next_url: typing.Optional[str] = None
|
22
24
|
) -> synchronicity.combined_types.AsyncAndBlockingContextManager[tuple[str, str, str]]: ...
|
@@ -24,9 +26,9 @@ class TokenFlow:
|
|
24
26
|
self, utm_source: typing.Optional[str] = None, next_url: typing.Optional[str] = None
|
25
27
|
) -> typing.AsyncContextManager[tuple[str, str, str]]: ...
|
26
28
|
|
27
|
-
start: __start_spec
|
29
|
+
start: __start_spec[typing_extensions.Self]
|
28
30
|
|
29
|
-
class __finish_spec(typing_extensions.Protocol):
|
31
|
+
class __finish_spec(typing_extensions.Protocol[SUPERSELF]):
|
30
32
|
def __call__(
|
31
33
|
self, timeout: float = 40.0, grpc_extra_timeout: float = 5.0
|
32
34
|
) -> typing.Optional[modal_proto.api_pb2.TokenFlowWaitResponse]: ...
|
@@ -34,7 +36,7 @@ class TokenFlow:
|
|
34
36
|
self, timeout: float = 40.0, grpc_extra_timeout: float = 5.0
|
35
37
|
) -> typing.Optional[modal_proto.api_pb2.TokenFlowWaitResponse]: ...
|
36
38
|
|
37
|
-
finish: __finish_spec
|
39
|
+
finish: __finish_spec[typing_extensions.Self]
|
38
40
|
|
39
41
|
async def _new_token(
|
40
42
|
*,
|
modal/volume.py
CHANGED
@@ -27,6 +27,7 @@ import modal_proto.api_pb2
|
|
27
27
|
from modal.exception import VolumeUploadTimeoutError
|
28
28
|
from modal_proto import api_pb2
|
29
29
|
|
30
|
+
from ._object import EPHEMERAL_OBJECT_HEARTBEAT_SLEEP, _get_environment_name, _Object, live_method, live_method_gen
|
30
31
|
from ._resolver import Resolver
|
31
32
|
from ._utils.async_utils import TaskContext, aclosing, async_map, asyncnullcontext, synchronize_api
|
32
33
|
from ._utils.blob_utils import (
|
@@ -41,7 +42,6 @@ from ._utils.grpc_utils import retry_transient_errors
|
|
41
42
|
from ._utils.name_utils import check_object_name
|
42
43
|
from .client import _Client
|
43
44
|
from .config import logger
|
44
|
-
from .object import EPHEMERAL_OBJECT_HEARTBEAT_SLEEP, _get_environment_name, _Object, live_method, live_method_gen
|
45
45
|
|
46
46
|
# Max duration for uploading to volumes files
|
47
47
|
# As a guide, files >40GiB will take >10 minutes to upload.
|
modal/volume.pyi
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import asyncio.locks
|
2
2
|
import collections.abc
|
3
3
|
import enum
|
4
|
+
import modal._object
|
4
5
|
import modal._utils.blob_utils
|
5
6
|
import modal.client
|
6
7
|
import modal.object
|
@@ -33,7 +34,7 @@ class FileEntry:
|
|
33
34
|
def __delattr__(self, name): ...
|
34
35
|
def __hash__(self): ...
|
35
36
|
|
36
|
-
class _Volume(modal.
|
37
|
+
class _Volume(modal._object._Object):
|
37
38
|
_lock: typing.Optional[asyncio.locks.Lock]
|
38
39
|
|
39
40
|
async def _get_lock(self): ...
|
@@ -98,16 +99,16 @@ class _VolumeUploadContextManager:
|
|
98
99
|
_volume_id: str
|
99
100
|
_client: modal.client._Client
|
100
101
|
_force: bool
|
101
|
-
progress_cb:
|
102
|
+
progress_cb: collections.abc.Callable[..., typing.Any]
|
102
103
|
_upload_generators: list[
|
103
|
-
collections.abc.Generator[
|
104
|
+
collections.abc.Generator[collections.abc.Callable[[], modal._utils.blob_utils.FileUploadSpec], None, None]
|
104
105
|
]
|
105
106
|
|
106
107
|
def __init__(
|
107
108
|
self,
|
108
109
|
volume_id: str,
|
109
110
|
client: modal.client._Client,
|
110
|
-
progress_cb: typing.Optional[
|
111
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
111
112
|
force: bool = False,
|
112
113
|
): ...
|
113
114
|
async def __aenter__(self): ...
|
@@ -128,16 +129,18 @@ class _VolumeUploadContextManager:
|
|
128
129
|
self, file_spec: modal._utils.blob_utils.FileUploadSpec
|
129
130
|
) -> modal_proto.api_pb2.MountFile: ...
|
130
131
|
|
132
|
+
SUPERSELF = typing.TypeVar("SUPERSELF", covariant=True)
|
133
|
+
|
131
134
|
class Volume(modal.object.Object):
|
132
135
|
_lock: typing.Optional[asyncio.locks.Lock]
|
133
136
|
|
134
137
|
def __init__(self, *args, **kwargs): ...
|
135
138
|
|
136
|
-
class ___get_lock_spec(typing_extensions.Protocol):
|
139
|
+
class ___get_lock_spec(typing_extensions.Protocol[SUPERSELF]):
|
137
140
|
def __call__(self): ...
|
138
141
|
async def aio(self): ...
|
139
142
|
|
140
|
-
_get_lock: ___get_lock_spec
|
143
|
+
_get_lock: ___get_lock_spec[typing_extensions.Self]
|
141
144
|
|
142
145
|
@staticmethod
|
143
146
|
def from_name(
|
@@ -198,71 +201,71 @@ class Volume(modal.object.Object):
|
|
198
201
|
|
199
202
|
create_deployed: __create_deployed_spec
|
200
203
|
|
201
|
-
class ___do_reload_spec(typing_extensions.Protocol):
|
204
|
+
class ___do_reload_spec(typing_extensions.Protocol[SUPERSELF]):
|
202
205
|
def __call__(self, lock=True): ...
|
203
206
|
async def aio(self, lock=True): ...
|
204
207
|
|
205
|
-
_do_reload: ___do_reload_spec
|
208
|
+
_do_reload: ___do_reload_spec[typing_extensions.Self]
|
206
209
|
|
207
|
-
class __commit_spec(typing_extensions.Protocol):
|
210
|
+
class __commit_spec(typing_extensions.Protocol[SUPERSELF]):
|
208
211
|
def __call__(self): ...
|
209
212
|
async def aio(self): ...
|
210
213
|
|
211
|
-
commit: __commit_spec
|
214
|
+
commit: __commit_spec[typing_extensions.Self]
|
212
215
|
|
213
|
-
class __reload_spec(typing_extensions.Protocol):
|
216
|
+
class __reload_spec(typing_extensions.Protocol[SUPERSELF]):
|
214
217
|
def __call__(self): ...
|
215
218
|
async def aio(self): ...
|
216
219
|
|
217
|
-
reload: __reload_spec
|
220
|
+
reload: __reload_spec[typing_extensions.Self]
|
218
221
|
|
219
|
-
class __iterdir_spec(typing_extensions.Protocol):
|
222
|
+
class __iterdir_spec(typing_extensions.Protocol[SUPERSELF]):
|
220
223
|
def __call__(self, path: str, *, recursive: bool = True) -> typing.Iterator[FileEntry]: ...
|
221
224
|
def aio(self, path: str, *, recursive: bool = True) -> collections.abc.AsyncIterator[FileEntry]: ...
|
222
225
|
|
223
|
-
iterdir: __iterdir_spec
|
226
|
+
iterdir: __iterdir_spec[typing_extensions.Self]
|
224
227
|
|
225
|
-
class __listdir_spec(typing_extensions.Protocol):
|
228
|
+
class __listdir_spec(typing_extensions.Protocol[SUPERSELF]):
|
226
229
|
def __call__(self, path: str, *, recursive: bool = False) -> list[FileEntry]: ...
|
227
230
|
async def aio(self, path: str, *, recursive: bool = False) -> list[FileEntry]: ...
|
228
231
|
|
229
|
-
listdir: __listdir_spec
|
232
|
+
listdir: __listdir_spec[typing_extensions.Self]
|
230
233
|
|
231
|
-
class __read_file_spec(typing_extensions.Protocol):
|
234
|
+
class __read_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
232
235
|
def __call__(self, path: str) -> typing.Iterator[bytes]: ...
|
233
236
|
def aio(self, path: str) -> collections.abc.AsyncIterator[bytes]: ...
|
234
237
|
|
235
|
-
read_file: __read_file_spec
|
238
|
+
read_file: __read_file_spec[typing_extensions.Self]
|
236
239
|
|
237
|
-
class __read_file_into_fileobj_spec(typing_extensions.Protocol):
|
240
|
+
class __read_file_into_fileobj_spec(typing_extensions.Protocol[SUPERSELF]):
|
238
241
|
def __call__(self, path: str, fileobj: typing.IO[bytes]) -> int: ...
|
239
242
|
async def aio(self, path: str, fileobj: typing.IO[bytes]) -> int: ...
|
240
243
|
|
241
|
-
read_file_into_fileobj: __read_file_into_fileobj_spec
|
244
|
+
read_file_into_fileobj: __read_file_into_fileobj_spec[typing_extensions.Self]
|
242
245
|
|
243
|
-
class __remove_file_spec(typing_extensions.Protocol):
|
246
|
+
class __remove_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
244
247
|
def __call__(self, path: str, recursive: bool = False) -> None: ...
|
245
248
|
async def aio(self, path: str, recursive: bool = False) -> None: ...
|
246
249
|
|
247
|
-
remove_file: __remove_file_spec
|
250
|
+
remove_file: __remove_file_spec[typing_extensions.Self]
|
248
251
|
|
249
|
-
class __copy_files_spec(typing_extensions.Protocol):
|
252
|
+
class __copy_files_spec(typing_extensions.Protocol[SUPERSELF]):
|
250
253
|
def __call__(self, src_paths: collections.abc.Sequence[str], dst_path: str) -> None: ...
|
251
254
|
async def aio(self, src_paths: collections.abc.Sequence[str], dst_path: str) -> None: ...
|
252
255
|
|
253
|
-
copy_files: __copy_files_spec
|
256
|
+
copy_files: __copy_files_spec[typing_extensions.Self]
|
254
257
|
|
255
|
-
class __batch_upload_spec(typing_extensions.Protocol):
|
258
|
+
class __batch_upload_spec(typing_extensions.Protocol[SUPERSELF]):
|
256
259
|
def __call__(self, force: bool = False) -> VolumeUploadContextManager: ...
|
257
260
|
async def aio(self, force: bool = False) -> VolumeUploadContextManager: ...
|
258
261
|
|
259
|
-
batch_upload: __batch_upload_spec
|
262
|
+
batch_upload: __batch_upload_spec[typing_extensions.Self]
|
260
263
|
|
261
|
-
class ___instance_delete_spec(typing_extensions.Protocol):
|
264
|
+
class ___instance_delete_spec(typing_extensions.Protocol[SUPERSELF]):
|
262
265
|
def __call__(self): ...
|
263
266
|
async def aio(self): ...
|
264
267
|
|
265
|
-
_instance_delete: ___instance_delete_spec
|
268
|
+
_instance_delete: ___instance_delete_spec[typing_extensions.Self]
|
266
269
|
|
267
270
|
class __delete_spec(typing_extensions.Protocol):
|
268
271
|
def __call__(
|
@@ -304,16 +307,16 @@ class VolumeUploadContextManager:
|
|
304
307
|
_volume_id: str
|
305
308
|
_client: modal.client.Client
|
306
309
|
_force: bool
|
307
|
-
progress_cb:
|
310
|
+
progress_cb: collections.abc.Callable[..., typing.Any]
|
308
311
|
_upload_generators: list[
|
309
|
-
collections.abc.Generator[
|
312
|
+
collections.abc.Generator[collections.abc.Callable[[], modal._utils.blob_utils.FileUploadSpec], None, None]
|
310
313
|
]
|
311
314
|
|
312
315
|
def __init__(
|
313
316
|
self,
|
314
317
|
volume_id: str,
|
315
318
|
client: modal.client.Client,
|
316
|
-
progress_cb: typing.Optional[
|
319
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
317
320
|
force: bool = False,
|
318
321
|
): ...
|
319
322
|
def __enter__(self): ...
|
@@ -333,10 +336,10 @@ class VolumeUploadContextManager:
|
|
333
336
|
recursive: bool = True,
|
334
337
|
): ...
|
335
338
|
|
336
|
-
class ___upload_file_spec(typing_extensions.Protocol):
|
339
|
+
class ___upload_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
337
340
|
def __call__(self, file_spec: modal._utils.blob_utils.FileUploadSpec) -> modal_proto.api_pb2.MountFile: ...
|
338
341
|
async def aio(self, file_spec: modal._utils.blob_utils.FileUploadSpec) -> modal_proto.api_pb2.MountFile: ...
|
339
342
|
|
340
|
-
_upload_file: ___upload_file_spec
|
343
|
+
_upload_file: ___upload_file_spec[typing_extensions.Self]
|
341
344
|
|
342
345
|
def _open_files_error_annotation(mount_path: str) -> typing.Optional[str]: ...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: modal
|
3
|
-
Version: 0.72.
|
3
|
+
Version: 0.72.48
|
4
4
|
Summary: Python client library for Modal
|
5
5
|
Author: Modal Labs
|
6
6
|
Author-email: support@modal.com
|
@@ -21,7 +21,7 @@ Requires-Dist: fastapi
|
|
21
21
|
Requires-Dist: grpclib (==0.4.7)
|
22
22
|
Requires-Dist: protobuf (!=4.24.0,<6.0,>=3.19)
|
23
23
|
Requires-Dist: rich (>=12.0.0)
|
24
|
-
Requires-Dist: synchronicity (~=0.9.
|
24
|
+
Requires-Dist: synchronicity (~=0.9.9)
|
25
25
|
Requires-Dist: toml
|
26
26
|
Requires-Dist: typer (>=0.9)
|
27
27
|
Requires-Dist: types-certifi
|
@@ -2,86 +2,88 @@ modal/__init__.py,sha256=3NJLLHb0TRc2tc68kf8NHzORx38GbtbZvPEWDWrQ6N4,2234
|
|
2
2
|
modal/__main__.py,sha256=scYhGFqh8OJcVDo-VOxIT6CCwxOgzgflYWMnIZiMRqE,2871
|
3
3
|
modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
|
4
4
|
modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpaQ,771
|
5
|
-
modal/_container_entrypoint.py,sha256=
|
5
|
+
modal/_container_entrypoint.py,sha256=iHSNqLCTK4uXzcmhF5ou5AqOYovk4hMfV3BZYYDrFKc,29554
|
6
6
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
7
7
|
modal/_location.py,sha256=S3lSxIU3h9HkWpkJ3Pwo0pqjIOSB1fjeSgUsY3x7eec,1202
|
8
|
+
modal/_object.py,sha256=ItQcsMNkz9Y3kdTsvfNarbW-paJ2qabDyQ7njaqY0XI,11359
|
8
9
|
modal/_output.py,sha256=0fWX_KQwhER--U81ys16CL-pA5A-LN20C0EZjElKGJQ,25410
|
9
10
|
modal/_proxy_tunnel.py,sha256=gnKyCfmVB7x2d1A6c-JDysNIP3kEFxmXzhcXhPrzPn0,1906
|
10
11
|
modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
|
11
|
-
modal/_resolver.py,sha256=
|
12
|
+
modal/_resolver.py,sha256=D9IAdZKNqRPwgPDaB-XMKGtO8G0GwtBzG6xdgiXKdCk,6945
|
12
13
|
modal/_resources.py,sha256=5qmcirXUI8dSH926nwkUaeX9H25mqYu9mXD_KuT79-o,1733
|
13
|
-
modal/_serialization.py,sha256=
|
14
|
+
modal/_serialization.py,sha256=x0uArKNXg89SfmKMUaLup_moHodax9weZItkChKeQ64,18745
|
14
15
|
modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
|
15
|
-
modal/_tunnel.py,sha256=
|
16
|
+
modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
|
16
17
|
modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
|
17
18
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
18
|
-
modal/app.py,sha256=
|
19
|
-
modal/app.pyi,sha256=
|
19
|
+
modal/app.py,sha256=KNfzLlkI2dJPl9LY8AgW76whZpwIvYKi2E2p9u4F3N4,43659
|
20
|
+
modal/app.pyi,sha256=vnQhENaQBhJO6el-ieOcw3NEeYQ314SFXRDtjij4DM8,25324
|
20
21
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
21
|
-
modal/client.py,sha256=
|
22
|
-
modal/client.pyi,sha256=
|
23
|
-
modal/cloud_bucket_mount.py,sha256=
|
24
|
-
modal/cloud_bucket_mount.pyi,sha256=
|
25
|
-
modal/cls.py,sha256=
|
26
|
-
modal/cls.pyi,sha256=
|
22
|
+
modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
|
23
|
+
modal/client.pyi,sha256=kzowbosjZXwpmAYhsd464XDVygnDt1nDYFxJNSNIjNg,7593
|
24
|
+
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
25
|
+
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
26
|
+
modal/cls.py,sha256=7Czu5ff8Sezzl4ayHyI9nMgB0el3401_uHvyZU4vbhc,32206
|
27
|
+
modal/cls.pyi,sha256=LrX2YVbcRqSKioOtXIMT9NShe4gaVYpDKt16SDZHh5s,8966
|
27
28
|
modal/config.py,sha256=BzhZYUUwOmvVwf6x5kf0ywMC257s648dmuhsnB6g3gk,11041
|
28
29
|
modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
|
29
|
-
modal/container_process.pyi,sha256=
|
30
|
-
modal/dict.py,sha256=
|
31
|
-
modal/dict.pyi,sha256=
|
32
|
-
modal/environments.py,sha256=
|
33
|
-
modal/environments.pyi,sha256=
|
30
|
+
modal/container_process.pyi,sha256=Hf0J5JyDdCCXBJSKx6gvkPOo0XrztCm78xzxamtzUjQ,2828
|
31
|
+
modal/dict.py,sha256=lKxvBcbcFZRARiqfolyRUW08x3RcozWL3MZuW2-Eu4U,12498
|
32
|
+
modal/dict.pyi,sha256=kKb0Kc6RUabtQ5Hwslg_vwL_OIrwIAJ2NXrJTepTtp4,7684
|
33
|
+
modal/environments.py,sha256=20doFhRnm1fae30LMOp8hSYbIfR7yFZTtbLdo5PrSj4,6661
|
34
|
+
modal/environments.pyi,sha256=RXE3slyEr9tWpfS84Fj7iUzNJy-SujlqWOQTE8A4Qaw,3537
|
34
35
|
modal/exception.py,sha256=4JyO-SACaLNDe2QC48EjsK8GMkZ8AgEurZ8j1YdRu8E,5263
|
35
|
-
modal/experimental.py,sha256=
|
36
|
+
modal/experimental.py,sha256=H9FXT3kshbjPLovshT10DicyOkGFrPqILy-qdTX-P7s,4015
|
37
|
+
modal/experimental.pyi,sha256=24tIYu_w9RLwFrz1cIsgYuqmDCtV8eg6-bQNz3zjhDo,939
|
36
38
|
modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
|
37
|
-
modal/file_io.pyi,sha256=
|
38
|
-
modal/file_pattern_matcher.py,sha256=
|
39
|
-
modal/functions.py,sha256=
|
40
|
-
modal/functions.pyi,sha256=
|
41
|
-
modal/gpu.py,sha256=
|
42
|
-
modal/image.py,sha256=
|
43
|
-
modal/image.pyi,sha256=
|
39
|
+
modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
|
40
|
+
modal/file_pattern_matcher.py,sha256=dSo7BMQGZBAuoBFOX-e_72HxmF3FLzjQlEtnGtJiaD4,6506
|
41
|
+
modal/functions.py,sha256=BrqbgeKpuoiA3-waNfdmUJfAGF7BsbQHvlTfAS1eHNQ,69046
|
42
|
+
modal/functions.pyi,sha256=m2a2ZnjqZFC6REG1_uhA5LM0O1etkFbQH3KnsLSXUKs,26533
|
43
|
+
modal/gpu.py,sha256=2qZMNnoMrjU-5Bu7fx68pANUAKTtZq0EWEEeBA9OUVQ,7426
|
44
|
+
modal/image.py,sha256=leeY7fLfFjS0IqTi3D4cRxIDOb80BPtb3jsQfqvVJ8c,90912
|
45
|
+
modal/image.pyi,sha256=QMKS6E3CsZr5DoyNqGpcJPBYJTJZSvtAQIsAhPVd_E4,26347
|
44
46
|
modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
|
45
|
-
modal/io_streams.pyi,sha256=
|
46
|
-
modal/mount.py,sha256=
|
47
|
-
modal/mount.pyi,sha256=
|
48
|
-
modal/network_file_system.py,sha256=
|
49
|
-
modal/network_file_system.pyi,sha256=
|
50
|
-
modal/object.py,sha256=
|
51
|
-
modal/object.pyi,sha256=
|
47
|
+
modal/io_streams.pyi,sha256=bJ7ZLmSmJ0nKoa6r4FJpbqvzdUVa0lEe0Fa-MMpMezU,5071
|
48
|
+
modal/mount.py,sha256=JuZZ2IJuypv1_9qK8R_LepX5oEWFTALdjIVA7_9HNC0,31802
|
49
|
+
modal/mount.pyi,sha256=dvdr4joSpW7oKnKyg9eDD0obFfekwZtW65j4NEomivQ,12523
|
50
|
+
modal/network_file_system.py,sha256=Jcr5Whar0MgA2YItJLJWmzHDnkkDlcOzO63TRkA64zA,14407
|
51
|
+
modal/network_file_system.pyi,sha256=4N3eqMbTSlqmS8VV_aJK-uvrgJC8xnf_YtW5FHfRfc8,8156
|
52
|
+
modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
|
53
|
+
modal/object.pyi,sha256=kyJkRQcVv3ct7zSAxvvXcuhBVeH914v80uSlqeS7cA4,5632
|
52
54
|
modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
|
53
|
-
modal/parallel_map.py,sha256=
|
54
|
-
modal/parallel_map.pyi,sha256=
|
55
|
-
modal/partial_function.py,sha256=
|
56
|
-
modal/partial_function.pyi,sha256=
|
57
|
-
modal/proxy.py,sha256=
|
58
|
-
modal/proxy.pyi,sha256=
|
55
|
+
modal/parallel_map.py,sha256=POBTyiWabe2e4qBNlsjjksiu1AAPEsNqI-mM8cgNFco,16042
|
56
|
+
modal/parallel_map.pyi,sha256=0ltjcIpPUqPGGOWmHqzCfBu5y3ISjRZDrqOJhiNhfYk,2522
|
57
|
+
modal/partial_function.py,sha256=4_hGVCCX-dYdjs_86Metfsuih8YyypiVMrExcwRGDS8,28711
|
58
|
+
modal/partial_function.pyi,sha256=Dj4WDxbGkXjxAbucSBSqr2_vrNbEWEAwdXnMzh2d80Y,9905
|
59
|
+
modal/proxy.py,sha256=NrOevrWxG3G7-zlyRzG6BcIvop7AWLeyahZxitbBaOk,1418
|
60
|
+
modal/proxy.pyi,sha256=1OEKIVUyC-xb7fHMzngakQso0nTsK60TVhXtlcMj6Wk,390
|
59
61
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
|
-
modal/queue.py,sha256=
|
61
|
-
modal/queue.pyi,sha256=
|
62
|
+
modal/queue.py,sha256=HPnyJuX-THDEl2ak-xqf2lxYJMiQw4e37y4vHz6FRCg,18557
|
63
|
+
modal/queue.pyi,sha256=sgvELCK4bJXMZIZw7gllooGFZNipGjI3BT4rmUuyD9M,10282
|
62
64
|
modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
|
63
|
-
modal/runner.py,sha256=
|
65
|
+
modal/runner.py,sha256=0SCMgKO8lZ9W1C7le1EcgViKERMXpi_-QBd6PF_MH0Q,24450
|
64
66
|
modal/runner.pyi,sha256=YmP4EOCNjjkwSIPi2Gl6hF_ji_ytkxz9dw3iB9KXaOI,5275
|
65
67
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
66
|
-
modal/sandbox.py,sha256=
|
67
|
-
modal/sandbox.pyi,sha256=
|
68
|
+
modal/sandbox.py,sha256=h5bgvt98iFmQs4aBu_d2aR6qP5UM5QVdP3wgm_P7RgE,29014
|
69
|
+
modal/sandbox.pyi,sha256=XtiDHYa4HOooyuEPmKFwEqO58AJBJVTceO_1HQyDwII,21343
|
68
70
|
modal/schedule.py,sha256=0ZFpKs1bOxeo5n3HZjoL7OE2ktsb-_oGtq-WJEPO4tY,2615
|
69
71
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
70
|
-
modal/secret.py,sha256=
|
71
|
-
modal/secret.pyi,sha256=
|
72
|
+
modal/secret.py,sha256=XTqrpR4rnkuUb-bth3qM_xxPqqEWorSoN9qDwjWRcXo,10118
|
73
|
+
modal/secret.pyi,sha256=W4g_BOSxafYm-K9PvFc7-li3a-rsCFNkYgHTZXr1AFA,2974
|
72
74
|
modal/serving.py,sha256=MnVuTsimN05LfNPxuJZ4sr5s1_BPUkIsOP_VC-bkp78,4464
|
73
75
|
modal/serving.pyi,sha256=ncV-9jY_vZYFnGs5ZnMb3ffrX8LmcLdIMHBC56xRbtE,1711
|
74
76
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
75
77
|
modal/token_flow.py,sha256=LcgSce_MSQ2p7j55DPwpVRpiAtCDe8GRSEwzO7muNR8,6774
|
76
|
-
modal/token_flow.pyi,sha256=
|
77
|
-
modal/volume.py,sha256=
|
78
|
-
modal/volume.pyi,sha256=
|
78
|
+
modal/token_flow.pyi,sha256=0XV3d-9CGQL3qjPdw3RgwIFVqqxo8Z-u044_mkgAM3o,2064
|
79
|
+
modal/volume.py,sha256=DdM9NhqNkqrk4BbAZdAgzI1jZws7NN2tYANO4OuM8hQ,29675
|
80
|
+
modal/volume.pyi,sha256=kTsXarphjZILXci84LQy7EyC84eXUs5-7D62IM5q3eE,12491
|
79
81
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
80
82
|
modal/_runtime/asgi.py,sha256=c4hmaMW1pLo-cm7ouriJjieuFm4ZF6D2LMy0638sfOs,22139
|
81
|
-
modal/_runtime/container_io_manager.py,sha256=
|
83
|
+
modal/_runtime/container_io_manager.py,sha256=drb-cY78h8P9Krzmmjex7uZlSSocniEF5cIXmUcvGnY,43145
|
82
84
|
modal/_runtime/execution_context.py,sha256=E6ofm6j1POXGPxS841X3V7JU6NheVb8OkQc7JpLq4Kg,2712
|
83
85
|
modal/_runtime/telemetry.py,sha256=T1RoAGyjBDr1swiM6pPsGRSITm7LI5FDK18oNXxY08U,5163
|
84
|
-
modal/_runtime/user_code_imports.py,sha256=
|
86
|
+
modal/_runtime/user_code_imports.py,sha256=c06azC0MtYHHCGWWRGxsVY0uMAjQKe1QEj-i0oXqbWM,14699
|
85
87
|
modal/_utils/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
86
88
|
modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
|
87
89
|
modal/_utils/async_utils.py,sha256=9ubwMkwiDB4gzOYG2jL9j7Fs-5dxHjcifZe3r7JRg-k,25091
|
@@ -108,25 +110,25 @@ modal/_vendor/tblib.py,sha256=g1O7QUDd3sDoLd8YPFltkXkih7r_fyZOjgmGuligv3s,9722
|
|
108
110
|
modal/cli/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
109
111
|
modal/cli/_download.py,sha256=t6BXZwjTd9MgznDvbsV8rp0FZWggdzC-lUAGZU4xx1g,3984
|
110
112
|
modal/cli/_traceback.py,sha256=QlLa_iw3fAOA-mqCqjS8qAxvNT48J3YY3errtVVc2cw,7316
|
111
|
-
modal/cli/app.py,sha256=
|
113
|
+
modal/cli/app.py,sha256=TmUiFKAE1yc6ll8pfl-wZ2lh9crC31Fu_8_YKCX8NJc,7818
|
112
114
|
modal/cli/config.py,sha256=pXPLmX0bIoV57rQNqIPK7V-yllj-GPRY4jiBO_EklGg,1667
|
113
|
-
modal/cli/container.py,sha256=
|
115
|
+
modal/cli/container.py,sha256=FYwEgjf93j4NMorAjGbSV98i1wpebqdAeNU1wfrFp1k,3668
|
114
116
|
modal/cli/dict.py,sha256=HaEcjfll7i3Uj3Fg56aj4407if5UljsYfr6fIq-D2W8,4589
|
115
117
|
modal/cli/entry_point.py,sha256=aaNxFAqZcmtSjwzkYIA_Ba9CkL4cL4_i2gy5VjoXxkM,4228
|
116
118
|
modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
|
117
|
-
modal/cli/import_refs.py,sha256=
|
118
|
-
modal/cli/launch.py,sha256=
|
119
|
+
modal/cli/import_refs.py,sha256=vp4r28FGnag3hKRbR_haiuCIGmOTthrhcGhAqSwwc7Q,11753
|
120
|
+
modal/cli/launch.py,sha256=pzQt2QlcrbIUU0MVzWWPAvMQ6MCyqsHZ0X9JcV-sY04,3242
|
119
121
|
modal/cli/network_file_system.py,sha256=o6VLTgN4xn5XUiNPBfxYec-5uWCgYrDmfFFLM1ZW_eE,8180
|
120
122
|
modal/cli/profile.py,sha256=rLXfjJObfPNjaZvNfHGIKqs7y9bGYyGe-K7V0w-Ni0M,3110
|
121
123
|
modal/cli/queues.py,sha256=MIh2OsliNE2QeL1erubfsRsNuG4fxqcqWA2vgIfQ4Mg,4494
|
122
|
-
modal/cli/run.py,sha256=
|
124
|
+
modal/cli/run.py,sha256=1rIfCRuCJb5fJQPW2j9huHh9h72u45g708IXf3QXKB8,20051
|
123
125
|
modal/cli/secret.py,sha256=uQpwYrMY98iMCWeZOQTcktOYhPTZ8IHnyealDc2CZqo,4206
|
124
126
|
modal/cli/token.py,sha256=mxSgOWakXG6N71hQb1ko61XAR9ZGkTMZD-Txn7gmTac,1924
|
125
127
|
modal/cli/utils.py,sha256=hZmjyzcPjDnQSkLvycZD2LhGdcsfdZshs_rOU78EpvI,3717
|
126
128
|
modal/cli/volume.py,sha256=Jrm-1R9u92JbbUM62bkB9RzAM_jO8wi7T2-i6Cb2XG0,10568
|
127
129
|
modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
128
|
-
modal/cli/programs/run_jupyter.py,sha256=
|
129
|
-
modal/cli/programs/vscode.py,sha256=
|
130
|
+
modal/cli/programs/run_jupyter.py,sha256=1X8eQ3gB_IqkJn11Q4dQ9KdIqFVwQQlwkrrSqlFWfPQ,2685
|
131
|
+
modal/cli/programs/vscode.py,sha256=c5jKk1ruuC03X1D-hNc2jtTQqofCBweEZH_qxHjkHGo,3383
|
130
132
|
modal/extensions/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
131
133
|
modal/extensions/ipython.py,sha256=Xvzy-A7cvwMSDa9p4c4CEMLOX2_Xsg9DkM1J9uyu7jc,983
|
132
134
|
modal/requirements/2023.12.312.txt,sha256=zWWUVgVQ92GXBKNYYr2-5vn9rlnXcmkqlwlX5u1eTYw,400
|
@@ -148,13 +150,13 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
|
|
148
150
|
modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
|
149
151
|
modal_global_objects/mounts/python_standalone.py,sha256=pEML5GaV2_0ahci_1vpfc_FnySpsfi2fhYmFF5I7IiQ,1837
|
150
152
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
151
|
-
modal_proto/api.proto,sha256=
|
152
|
-
modal_proto/api_grpc.py,sha256=
|
153
|
-
modal_proto/api_pb2.py,sha256=
|
154
|
-
modal_proto/api_pb2.pyi,sha256=
|
155
|
-
modal_proto/api_pb2_grpc.py,sha256=
|
156
|
-
modal_proto/api_pb2_grpc.pyi,sha256
|
157
|
-
modal_proto/modal_api_grpc.py,sha256=
|
153
|
+
modal_proto/api.proto,sha256=6Rt3GfhD5PWxmkAerWPFQZQ4TL7u0-s7PBcvajuKl5A,85069
|
154
|
+
modal_proto/api_grpc.py,sha256=_YeTxy_4EyqC4jp9eBsJWnziGRafK5c61kcvdWpJXRY,109089
|
155
|
+
modal_proto/api_pb2.py,sha256=uds7csRod6-2Hq3PehpeKJ82agfcfZc-fmKrQ4-01m0,310738
|
156
|
+
modal_proto/api_pb2.pyi,sha256=FBNlLVTt75Nq6G1JwnB_1nLz5WsK9XCOYoqNafXKSaA,413655
|
157
|
+
modal_proto/api_pb2_grpc.py,sha256=LlW5e2YKWPJS3lPYoJDyKjf1AxJSCCHi0DhupX05YyQ,235804
|
158
|
+
modal_proto/api_pb2_grpc.pyi,sha256=BM4068ohQqF1VUxvYdAYEVLgUebJVQvyrii-aXcel74,54910
|
159
|
+
modal_proto/modal_api_grpc.py,sha256=fYh-4oxTB8fB1NWrYm8S9-8umvKvAxJ58eNZ_e4B0WA,14556
|
158
160
|
modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
|
159
161
|
modal_proto/options.proto,sha256=a-siq4swVbZPfaFRXAipRZzGP2bq8OsdUvjlyzAeodQ,488
|
160
162
|
modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
|
@@ -165,10 +167,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
165
167
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
166
168
|
modal_version/__init__.py,sha256=kGya2ZlItX2zB7oHORs-wvP4PG8lg_mtbi1QIK3G6SQ,470
|
167
169
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
168
|
-
modal_version/_version_generated.py,sha256=
|
169
|
-
modal-0.72.
|
170
|
-
modal-0.72.
|
171
|
-
modal-0.72.
|
172
|
-
modal-0.72.
|
173
|
-
modal-0.72.
|
174
|
-
modal-0.72.
|
170
|
+
modal_version/_version_generated.py,sha256=Xs3RAy5-mYPVyOua-HPWlZv1-X6TY-gJwtgPIlQYUUk,149
|
171
|
+
modal-0.72.48.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
172
|
+
modal-0.72.48.dist-info/METADATA,sha256=S1s3imUuaXBcrEehulLXvb7XNrPF6uYx7EGuoTcI1Pg,2329
|
173
|
+
modal-0.72.48.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
174
|
+
modal-0.72.48.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
175
|
+
modal-0.72.48.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
176
|
+
modal-0.72.48.dist-info/RECORD,,
|