modal 0.68.24__py3-none-any.whl → 0.68.42__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/_traceback.py +6 -2
- modal/_utils/deprecation.py +89 -0
- modal/app.py +15 -34
- modal/app.pyi +6 -7
- modal/cli/app.py +1 -1
- modal/cli/dict.py +6 -2
- modal/cli/network_file_system.py +1 -1
- modal/cli/run.py +1 -0
- modal/cli/volume.py +1 -1
- modal/client.pyi +2 -2
- modal/cls.py +15 -9
- modal/cls.pyi +5 -5
- modal/config.py +2 -1
- modal/container_process.py +2 -1
- modal/dict.py +12 -17
- modal/dict.pyi +8 -12
- modal/environments.py +10 -7
- modal/environments.pyi +6 -6
- modal/exception.py +0 -54
- modal/file_io.py +54 -7
- modal/file_io.pyi +18 -8
- modal/file_pattern_matcher.py +48 -15
- modal/functions.py +11 -13
- modal/functions.pyi +18 -12
- modal/image.py +21 -20
- modal/image.pyi +16 -28
- modal/mount.py +7 -4
- modal/mount.pyi +4 -4
- modal/network_file_system.py +13 -19
- modal/network_file_system.pyi +8 -12
- modal/partial_function.py +2 -30
- modal/queue.py +12 -17
- modal/queue.pyi +8 -12
- modal/runner.py +2 -7
- modal/sandbox.py +25 -13
- modal/sandbox.pyi +21 -0
- modal/secret.py +7 -4
- modal/secret.pyi +5 -5
- modal/serving.py +1 -1
- modal/volume.py +12 -17
- modal/volume.pyi +8 -12
- {modal-0.68.24.dist-info → modal-0.68.42.dist-info}/METADATA +2 -2
- {modal-0.68.24.dist-info → modal-0.68.42.dist-info}/RECORD +51 -50
- modal_proto/api.proto +1 -1
- modal_proto/api_pb2.py +750 -750
- modal_proto/api_pb2.pyi +4 -4
- modal_version/_version_generated.py +1 -1
- {modal-0.68.24.dist-info → modal-0.68.42.dist-info}/LICENSE +0 -0
- {modal-0.68.24.dist-info → modal-0.68.42.dist-info}/WHEEL +0 -0
- {modal-0.68.24.dist-info → modal-0.68.42.dist-info}/entry_points.txt +0 -0
- {modal-0.68.24.dist-info → modal-0.68.42.dist-info}/top_level.txt +0 -0
modal/secret.py
CHANGED
@@ -9,6 +9,7 @@ from modal_proto import api_pb2
|
|
9
9
|
from ._resolver import Resolver
|
10
10
|
from ._runtime.execution_context import is_local
|
11
11
|
from ._utils.async_utils import synchronize_api
|
12
|
+
from ._utils.deprecation import renamed_parameter
|
12
13
|
from ._utils.grpc_utils import retry_transient_errors
|
13
14
|
from ._utils.name_utils import check_object_name
|
14
15
|
from .client import _Client
|
@@ -161,8 +162,9 @@ class _Secret(_Object, type_prefix="st"):
|
|
161
162
|
return _Secret._from_loader(_load, "Secret.from_dotenv()", hydrate_lazily=True)
|
162
163
|
|
163
164
|
@staticmethod
|
165
|
+
@renamed_parameter((2024, 12, 18), "label", "name")
|
164
166
|
def from_name(
|
165
|
-
|
167
|
+
name: str,
|
166
168
|
namespace=api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
|
167
169
|
environment_name: Optional[str] = None,
|
168
170
|
required_keys: list[
|
@@ -186,7 +188,7 @@ class _Secret(_Object, type_prefix="st"):
|
|
186
188
|
|
187
189
|
async def _load(self: _Secret, resolver: Resolver, existing_object_id: Optional[str]):
|
188
190
|
req = api_pb2.SecretGetOrCreateRequest(
|
189
|
-
deployment_name=
|
191
|
+
deployment_name=name,
|
190
192
|
namespace=namespace,
|
191
193
|
environment_name=_get_environment_name(environment_name, resolver),
|
192
194
|
required_keys=required_keys,
|
@@ -203,8 +205,9 @@ class _Secret(_Object, type_prefix="st"):
|
|
203
205
|
return _Secret._from_loader(_load, "Secret()", hydrate_lazily=True)
|
204
206
|
|
205
207
|
@staticmethod
|
208
|
+
@renamed_parameter((2024, 12, 18), "label", "name")
|
206
209
|
async def lookup(
|
207
|
-
|
210
|
+
name: str,
|
208
211
|
namespace=api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
|
209
212
|
client: Optional[_Client] = None,
|
210
213
|
environment_name: Optional[str] = None,
|
@@ -212,7 +215,7 @@ class _Secret(_Object, type_prefix="st"):
|
|
212
215
|
) -> "_Secret":
|
213
216
|
"""mdmd:hidden"""
|
214
217
|
obj = _Secret.from_name(
|
215
|
-
|
218
|
+
name, namespace=namespace, environment_name=environment_name, required_keys=required_keys
|
216
219
|
)
|
217
220
|
if client is None:
|
218
221
|
client = await _Client.from_env()
|
modal/secret.pyi
CHANGED
@@ -12,11 +12,11 @@ class _Secret(modal.object._Object):
|
|
12
12
|
def from_dotenv(path=None, *, filename=".env"): ...
|
13
13
|
@staticmethod
|
14
14
|
def from_name(
|
15
|
-
|
15
|
+
name: str, namespace=1, environment_name: typing.Optional[str] = None, required_keys: list[str] = []
|
16
16
|
) -> _Secret: ...
|
17
17
|
@staticmethod
|
18
18
|
async def lookup(
|
19
|
-
|
19
|
+
name: str,
|
20
20
|
namespace=1,
|
21
21
|
client: typing.Optional[modal.client._Client] = None,
|
22
22
|
environment_name: typing.Optional[str] = None,
|
@@ -42,13 +42,13 @@ class Secret(modal.object.Object):
|
|
42
42
|
def from_dotenv(path=None, *, filename=".env"): ...
|
43
43
|
@staticmethod
|
44
44
|
def from_name(
|
45
|
-
|
45
|
+
name: str, namespace=1, environment_name: typing.Optional[str] = None, required_keys: list[str] = []
|
46
46
|
) -> Secret: ...
|
47
47
|
|
48
48
|
class __lookup_spec(typing_extensions.Protocol):
|
49
49
|
def __call__(
|
50
50
|
self,
|
51
|
-
|
51
|
+
name: str,
|
52
52
|
namespace=1,
|
53
53
|
client: typing.Optional[modal.client.Client] = None,
|
54
54
|
environment_name: typing.Optional[str] = None,
|
@@ -56,7 +56,7 @@ class Secret(modal.object.Object):
|
|
56
56
|
) -> Secret: ...
|
57
57
|
async def aio(
|
58
58
|
self,
|
59
|
-
|
59
|
+
name: str,
|
60
60
|
namespace=1,
|
61
61
|
client: typing.Optional[modal.client.Client] = None,
|
62
62
|
environment_name: typing.Optional[str] = None,
|
modal/serving.py
CHANGED
@@ -11,12 +11,12 @@ from synchronicity.async_wrap import asynccontextmanager
|
|
11
11
|
from modal._output import OutputManager
|
12
12
|
|
13
13
|
from ._utils.async_utils import TaskContext, asyncify, synchronize_api, synchronizer
|
14
|
+
from ._utils.deprecation import deprecation_error
|
14
15
|
from ._utils.logger import logger
|
15
16
|
from ._watcher import watch
|
16
17
|
from .cli.import_refs import import_app
|
17
18
|
from .client import _Client
|
18
19
|
from .config import config
|
19
|
-
from .exception import deprecation_error
|
20
20
|
from .output import _get_output_manager, enable_output
|
21
21
|
from .runner import _run_app, serve_update
|
22
22
|
|
modal/volume.py
CHANGED
@@ -24,7 +24,7 @@ from grpclib import GRPCError, Status
|
|
24
24
|
from synchronicity.async_wrap import asynccontextmanager
|
25
25
|
|
26
26
|
import modal_proto.api_pb2
|
27
|
-
from modal.exception import VolumeUploadTimeoutError
|
27
|
+
from modal.exception import VolumeUploadTimeoutError
|
28
28
|
from modal_proto import api_pb2
|
29
29
|
|
30
30
|
from ._resolver import Resolver
|
@@ -36,6 +36,7 @@ from ._utils.blob_utils import (
|
|
36
36
|
get_file_upload_spec_from_fileobj,
|
37
37
|
get_file_upload_spec_from_path,
|
38
38
|
)
|
39
|
+
from ._utils.deprecation import deprecation_error, deprecation_warning, renamed_parameter
|
39
40
|
from ._utils.grpc_utils import retry_transient_errors
|
40
41
|
from ._utils.name_utils import check_object_name
|
41
42
|
from .client import _Client
|
@@ -134,17 +135,9 @@ class _Volume(_Object, type_prefix="vo"):
|
|
134
135
|
return self._lock
|
135
136
|
|
136
137
|
@staticmethod
|
137
|
-
|
138
|
-
"""mdmd:hidden"""
|
139
|
-
message = (
|
140
|
-
"`Volume.new` is deprecated."
|
141
|
-
" Please use `Volume.from_name` (for persisted) or `Volume.ephemeral` (for ephemeral) volumes instead."
|
142
|
-
)
|
143
|
-
deprecation_error((2024, 3, 20), message)
|
144
|
-
|
145
|
-
@staticmethod
|
138
|
+
@renamed_parameter((2024, 12, 18), "label", "name")
|
146
139
|
def from_name(
|
147
|
-
|
140
|
+
name: str,
|
148
141
|
namespace=api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
|
149
142
|
environment_name: Optional[str] = None,
|
150
143
|
create_if_missing: bool = False,
|
@@ -167,11 +160,11 @@ class _Volume(_Object, type_prefix="vo"):
|
|
167
160
|
pass
|
168
161
|
```
|
169
162
|
"""
|
170
|
-
check_object_name(
|
163
|
+
check_object_name(name, "Volume")
|
171
164
|
|
172
165
|
async def _load(self: _Volume, resolver: Resolver, existing_object_id: Optional[str]):
|
173
166
|
req = api_pb2.VolumeGetOrCreateRequest(
|
174
|
-
deployment_name=
|
167
|
+
deployment_name=name,
|
175
168
|
namespace=namespace,
|
176
169
|
environment_name=_get_environment_name(environment_name, resolver),
|
177
170
|
object_creation_type=(api_pb2.OBJECT_CREATION_TYPE_CREATE_IF_MISSING if create_if_missing else None),
|
@@ -219,8 +212,9 @@ class _Volume(_Object, type_prefix="vo"):
|
|
219
212
|
yield cls._new_hydrated(response.volume_id, client, None, is_another_app=True)
|
220
213
|
|
221
214
|
@staticmethod
|
215
|
+
@renamed_parameter((2024, 12, 18), "label", "name")
|
222
216
|
async def lookup(
|
223
|
-
|
217
|
+
name: str,
|
224
218
|
namespace=api_pb2.DEPLOYMENT_NAMESPACE_WORKSPACE,
|
225
219
|
client: Optional[_Client] = None,
|
226
220
|
environment_name: Optional[str] = None,
|
@@ -238,7 +232,7 @@ class _Volume(_Object, type_prefix="vo"):
|
|
238
232
|
```
|
239
233
|
"""
|
240
234
|
obj = _Volume.from_name(
|
241
|
-
|
235
|
+
name,
|
242
236
|
namespace=namespace,
|
243
237
|
environment_name=environment_name,
|
244
238
|
create_if_missing=create_if_missing,
|
@@ -506,8 +500,9 @@ class _Volume(_Object, type_prefix="vo"):
|
|
506
500
|
)
|
507
501
|
|
508
502
|
@staticmethod
|
509
|
-
|
510
|
-
|
503
|
+
@renamed_parameter((2024, 12, 18), "label", "name")
|
504
|
+
async def delete(name: str, client: Optional[_Client] = None, environment_name: Optional[str] = None):
|
505
|
+
obj = await _Volume.lookup(name, client=client, environment_name=environment_name)
|
511
506
|
req = api_pb2.VolumeDeleteRequest(volume_id=obj.object_id)
|
512
507
|
await retry_transient_errors(obj._client.stub.VolumeDelete, req)
|
513
508
|
|
modal/volume.pyi
CHANGED
@@ -38,10 +38,8 @@ class _Volume(modal.object._Object):
|
|
38
38
|
|
39
39
|
async def _get_lock(self): ...
|
40
40
|
@staticmethod
|
41
|
-
def new(): ...
|
42
|
-
@staticmethod
|
43
41
|
def from_name(
|
44
|
-
|
42
|
+
name: str,
|
45
43
|
namespace=1,
|
46
44
|
environment_name: typing.Optional[str] = None,
|
47
45
|
create_if_missing: bool = False,
|
@@ -57,7 +55,7 @@ class _Volume(modal.object._Object):
|
|
57
55
|
) -> typing.AsyncContextManager[_Volume]: ...
|
58
56
|
@staticmethod
|
59
57
|
async def lookup(
|
60
|
-
|
58
|
+
name: str,
|
61
59
|
namespace=1,
|
62
60
|
client: typing.Optional[modal.client._Client] = None,
|
63
61
|
environment_name: typing.Optional[str] = None,
|
@@ -85,7 +83,7 @@ class _Volume(modal.object._Object):
|
|
85
83
|
async def _instance_delete(self): ...
|
86
84
|
@staticmethod
|
87
85
|
async def delete(
|
88
|
-
|
86
|
+
name: str, client: typing.Optional[modal.client._Client] = None, environment_name: typing.Optional[str] = None
|
89
87
|
): ...
|
90
88
|
|
91
89
|
class _VolumeUploadContextManager:
|
@@ -133,11 +131,9 @@ class Volume(modal.object.Object):
|
|
133
131
|
|
134
132
|
_get_lock: ___get_lock_spec
|
135
133
|
|
136
|
-
@staticmethod
|
137
|
-
def new(): ...
|
138
134
|
@staticmethod
|
139
135
|
def from_name(
|
140
|
-
|
136
|
+
name: str,
|
141
137
|
namespace=1,
|
142
138
|
environment_name: typing.Optional[str] = None,
|
143
139
|
create_if_missing: bool = False,
|
@@ -155,7 +151,7 @@ class Volume(modal.object.Object):
|
|
155
151
|
class __lookup_spec(typing_extensions.Protocol):
|
156
152
|
def __call__(
|
157
153
|
self,
|
158
|
-
|
154
|
+
name: str,
|
159
155
|
namespace=1,
|
160
156
|
client: typing.Optional[modal.client.Client] = None,
|
161
157
|
environment_name: typing.Optional[str] = None,
|
@@ -164,7 +160,7 @@ class Volume(modal.object.Object):
|
|
164
160
|
) -> Volume: ...
|
165
161
|
async def aio(
|
166
162
|
self,
|
167
|
-
|
163
|
+
name: str,
|
168
164
|
namespace=1,
|
169
165
|
client: typing.Optional[modal.client.Client] = None,
|
170
166
|
environment_name: typing.Optional[str] = None,
|
@@ -263,13 +259,13 @@ class Volume(modal.object.Object):
|
|
263
259
|
class __delete_spec(typing_extensions.Protocol):
|
264
260
|
def __call__(
|
265
261
|
self,
|
266
|
-
|
262
|
+
name: str,
|
267
263
|
client: typing.Optional[modal.client.Client] = None,
|
268
264
|
environment_name: typing.Optional[str] = None,
|
269
265
|
): ...
|
270
266
|
async def aio(
|
271
267
|
self,
|
272
|
-
|
268
|
+
name: str,
|
273
269
|
client: typing.Optional[modal.client.Client] = None,
|
274
270
|
environment_name: typing.Optional[str] = None,
|
275
271
|
): ...
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: modal
|
3
|
-
Version: 0.68.
|
3
|
+
Version: 0.68.42
|
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.7)
|
25
25
|
Requires-Dist: toml
|
26
26
|
Requires-Dist: typer (>=0.9)
|
27
27
|
Requires-Dist: types-certifi
|
@@ -11,71 +11,71 @@ modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
|
|
11
11
|
modal/_resolver.py,sha256=TtowKu2LdZ7NpiYkSXs058BZ4ivY8KVYdchqLfREkiA,6775
|
12
12
|
modal/_resources.py,sha256=5qmcirXUI8dSH926nwkUaeX9H25mqYu9mXD_KuT79-o,1733
|
13
13
|
modal/_serialization.py,sha256=qPLH6OUEBas1CT-a6i5pOP1hPGt5AfKr9q7RMUTFOMc,18722
|
14
|
-
modal/_traceback.py,sha256=
|
14
|
+
modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
|
15
15
|
modal/_tunnel.py,sha256=o-jJhS4vQ6-XswDhHcJWGMZZmD03SC0e9i8fEu1JTjo,6310
|
16
16
|
modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
|
17
17
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
18
|
-
modal/app.py,sha256=
|
19
|
-
modal/app.pyi,sha256=
|
18
|
+
modal/app.py,sha256=JWefPs4yB70BKQwSZejB_4_muhxn63cC9UmnNvpQ9XY,45526
|
19
|
+
modal/app.pyi,sha256=FYPCEJNhof4YF6HIuNP_2yG6s2PgZnKW9tO1hFE6sfA,25194
|
20
20
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
21
21
|
modal/client.py,sha256=JAnd4-GCN093BwkvOFAK5a6iy5ycxofjpUncMxlrIMw,15253
|
22
|
-
modal/client.pyi,sha256=
|
22
|
+
modal/client.pyi,sha256=4DWFNIb933Dy-UuKJ37mbZWeoMUoSewFTsbVnd5HJKs,7280
|
23
23
|
modal/cloud_bucket_mount.py,sha256=G7T7jWLD0QkmrfKR75mSTwdUZ2xNfj7pkVqb4ipmxmI,5735
|
24
24
|
modal/cloud_bucket_mount.pyi,sha256=CEi7vrH3kDUF4LAy4qP6tfImy2UJuFRcRbsgRNM1wo8,1403
|
25
|
-
modal/cls.py,sha256=
|
26
|
-
modal/cls.pyi,sha256=
|
27
|
-
modal/config.py,sha256=
|
28
|
-
modal/container_process.py,sha256=
|
25
|
+
modal/cls.py,sha256=3hjb0JcoPjxKZNeK22f5rR43bZRBjoRI7_EMZXY7YrE,31172
|
26
|
+
modal/cls.pyi,sha256=ooDU2IaGgD5VQ3jDX2KCrqb3a91-AdKv8yKYSkjnW8Y,8230
|
27
|
+
modal/config.py,sha256=BzhZYUUwOmvVwf6x5kf0ywMC257s648dmuhsnB6g3gk,11041
|
28
|
+
modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
|
29
29
|
modal/container_process.pyi,sha256=dqtqBmyRpXXpRrDooESL6WBVU_1Rh6OG-66P2Hk9E5U,2666
|
30
|
-
modal/dict.py,sha256=
|
31
|
-
modal/dict.pyi,sha256=
|
32
|
-
modal/environments.py,sha256=
|
33
|
-
modal/environments.pyi,sha256=
|
34
|
-
modal/exception.py,sha256=
|
30
|
+
modal/dict.py,sha256=ei9jsA5iTj4UFGPJxTAed6vjd49W47ezDtj0koUmVts,12497
|
31
|
+
modal/dict.pyi,sha256=VmbzxltA2vFlIHZCxpNGtd-ieXwcUwdw3iyy3WCweqU,7115
|
32
|
+
modal/environments.py,sha256=wbv9ttFCbzATGfwcmvYiG608PfHovx0AQmawsg-jmic,6660
|
33
|
+
modal/environments.pyi,sha256=rF7oaaELoSNuoD6qImGnIbuGPtgWwR5SlcExyYJ61hQ,3515
|
34
|
+
modal/exception.py,sha256=GEV6xMnVnkle0gsFZVLB4B7cUMyw8HzVDvAvPr34ZV4,5185
|
35
35
|
modal/experimental.py,sha256=jFuNbwrNHos47viMB9q-cHJSvf2RDxDdoEcss9plaZE,2302
|
36
|
-
modal/file_io.py,sha256=
|
37
|
-
modal/file_io.pyi,sha256=
|
38
|
-
modal/file_pattern_matcher.py,sha256=
|
39
|
-
modal/functions.py,sha256
|
40
|
-
modal/functions.pyi,sha256=
|
36
|
+
modal/file_io.py,sha256=pDOFNQU5m-x-k3oJauck4fOp3bZ55Vc-_LvSaN5_Bow,16465
|
37
|
+
modal/file_io.pyi,sha256=GMhCCRyMftXYI3HqI9EdGPOx70CbCNi-VC5Sfy5TYnc,7631
|
38
|
+
modal/file_pattern_matcher.py,sha256=V6P74Vc7LAuBFe_uepIaZmoDJiuAvqjFibe0GcMJwxo,5119
|
39
|
+
modal/functions.py,sha256=-PHjDWuGBfoHYDiZc8eJtD2W9ka-c4jla2vHvA0z1fI,67821
|
40
|
+
modal/functions.pyi,sha256=snttn47K81lKhmrCLWNVZelZTDhNsbxtw4l1DlLDR74,25317
|
41
41
|
modal/gpu.py,sha256=r4rL6uH3UJIQthzYvfWauXNyh01WqCPtKZCmmSX1fd4,6881
|
42
|
-
modal/image.py,sha256=
|
43
|
-
modal/image.pyi,sha256=
|
42
|
+
modal/image.py,sha256=sv45bYaF5Jlmk8mQE3EDADYyXLi14hOe2CUM0Zb8Xao,82243
|
43
|
+
modal/image.pyi,sha256=VY_4HnDBhW8u_Zd3n-YBZ1H9idbTorWGwzsAzY7-B70,24213
|
44
44
|
modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
|
45
45
|
modal/io_streams.pyi,sha256=bCCVSxkMcosYd8O3PQDDwJw7TQ8JEcnYonLJ5t27TQs,4804
|
46
|
-
modal/mount.py,sha256=
|
47
|
-
modal/mount.pyi,sha256=
|
48
|
-
modal/network_file_system.py,sha256=
|
49
|
-
modal/network_file_system.pyi,sha256=
|
46
|
+
modal/mount.py,sha256=tlHjosr7aY52wtOvnZxiVXmBOBSC2JeAxqwSJCutQx0,29175
|
47
|
+
modal/mount.pyi,sha256=7dKl_JeVka3g4oKw7D-FFRU-Zpadt9LJEcfNUnhj540,10491
|
48
|
+
modal/network_file_system.py,sha256=INj1TfN_Fsmabmlte7anvey1epodjbMmjBW_TIJSST4,14406
|
49
|
+
modal/network_file_system.pyi,sha256=61M-sdWrtaRjmuNVsvusI6kf1Qw-jUOVXvEAeOkM8Aw,7751
|
50
50
|
modal/object.py,sha256=HZs3N59C6JxlMuPQWJYvrWV1FEEkH9txUovVDorVUbs,9763
|
51
51
|
modal/object.pyi,sha256=MO78H9yFSE5i1gExPEwyyQzLdlshkcGHN1aQ0ylyvq0,8802
|
52
52
|
modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
|
53
53
|
modal/parallel_map.py,sha256=4aoMXIrlG3wl5Ifk2YDNOQkXsGRsm6Xbfm6WtJ2t3WY,16002
|
54
54
|
modal/parallel_map.pyi,sha256=pOhT0P3DDYlwLx0fR3PTsecA7DI8uOdXC1N8i-ZkyOY,2328
|
55
|
-
modal/partial_function.py,sha256=
|
55
|
+
modal/partial_function.py,sha256=pDDNR6KTaIIPpuKQaoO1vgP83_LTwxMhtOn6sVRrmC8,27862
|
56
56
|
modal/partial_function.pyi,sha256=pO6kf8i5HVsZ7CF0z_KkzLk4Aeq7NJhFJ_VNIycRXaU,9260
|
57
57
|
modal/proxy.py,sha256=ZrOsuQP7dSZFq1OrIxalNnt0Zvsnp1h86Th679sSL40,1417
|
58
58
|
modal/proxy.pyi,sha256=UvygdOYneLTuoDY6hVaMNCyZ947Tmx93IdLjErUqkvM,368
|
59
59
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
|
-
modal/queue.py,sha256=
|
61
|
-
modal/queue.pyi,sha256=
|
60
|
+
modal/queue.py,sha256=zMUQtdAyqZzBg-2iAo3c3G54HLP7TEWfVhiQXLjewb4,18556
|
61
|
+
modal/queue.pyi,sha256=gGV97pWelSSYqMV9Bl4ys3mSP7q82fS71oqSWeAwyDE,9818
|
62
62
|
modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
|
63
|
-
modal/runner.py,sha256=
|
63
|
+
modal/runner.py,sha256=qfkB0OM97kb_-oP-D5KPj_jUwfd8ePUA3R_zLkjSTBQ,24586
|
64
64
|
modal/runner.pyi,sha256=BvMS1ZVzWSn8B8q0KnIZOJKPkN5L-i5b-USbV6SWWHQ,5177
|
65
65
|
modal/running_app.py,sha256=CshNvGDJtagOdKW54uYjY8HY73j2TpnsL9jkPFZAsfA,560
|
66
|
-
modal/sandbox.py,sha256=
|
67
|
-
modal/sandbox.pyi,sha256=
|
66
|
+
modal/sandbox.py,sha256=c-Qli3QJPN7bBQzsTk4iS51zurNlq--InZ2eRR-B6No,28106
|
67
|
+
modal/sandbox.pyi,sha256=k8_vHjN3oigxSCF13Cm2HfcSHuliGuSb8ryd3CGqwoA,19815
|
68
68
|
modal/schedule.py,sha256=0ZFpKs1bOxeo5n3HZjoL7OE2ktsb-_oGtq-WJEPO4tY,2615
|
69
69
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
70
|
-
modal/secret.py,sha256=
|
71
|
-
modal/secret.pyi,sha256=
|
72
|
-
modal/serving.py,sha256=
|
70
|
+
modal/secret.py,sha256=lebVTZi4fC9PXQpLVmsvgQLzy-2Kzxv1WBD0Jr2wsxQ,10117
|
71
|
+
modal/secret.pyi,sha256=0SyCyiYamr97htTmMjPZKvp5AQZKFF9GO_Ia2VcgrtA,2952
|
72
|
+
modal/serving.py,sha256=MnVuTsimN05LfNPxuJZ4sr5s1_BPUkIsOP_VC-bkp78,4464
|
73
73
|
modal/serving.pyi,sha256=ncV-9jY_vZYFnGs5ZnMb3ffrX8LmcLdIMHBC56xRbtE,1711
|
74
74
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
75
75
|
modal/token_flow.py,sha256=LcgSce_MSQ2p7j55DPwpVRpiAtCDe8GRSEwzO7muNR8,6774
|
76
76
|
modal/token_flow.pyi,sha256=gOYtYujrWt_JFZeiI8EmfahXPx5GCR5Na-VaPQcWgEY,1937
|
77
|
-
modal/volume.py,sha256=
|
78
|
-
modal/volume.pyi,sha256=
|
77
|
+
modal/volume.py,sha256=T-pLxCYqmqRO6OolpAXlPxomMu0RWjti2e4kUpaj2cQ,29229
|
78
|
+
modal/volume.pyi,sha256=eekb2dnAAwFK_NO9ciAOOTthl8NP1iAmMFrCGgjDA2k,11100
|
79
79
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
80
80
|
modal/_runtime/asgi.py,sha256=H68KAN8bz8Zp7EcRl2c_ite1Y3kP1MHvjQAf-uUpCx8,21691
|
81
81
|
modal/_runtime/container_io_manager.py,sha256=ctgyNFiHjq1brCrabXmlurkAXjnrCeWPRvTVa735vRw,44215
|
@@ -87,6 +87,7 @@ modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
|
|
87
87
|
modal/_utils/async_utils.py,sha256=9ubwMkwiDB4gzOYG2jL9j7Fs-5dxHjcifZe3r7JRg-k,25091
|
88
88
|
modal/_utils/blob_utils.py,sha256=N66LtZI8PpCkZ7maA7GLW5CAmYUoNJdG-GjaAUR4_NQ,14509
|
89
89
|
modal/_utils/bytes_io_segment_payload.py,sha256=uunxVJS4PE1LojF_UpURMzVK9GuvmYWRqQo_bxEj5TU,3385
|
90
|
+
modal/_utils/deprecation.py,sha256=dycySRBxyZf3ITzEqPNM6MxXTk9-0VVLA8oCPQ5j_Os,3426
|
90
91
|
modal/_utils/function_utils.py,sha256=LgcveUUb4XU_dWxtqgK_3ujZBvS3cGVzcDOkljyFZ2w,25066
|
91
92
|
modal/_utils/grpc_testing.py,sha256=H1zHqthv19eGPJz2HKXDyWXWGSqO4BRsxah3L5Xaa8A,8619
|
92
93
|
modal/_utils/grpc_utils.py,sha256=PPB5ay-vXencXNIWPVw5modr3EH7gfq2QPcO5YJ1lMU,7737
|
@@ -106,22 +107,22 @@ modal/_vendor/tblib.py,sha256=g1O7QUDd3sDoLd8YPFltkXkih7r_fyZOjgmGuligv3s,9722
|
|
106
107
|
modal/cli/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
107
108
|
modal/cli/_download.py,sha256=t6BXZwjTd9MgznDvbsV8rp0FZWggdzC-lUAGZU4xx1g,3984
|
108
109
|
modal/cli/_traceback.py,sha256=QlLa_iw3fAOA-mqCqjS8qAxvNT48J3YY3errtVVc2cw,7316
|
109
|
-
modal/cli/app.py,sha256=
|
110
|
+
modal/cli/app.py,sha256=HkwI38FZxx66jxiur4o_DRN3uwyO3L8hqgyo8oXKZxc,7726
|
110
111
|
modal/cli/config.py,sha256=pXPLmX0bIoV57rQNqIPK7V-yllj-GPRY4jiBO_EklGg,1667
|
111
112
|
modal/cli/container.py,sha256=nCySVD10VJPzmX3ghTsGmpxdYeVYYMW6ofjsyt2gQcM,3667
|
112
|
-
modal/cli/dict.py,sha256=
|
113
|
+
modal/cli/dict.py,sha256=HaEcjfll7i3Uj3Fg56aj4407if5UljsYfr6fIq-D2W8,4589
|
113
114
|
modal/cli/entry_point.py,sha256=aaNxFAqZcmtSjwzkYIA_Ba9CkL4cL4_i2gy5VjoXxkM,4228
|
114
115
|
modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
|
115
116
|
modal/cli/import_refs.py,sha256=wnqE5AMeyAN3IZmQvJCp54KRnJh8Nq_5fMqB6u6GEL8,9147
|
116
117
|
modal/cli/launch.py,sha256=uyI-ouGvYRjHLGxGQ2lYBZq32BiRT1i0L8ksz5iy7K8,2935
|
117
|
-
modal/cli/network_file_system.py,sha256=
|
118
|
+
modal/cli/network_file_system.py,sha256=o6VLTgN4xn5XUiNPBfxYec-5uWCgYrDmfFFLM1ZW_eE,8180
|
118
119
|
modal/cli/profile.py,sha256=rLXfjJObfPNjaZvNfHGIKqs7y9bGYyGe-K7V0w-Ni0M,3110
|
119
120
|
modal/cli/queues.py,sha256=MIh2OsliNE2QeL1erubfsRsNuG4fxqcqWA2vgIfQ4Mg,4494
|
120
|
-
modal/cli/run.py,sha256=
|
121
|
+
modal/cli/run.py,sha256=9SvPmBzB8ZZRaqUJc9LmL2tfT5OMiR4Ow0dLANVwuB8,17870
|
121
122
|
modal/cli/secret.py,sha256=uQpwYrMY98iMCWeZOQTcktOYhPTZ8IHnyealDc2CZqo,4206
|
122
123
|
modal/cli/token.py,sha256=mxSgOWakXG6N71hQb1ko61XAR9ZGkTMZD-Txn7gmTac,1924
|
123
124
|
modal/cli/utils.py,sha256=hZmjyzcPjDnQSkLvycZD2LhGdcsfdZshs_rOU78EpvI,3717
|
124
|
-
modal/cli/volume.py,sha256=
|
125
|
+
modal/cli/volume.py,sha256=Oxc8WGP8wm2a_S87bp-P4OnPwoT1wIYQhbgkCvvFIdI,9998
|
125
126
|
modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
126
127
|
modal/cli/programs/run_jupyter.py,sha256=RRr07CqZrStMbLdBM3PpzU6KM8t9FtLbdIPthg2-Mpw,2755
|
127
128
|
modal/cli/programs/vscode.py,sha256=acKvTUNA2uIGITKWYS9mkb_W8WUuNmvOSOvf1KBtUco,2479
|
@@ -146,10 +147,10 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
|
|
146
147
|
modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
|
147
148
|
modal_global_objects/mounts/python_standalone.py,sha256=SL_riIxpd8mP4i4CLDCWiFFNj0Ltknm9c_UIGfX5d60,1836
|
148
149
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
149
|
-
modal_proto/api.proto,sha256=
|
150
|
+
modal_proto/api.proto,sha256=Fdc1QR9kxirCiZW7o8fslrYd8vk-gR2dWOWj2uCbkHk,79553
|
150
151
|
modal_proto/api_grpc.py,sha256=DveC4ejFYEhCLiWbQShnmY31_FWGYU675Bmr7nHhsgs,101342
|
151
|
-
modal_proto/api_pb2.py,sha256=
|
152
|
-
modal_proto/api_pb2.pyi,sha256=
|
152
|
+
modal_proto/api_pb2.py,sha256=EwN_R_HDiLP0s61rpSRQ5r6Kwof_XiPtH-lqeX6gC9I,292335
|
153
|
+
modal_proto/api_pb2.pyi,sha256=Ggl_mfNlUQWPQaxDUMqeC4Rglf1xXSf4Kx8vIFPiXp8,390741
|
153
154
|
modal_proto/api_pb2_grpc.py,sha256=2PEP6JPOoTw2rDC5qYjLNuumP68ZwAouRhCoayisAhY,219162
|
154
155
|
modal_proto/api_pb2_grpc.pyi,sha256=uWtCxVEd0cFpOZ1oOGfZNO7Dv45OP4kp09jMnNyx9D4,51098
|
155
156
|
modal_proto/modal_api_grpc.py,sha256=-8mLby_om5MYo6yu1zA_hqhz0yLsQW7k2YWBVZW1iVs,13546
|
@@ -163,10 +164,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
163
164
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
164
165
|
modal_version/__init__.py,sha256=RT6zPoOdFO99u5Wcxxaoir4ZCuPTbQ22cvzFAXl3vUY,470
|
165
166
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
166
|
-
modal_version/_version_generated.py,sha256=
|
167
|
-
modal-0.68.
|
168
|
-
modal-0.68.
|
169
|
-
modal-0.68.
|
170
|
-
modal-0.68.
|
171
|
-
modal-0.68.
|
172
|
-
modal-0.68.
|
167
|
+
modal_version/_version_generated.py,sha256=a0PljflDY_DkAkO-G7eB-EomkggfZAf1AqEjBk9y6hY,149
|
168
|
+
modal-0.68.42.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
169
|
+
modal-0.68.42.dist-info/METADATA,sha256=3I3X8d0raDyeijHD8jRNhpSDTbLe-VXo-Cp3-sMnSM0,2329
|
170
|
+
modal-0.68.42.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
171
|
+
modal-0.68.42.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
172
|
+
modal-0.68.42.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
173
|
+
modal-0.68.42.dist-info/RECORD,,
|
modal_proto/api.proto
CHANGED
@@ -361,7 +361,7 @@ message AppHeartbeatRequest {
|
|
361
361
|
}
|
362
362
|
|
363
363
|
message AppLayout {
|
364
|
-
repeated Object
|
364
|
+
repeated Object objects = 1;
|
365
365
|
map<string, string> function_ids = 2; // tag -> function id
|
366
366
|
map<string, string> class_ids = 3; // tag -> class id
|
367
367
|
}
|