modal 0.72.38__py3-none-any.whl → 0.72.40__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/_object.py +27 -8
- modal/app.pyi +18 -14
- modal/client.pyi +16 -14
- modal/cls.pyi +6 -4
- modal/container_process.pyi +8 -6
- modal/dict.pyi +30 -28
- modal/file_io.pyi +30 -28
- modal/functions.py +2 -1
- modal/functions.pyi +48 -46
- modal/image.pyi +26 -20
- modal/io_streams.pyi +14 -12
- modal/mount.pyi +26 -24
- modal/network_file_system.pyi +25 -23
- modal/object.pyi +33 -25
- modal/parallel_map.pyi +10 -7
- modal/partial_function.pyi +43 -29
- modal/queue.pyi +24 -22
- modal/sandbox.py +2 -1
- modal/sandbox.pyi +28 -26
- modal/token_flow.pyi +6 -4
- modal/volume.pyi +34 -32
- {modal-0.72.38.dist-info → modal-0.72.40.dist-info}/METADATA +2 -2
- {modal-0.72.38.dist-info → modal-0.72.40.dist-info}/RECORD +35 -35
- modal_proto/api.proto +10 -3
- modal_proto/api_grpc.py +16 -0
- modal_proto/api_pb2.py +262 -244
- modal_proto/api_pb2.pyi +29 -7
- modal_proto/api_pb2_grpc.py +33 -0
- modal_proto/api_pb2_grpc.pyi +10 -0
- modal_proto/modal_api_grpc.py +1 -0
- modal_version/_version_generated.py +1 -1
- {modal-0.72.38.dist-info → modal-0.72.40.dist-info}/LICENSE +0 -0
- {modal-0.72.38.dist-info → modal-0.72.40.dist-info}/WHEEL +0 -0
- {modal-0.72.38.dist-info → modal-0.72.40.dist-info}/entry_points.txt +0 -0
- {modal-0.72.38.dist-info → modal-0.72.40.dist-info}/top_level.txt +0 -0
modal/volume.pyi
CHANGED
@@ -99,16 +99,16 @@ class _VolumeUploadContextManager:
|
|
99
99
|
_volume_id: str
|
100
100
|
_client: modal.client._Client
|
101
101
|
_force: bool
|
102
|
-
progress_cb:
|
102
|
+
progress_cb: collections.abc.Callable[..., typing.Any]
|
103
103
|
_upload_generators: list[
|
104
|
-
collections.abc.Generator[
|
104
|
+
collections.abc.Generator[collections.abc.Callable[[], modal._utils.blob_utils.FileUploadSpec], None, None]
|
105
105
|
]
|
106
106
|
|
107
107
|
def __init__(
|
108
108
|
self,
|
109
109
|
volume_id: str,
|
110
110
|
client: modal.client._Client,
|
111
|
-
progress_cb: typing.Optional[
|
111
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
112
112
|
force: bool = False,
|
113
113
|
): ...
|
114
114
|
async def __aenter__(self): ...
|
@@ -129,16 +129,18 @@ class _VolumeUploadContextManager:
|
|
129
129
|
self, file_spec: modal._utils.blob_utils.FileUploadSpec
|
130
130
|
) -> modal_proto.api_pb2.MountFile: ...
|
131
131
|
|
132
|
+
SUPERSELF = typing.TypeVar("SUPERSELF", covariant=True)
|
133
|
+
|
132
134
|
class Volume(modal.object.Object):
|
133
135
|
_lock: typing.Optional[asyncio.locks.Lock]
|
134
136
|
|
135
137
|
def __init__(self, *args, **kwargs): ...
|
136
138
|
|
137
|
-
class ___get_lock_spec(typing_extensions.Protocol):
|
139
|
+
class ___get_lock_spec(typing_extensions.Protocol[SUPERSELF]):
|
138
140
|
def __call__(self): ...
|
139
141
|
async def aio(self): ...
|
140
142
|
|
141
|
-
_get_lock: ___get_lock_spec
|
143
|
+
_get_lock: ___get_lock_spec[typing_extensions.Self]
|
142
144
|
|
143
145
|
@staticmethod
|
144
146
|
def from_name(
|
@@ -199,71 +201,71 @@ class Volume(modal.object.Object):
|
|
199
201
|
|
200
202
|
create_deployed: __create_deployed_spec
|
201
203
|
|
202
|
-
class ___do_reload_spec(typing_extensions.Protocol):
|
204
|
+
class ___do_reload_spec(typing_extensions.Protocol[SUPERSELF]):
|
203
205
|
def __call__(self, lock=True): ...
|
204
206
|
async def aio(self, lock=True): ...
|
205
207
|
|
206
|
-
_do_reload: ___do_reload_spec
|
208
|
+
_do_reload: ___do_reload_spec[typing_extensions.Self]
|
207
209
|
|
208
|
-
class __commit_spec(typing_extensions.Protocol):
|
210
|
+
class __commit_spec(typing_extensions.Protocol[SUPERSELF]):
|
209
211
|
def __call__(self): ...
|
210
212
|
async def aio(self): ...
|
211
213
|
|
212
|
-
commit: __commit_spec
|
214
|
+
commit: __commit_spec[typing_extensions.Self]
|
213
215
|
|
214
|
-
class __reload_spec(typing_extensions.Protocol):
|
216
|
+
class __reload_spec(typing_extensions.Protocol[SUPERSELF]):
|
215
217
|
def __call__(self): ...
|
216
218
|
async def aio(self): ...
|
217
219
|
|
218
|
-
reload: __reload_spec
|
220
|
+
reload: __reload_spec[typing_extensions.Self]
|
219
221
|
|
220
|
-
class __iterdir_spec(typing_extensions.Protocol):
|
222
|
+
class __iterdir_spec(typing_extensions.Protocol[SUPERSELF]):
|
221
223
|
def __call__(self, path: str, *, recursive: bool = True) -> typing.Iterator[FileEntry]: ...
|
222
224
|
def aio(self, path: str, *, recursive: bool = True) -> collections.abc.AsyncIterator[FileEntry]: ...
|
223
225
|
|
224
|
-
iterdir: __iterdir_spec
|
226
|
+
iterdir: __iterdir_spec[typing_extensions.Self]
|
225
227
|
|
226
|
-
class __listdir_spec(typing_extensions.Protocol):
|
228
|
+
class __listdir_spec(typing_extensions.Protocol[SUPERSELF]):
|
227
229
|
def __call__(self, path: str, *, recursive: bool = False) -> list[FileEntry]: ...
|
228
230
|
async def aio(self, path: str, *, recursive: bool = False) -> list[FileEntry]: ...
|
229
231
|
|
230
|
-
listdir: __listdir_spec
|
232
|
+
listdir: __listdir_spec[typing_extensions.Self]
|
231
233
|
|
232
|
-
class __read_file_spec(typing_extensions.Protocol):
|
234
|
+
class __read_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
233
235
|
def __call__(self, path: str) -> typing.Iterator[bytes]: ...
|
234
236
|
def aio(self, path: str) -> collections.abc.AsyncIterator[bytes]: ...
|
235
237
|
|
236
|
-
read_file: __read_file_spec
|
238
|
+
read_file: __read_file_spec[typing_extensions.Self]
|
237
239
|
|
238
|
-
class __read_file_into_fileobj_spec(typing_extensions.Protocol):
|
240
|
+
class __read_file_into_fileobj_spec(typing_extensions.Protocol[SUPERSELF]):
|
239
241
|
def __call__(self, path: str, fileobj: typing.IO[bytes]) -> int: ...
|
240
242
|
async def aio(self, path: str, fileobj: typing.IO[bytes]) -> int: ...
|
241
243
|
|
242
|
-
read_file_into_fileobj: __read_file_into_fileobj_spec
|
244
|
+
read_file_into_fileobj: __read_file_into_fileobj_spec[typing_extensions.Self]
|
243
245
|
|
244
|
-
class __remove_file_spec(typing_extensions.Protocol):
|
246
|
+
class __remove_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
245
247
|
def __call__(self, path: str, recursive: bool = False) -> None: ...
|
246
248
|
async def aio(self, path: str, recursive: bool = False) -> None: ...
|
247
249
|
|
248
|
-
remove_file: __remove_file_spec
|
250
|
+
remove_file: __remove_file_spec[typing_extensions.Self]
|
249
251
|
|
250
|
-
class __copy_files_spec(typing_extensions.Protocol):
|
252
|
+
class __copy_files_spec(typing_extensions.Protocol[SUPERSELF]):
|
251
253
|
def __call__(self, src_paths: collections.abc.Sequence[str], dst_path: str) -> None: ...
|
252
254
|
async def aio(self, src_paths: collections.abc.Sequence[str], dst_path: str) -> None: ...
|
253
255
|
|
254
|
-
copy_files: __copy_files_spec
|
256
|
+
copy_files: __copy_files_spec[typing_extensions.Self]
|
255
257
|
|
256
|
-
class __batch_upload_spec(typing_extensions.Protocol):
|
258
|
+
class __batch_upload_spec(typing_extensions.Protocol[SUPERSELF]):
|
257
259
|
def __call__(self, force: bool = False) -> VolumeUploadContextManager: ...
|
258
260
|
async def aio(self, force: bool = False) -> VolumeUploadContextManager: ...
|
259
261
|
|
260
|
-
batch_upload: __batch_upload_spec
|
262
|
+
batch_upload: __batch_upload_spec[typing_extensions.Self]
|
261
263
|
|
262
|
-
class ___instance_delete_spec(typing_extensions.Protocol):
|
264
|
+
class ___instance_delete_spec(typing_extensions.Protocol[SUPERSELF]):
|
263
265
|
def __call__(self): ...
|
264
266
|
async def aio(self): ...
|
265
267
|
|
266
|
-
_instance_delete: ___instance_delete_spec
|
268
|
+
_instance_delete: ___instance_delete_spec[typing_extensions.Self]
|
267
269
|
|
268
270
|
class __delete_spec(typing_extensions.Protocol):
|
269
271
|
def __call__(
|
@@ -305,16 +307,16 @@ class VolumeUploadContextManager:
|
|
305
307
|
_volume_id: str
|
306
308
|
_client: modal.client.Client
|
307
309
|
_force: bool
|
308
|
-
progress_cb:
|
310
|
+
progress_cb: collections.abc.Callable[..., typing.Any]
|
309
311
|
_upload_generators: list[
|
310
|
-
collections.abc.Generator[
|
312
|
+
collections.abc.Generator[collections.abc.Callable[[], modal._utils.blob_utils.FileUploadSpec], None, None]
|
311
313
|
]
|
312
314
|
|
313
315
|
def __init__(
|
314
316
|
self,
|
315
317
|
volume_id: str,
|
316
318
|
client: modal.client.Client,
|
317
|
-
progress_cb: typing.Optional[
|
319
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
318
320
|
force: bool = False,
|
319
321
|
): ...
|
320
322
|
def __enter__(self): ...
|
@@ -334,10 +336,10 @@ class VolumeUploadContextManager:
|
|
334
336
|
recursive: bool = True,
|
335
337
|
): ...
|
336
338
|
|
337
|
-
class ___upload_file_spec(typing_extensions.Protocol):
|
339
|
+
class ___upload_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
338
340
|
def __call__(self, file_spec: modal._utils.blob_utils.FileUploadSpec) -> modal_proto.api_pb2.MountFile: ...
|
339
341
|
async def aio(self, file_spec: modal._utils.blob_utils.FileUploadSpec) -> modal_proto.api_pb2.MountFile: ...
|
340
342
|
|
341
|
-
_upload_file: ___upload_file_spec
|
343
|
+
_upload_file: ___upload_file_spec[typing_extensions.Self]
|
342
344
|
|
343
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.40
|
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
|
@@ -5,7 +5,7 @@ modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpa
|
|
5
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=
|
8
|
+
modal/_object.py,sha256=cd2xAikp7jyqTY3P23OsWhnAcHg1LXO5o_GWDvNv8wE,11385
|
9
9
|
modal/_output.py,sha256=0fWX_KQwhER--U81ys16CL-pA5A-LN20C0EZjElKGJQ,25410
|
10
10
|
modal/_proxy_tunnel.py,sha256=gnKyCfmVB7x2d1A6c-JDysNIP3kEFxmXzhcXhPrzPn0,1906
|
11
11
|
modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
|
@@ -17,56 +17,56 @@ modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
|
|
17
17
|
modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
|
18
18
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
19
19
|
modal/app.py,sha256=UOuqlCKlFAjOXCacXmoEMM90FnqFwPRXUhLh0Gi6xzg,45344
|
20
|
-
modal/app.pyi,sha256=
|
20
|
+
modal/app.pyi,sha256=aZJkeqsnsv72R7OTLXcifom0c-NBU6xgVhRc9yEt9nE,25760
|
21
21
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
22
22
|
modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
|
23
|
-
modal/client.pyi,sha256
|
23
|
+
modal/client.pyi,sha256=xl94saFMUm-_Ws2SvbFvsGgjR2X40RHPErCM7ZZN_Rw,7593
|
24
24
|
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
25
25
|
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
26
26
|
modal/cls.py,sha256=xHgZZAmymplw0I2YZGAA8raBboixdNKKTrnsxQZI7G8,32159
|
27
|
-
modal/cls.pyi,sha256=
|
27
|
+
modal/cls.pyi,sha256=LrX2YVbcRqSKioOtXIMT9NShe4gaVYpDKt16SDZHh5s,8966
|
28
28
|
modal/config.py,sha256=BzhZYUUwOmvVwf6x5kf0ywMC257s648dmuhsnB6g3gk,11041
|
29
29
|
modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
|
30
|
-
modal/container_process.pyi,sha256=
|
30
|
+
modal/container_process.pyi,sha256=Hf0J5JyDdCCXBJSKx6gvkPOo0XrztCm78xzxamtzUjQ,2828
|
31
31
|
modal/dict.py,sha256=lKxvBcbcFZRARiqfolyRUW08x3RcozWL3MZuW2-Eu4U,12498
|
32
|
-
modal/dict.pyi,sha256=
|
32
|
+
modal/dict.pyi,sha256=kKb0Kc6RUabtQ5Hwslg_vwL_OIrwIAJ2NXrJTepTtp4,7684
|
33
33
|
modal/environments.py,sha256=20doFhRnm1fae30LMOp8hSYbIfR7yFZTtbLdo5PrSj4,6661
|
34
34
|
modal/environments.pyi,sha256=RXE3slyEr9tWpfS84Fj7iUzNJy-SujlqWOQTE8A4Qaw,3537
|
35
35
|
modal/exception.py,sha256=4JyO-SACaLNDe2QC48EjsK8GMkZ8AgEurZ8j1YdRu8E,5263
|
36
36
|
modal/experimental.py,sha256=H9FXT3kshbjPLovshT10DicyOkGFrPqILy-qdTX-P7s,4015
|
37
37
|
modal/experimental.pyi,sha256=24tIYu_w9RLwFrz1cIsgYuqmDCtV8eg6-bQNz3zjhDo,939
|
38
38
|
modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
|
39
|
-
modal/file_io.pyi,sha256=
|
39
|
+
modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
|
40
40
|
modal/file_pattern_matcher.py,sha256=dSo7BMQGZBAuoBFOX-e_72HxmF3FLzjQlEtnGtJiaD4,6506
|
41
|
-
modal/functions.py,sha256=
|
42
|
-
modal/functions.pyi,sha256=
|
41
|
+
modal/functions.py,sha256=dUzTocLsL-Huw5dwqs8HCksiOqvGHSTiwnZJOlAluAA,68601
|
42
|
+
modal/functions.pyi,sha256=lX3zZwIzbHXpmJA5QFki6ozaK3bdrdP-AM91_NFBimg,26301
|
43
43
|
modal/gpu.py,sha256=rcBwbE-_e2hEUr3VJbr1EgQDRb6aieJKx6G2oQdyBhE,7462
|
44
44
|
modal/image.py,sha256=leeY7fLfFjS0IqTi3D4cRxIDOb80BPtb3jsQfqvVJ8c,90912
|
45
|
-
modal/image.pyi,sha256=
|
45
|
+
modal/image.pyi,sha256=QMKS6E3CsZr5DoyNqGpcJPBYJTJZSvtAQIsAhPVd_E4,26347
|
46
46
|
modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
|
47
|
-
modal/io_streams.pyi,sha256=
|
47
|
+
modal/io_streams.pyi,sha256=bJ7ZLmSmJ0nKoa6r4FJpbqvzdUVa0lEe0Fa-MMpMezU,5071
|
48
48
|
modal/mount.py,sha256=LoAKUM4iHqXDpTRoDY0RDa7LRfCXnSydHxNTuv75i38,31799
|
49
|
-
modal/mount.pyi,sha256=
|
49
|
+
modal/mount.pyi,sha256=dvdr4joSpW7oKnKyg9eDD0obFfekwZtW65j4NEomivQ,12523
|
50
50
|
modal/network_file_system.py,sha256=Jcr5Whar0MgA2YItJLJWmzHDnkkDlcOzO63TRkA64zA,14407
|
51
|
-
modal/network_file_system.pyi,sha256=
|
51
|
+
modal/network_file_system.pyi,sha256=4N3eqMbTSlqmS8VV_aJK-uvrgJC8xnf_YtW5FHfRfc8,8156
|
52
52
|
modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
|
53
|
-
modal/object.pyi,sha256=
|
53
|
+
modal/object.pyi,sha256=kyJkRQcVv3ct7zSAxvvXcuhBVeH914v80uSlqeS7cA4,5632
|
54
54
|
modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
|
55
55
|
modal/parallel_map.py,sha256=POBTyiWabe2e4qBNlsjjksiu1AAPEsNqI-mM8cgNFco,16042
|
56
|
-
modal/parallel_map.pyi,sha256=
|
56
|
+
modal/parallel_map.pyi,sha256=0ltjcIpPUqPGGOWmHqzCfBu5y3ISjRZDrqOJhiNhfYk,2522
|
57
57
|
modal/partial_function.py,sha256=q93tHLpHhDYJK3Ok4dhrUOtHMoiPCwTtLyytr5I3wOM,28375
|
58
|
-
modal/partial_function.pyi,sha256=
|
58
|
+
modal/partial_function.pyi,sha256=pXB6u36SX1C0KsxBnyu7zDXDrV0DbjZJn4sb37_kilE,9817
|
59
59
|
modal/proxy.py,sha256=NrOevrWxG3G7-zlyRzG6BcIvop7AWLeyahZxitbBaOk,1418
|
60
60
|
modal/proxy.pyi,sha256=1OEKIVUyC-xb7fHMzngakQso0nTsK60TVhXtlcMj6Wk,390
|
61
61
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
62
|
modal/queue.py,sha256=HPnyJuX-THDEl2ak-xqf2lxYJMiQw4e37y4vHz6FRCg,18557
|
63
|
-
modal/queue.pyi,sha256=
|
63
|
+
modal/queue.pyi,sha256=sgvELCK4bJXMZIZw7gllooGFZNipGjI3BT4rmUuyD9M,10282
|
64
64
|
modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
|
65
65
|
modal/runner.py,sha256=0SCMgKO8lZ9W1C7le1EcgViKERMXpi_-QBd6PF_MH0Q,24450
|
66
66
|
modal/runner.pyi,sha256=YmP4EOCNjjkwSIPi2Gl6hF_ji_ytkxz9dw3iB9KXaOI,5275
|
67
67
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
68
|
-
modal/sandbox.py,sha256=
|
69
|
-
modal/sandbox.pyi,sha256=
|
68
|
+
modal/sandbox.py,sha256=kxcYmCcxRBI1GIfThwWufdLXjusry9fXR6ee2czMtUI,28998
|
69
|
+
modal/sandbox.pyi,sha256=XtiDHYa4HOooyuEPmKFwEqO58AJBJVTceO_1HQyDwII,21343
|
70
70
|
modal/schedule.py,sha256=0ZFpKs1bOxeo5n3HZjoL7OE2ktsb-_oGtq-WJEPO4tY,2615
|
71
71
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
72
72
|
modal/secret.py,sha256=XTqrpR4rnkuUb-bth3qM_xxPqqEWorSoN9qDwjWRcXo,10118
|
@@ -75,9 +75,9 @@ modal/serving.py,sha256=MnVuTsimN05LfNPxuJZ4sr5s1_BPUkIsOP_VC-bkp78,4464
|
|
75
75
|
modal/serving.pyi,sha256=ncV-9jY_vZYFnGs5ZnMb3ffrX8LmcLdIMHBC56xRbtE,1711
|
76
76
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
77
77
|
modal/token_flow.py,sha256=LcgSce_MSQ2p7j55DPwpVRpiAtCDe8GRSEwzO7muNR8,6774
|
78
|
-
modal/token_flow.pyi,sha256=
|
78
|
+
modal/token_flow.pyi,sha256=0XV3d-9CGQL3qjPdw3RgwIFVqqxo8Z-u044_mkgAM3o,2064
|
79
79
|
modal/volume.py,sha256=DdM9NhqNkqrk4BbAZdAgzI1jZws7NN2tYANO4OuM8hQ,29675
|
80
|
-
modal/volume.pyi,sha256=
|
80
|
+
modal/volume.pyi,sha256=kTsXarphjZILXci84LQy7EyC84eXUs5-7D62IM5q3eE,12491
|
81
81
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
82
82
|
modal/_runtime/asgi.py,sha256=c4hmaMW1pLo-cm7ouriJjieuFm4ZF6D2LMy0638sfOs,22139
|
83
83
|
modal/_runtime/container_io_manager.py,sha256=drb-cY78h8P9Krzmmjex7uZlSSocniEF5cIXmUcvGnY,43145
|
@@ -150,13 +150,13 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
|
|
150
150
|
modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
|
151
151
|
modal_global_objects/mounts/python_standalone.py,sha256=pEML5GaV2_0ahci_1vpfc_FnySpsfi2fhYmFF5I7IiQ,1837
|
152
152
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
153
|
-
modal_proto/api.proto,sha256=
|
154
|
-
modal_proto/api_grpc.py,sha256=
|
155
|
-
modal_proto/api_pb2.py,sha256=
|
156
|
-
modal_proto/api_pb2.pyi,sha256=
|
157
|
-
modal_proto/api_pb2_grpc.py,sha256=
|
158
|
-
modal_proto/api_pb2_grpc.pyi,sha256=
|
159
|
-
modal_proto/modal_api_grpc.py,sha256=
|
153
|
+
modal_proto/api.proto,sha256=LssC9ZjdsupPRE7t0SKFA6EU_DnT7LkYp1WKifoIdcA,85038
|
154
|
+
modal_proto/api_grpc.py,sha256=_YeTxy_4EyqC4jp9eBsJWnziGRafK5c61kcvdWpJXRY,109089
|
155
|
+
modal_proto/api_pb2.py,sha256=Hhv7d0xXQylnVkC0vt6q6i9sBmlTVQPrNx6EkTAQOEA,310691
|
156
|
+
modal_proto/api_pb2.pyi,sha256=jk022thSxrsd7FjMUgSrKjeY0vWSWVyxGZYg4Y9kf28,413485
|
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
|
160
160
|
modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
|
161
161
|
modal_proto/options.proto,sha256=a-siq4swVbZPfaFRXAipRZzGP2bq8OsdUvjlyzAeodQ,488
|
162
162
|
modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
|
@@ -167,10 +167,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
167
167
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
168
168
|
modal_version/__init__.py,sha256=kGya2ZlItX2zB7oHORs-wvP4PG8lg_mtbi1QIK3G6SQ,470
|
169
169
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
170
|
-
modal_version/_version_generated.py,sha256=
|
171
|
-
modal-0.72.
|
172
|
-
modal-0.72.
|
173
|
-
modal-0.72.
|
174
|
-
modal-0.72.
|
175
|
-
modal-0.72.
|
176
|
-
modal-0.72.
|
170
|
+
modal_version/_version_generated.py,sha256=meSqH7Kw-m46qt85xA7i4_q0XhMPK7dPtlT3wONBKbk,149
|
171
|
+
modal-0.72.40.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
172
|
+
modal-0.72.40.dist-info/METADATA,sha256=SFz3y0BJe_KldBdzNMMNjoOkk63Rg9BeUL_Bt7aC3hQ,2329
|
173
|
+
modal-0.72.40.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
174
|
+
modal-0.72.40.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
175
|
+
modal-0.72.40.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
176
|
+
modal-0.72.40.dist-info/RECORD,,
|
modal_proto/api.proto
CHANGED
@@ -2318,15 +2318,21 @@ message SandboxListResponse {
|
|
2318
2318
|
}
|
2319
2319
|
|
2320
2320
|
message SandboxRestoreRequest {
|
2321
|
-
string
|
2322
|
-
string snapshot_id = 2;
|
2323
|
-
string environment_name = 3;
|
2321
|
+
string snapshot_id = 1;
|
2324
2322
|
}
|
2325
2323
|
|
2326
2324
|
message SandboxRestoreResponse {
|
2327
2325
|
string sandbox_id = 1;
|
2328
2326
|
}
|
2329
2327
|
|
2328
|
+
message SandboxSnapshotFromIdRequest {
|
2329
|
+
string snapshot_id = 1;
|
2330
|
+
}
|
2331
|
+
|
2332
|
+
message SandboxSnapshotFromIdResponse {
|
2333
|
+
string snapshot_id = 1;
|
2334
|
+
}
|
2335
|
+
|
2330
2336
|
message SandboxSnapshotFsRequest {
|
2331
2337
|
string sandbox_id = 1;
|
2332
2338
|
float timeout = 2;
|
@@ -2982,6 +2988,7 @@ service ModalClient {
|
|
2982
2988
|
rpc SandboxList(SandboxListRequest) returns (SandboxListResponse);
|
2983
2989
|
rpc SandboxRestore(SandboxRestoreRequest) returns (SandboxRestoreResponse);
|
2984
2990
|
rpc SandboxSnapshot(SandboxSnapshotRequest) returns (SandboxSnapshotResponse);
|
2991
|
+
rpc SandboxSnapshotFromId(SandboxSnapshotFromIdRequest) returns (SandboxSnapshotFromIdResponse);
|
2985
2992
|
rpc SandboxSnapshotFs(SandboxSnapshotFsRequest) returns (SandboxSnapshotFsResponse);
|
2986
2993
|
rpc SandboxSnapshotWait(SandboxSnapshotWaitRequest) returns (SandboxSnapshotWaitResponse);
|
2987
2994
|
rpc SandboxStdinWrite(SandboxStdinWriteRequest) returns (SandboxStdinWriteResponse);
|
modal_proto/api_grpc.py
CHANGED
@@ -426,6 +426,10 @@ class ModalClientBase(abc.ABC):
|
|
426
426
|
async def SandboxSnapshot(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotRequest, modal_proto.api_pb2.SandboxSnapshotResponse]') -> None:
|
427
427
|
pass
|
428
428
|
|
429
|
+
@abc.abstractmethod
|
430
|
+
async def SandboxSnapshotFromId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFromIdRequest, modal_proto.api_pb2.SandboxSnapshotFromIdResponse]') -> None:
|
431
|
+
pass
|
432
|
+
|
429
433
|
@abc.abstractmethod
|
430
434
|
async def SandboxSnapshotFs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFsRequest, modal_proto.api_pb2.SandboxSnapshotFsResponse]') -> None:
|
431
435
|
pass
|
@@ -1196,6 +1200,12 @@ class ModalClientBase(abc.ABC):
|
|
1196
1200
|
modal_proto.api_pb2.SandboxSnapshotRequest,
|
1197
1201
|
modal_proto.api_pb2.SandboxSnapshotResponse,
|
1198
1202
|
),
|
1203
|
+
'/modal.client.ModalClient/SandboxSnapshotFromId': grpclib.const.Handler(
|
1204
|
+
self.SandboxSnapshotFromId,
|
1205
|
+
grpclib.const.Cardinality.UNARY_UNARY,
|
1206
|
+
modal_proto.api_pb2.SandboxSnapshotFromIdRequest,
|
1207
|
+
modal_proto.api_pb2.SandboxSnapshotFromIdResponse,
|
1208
|
+
),
|
1199
1209
|
'/modal.client.ModalClient/SandboxSnapshotFs': grpclib.const.Handler(
|
1200
1210
|
self.SandboxSnapshotFs,
|
1201
1211
|
grpclib.const.Cardinality.UNARY_UNARY,
|
@@ -2048,6 +2058,12 @@ class ModalClientStub:
|
|
2048
2058
|
modal_proto.api_pb2.SandboxSnapshotRequest,
|
2049
2059
|
modal_proto.api_pb2.SandboxSnapshotResponse,
|
2050
2060
|
)
|
2061
|
+
self.SandboxSnapshotFromId = grpclib.client.UnaryUnaryMethod(
|
2062
|
+
channel,
|
2063
|
+
'/modal.client.ModalClient/SandboxSnapshotFromId',
|
2064
|
+
modal_proto.api_pb2.SandboxSnapshotFromIdRequest,
|
2065
|
+
modal_proto.api_pb2.SandboxSnapshotFromIdResponse,
|
2066
|
+
)
|
2051
2067
|
self.SandboxSnapshotFs = grpclib.client.UnaryUnaryMethod(
|
2052
2068
|
channel,
|
2053
2069
|
'/modal.client.ModalClient/SandboxSnapshotFs',
|