modal 1.1.5.dev55__py3-none-any.whl → 1.1.5.dev57__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 modal might be problematic. Click here for more details.
- modal/_runtime/container_io_manager.py +4 -1
- modal/client.pyi +2 -2
- modal/experimental/__init__.py +25 -0
- modal/functions.pyi +6 -6
- {modal-1.1.5.dev55.dist-info → modal-1.1.5.dev57.dist-info}/METADATA +1 -1
- {modal-1.1.5.dev55.dist-info → modal-1.1.5.dev57.dist-info}/RECORD +11 -11
- modal_version/__init__.py +1 -1
- {modal-1.1.5.dev55.dist-info → modal-1.1.5.dev57.dist-info}/WHEEL +0 -0
- {modal-1.1.5.dev55.dist-info → modal-1.1.5.dev57.dist-info}/entry_points.txt +0 -0
- {modal-1.1.5.dev55.dist-info → modal-1.1.5.dev57.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.5.dev55.dist-info → modal-1.1.5.dev57.dist-info}/top_level.txt +0 -0
|
@@ -915,9 +915,12 @@ class _ContainerIOManager:
|
|
|
915
915
|
|
|
916
916
|
serialized_tb, tb_line_cache = pickle_traceback(exc, self.task_id)
|
|
917
917
|
|
|
918
|
+
data_or_blob = await format_blob_data(pickle_exception(exc), self._client.stub)
|
|
918
919
|
result = api_pb2.GenericResult(
|
|
919
920
|
status=api_pb2.GenericResult.GENERIC_STATUS_FAILURE,
|
|
920
|
-
|
|
921
|
+
**data_or_blob,
|
|
922
|
+
# TODO: there is no way to communicate the data format here
|
|
923
|
+
# since it usually goes on the envelope outside of GenericResult
|
|
921
924
|
exception=repr(exc),
|
|
922
925
|
traceback="".join(traceback.format_exception(type(exc), exc, exc.__traceback__)),
|
|
923
926
|
serialized_tb=serialized_tb or b"",
|
modal/client.pyi
CHANGED
|
@@ -33,7 +33,7 @@ class _Client:
|
|
|
33
33
|
server_url: str,
|
|
34
34
|
client_type: int,
|
|
35
35
|
credentials: typing.Optional[tuple[str, str]],
|
|
36
|
-
version: str = "1.1.5.
|
|
36
|
+
version: str = "1.1.5.dev57",
|
|
37
37
|
):
|
|
38
38
|
"""mdmd:hidden
|
|
39
39
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -164,7 +164,7 @@ class Client:
|
|
|
164
164
|
server_url: str,
|
|
165
165
|
client_type: int,
|
|
166
166
|
credentials: typing.Optional[tuple[str, str]],
|
|
167
|
-
version: str = "1.1.5.
|
|
167
|
+
version: str = "1.1.5.dev57",
|
|
168
168
|
):
|
|
169
169
|
"""mdmd:hidden
|
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
modal/experimental/__init__.py
CHANGED
|
@@ -384,3 +384,28 @@ async def update_autoscaler(
|
|
|
384
384
|
|
|
385
385
|
request = api_pb2.FunctionUpdateSchedulingParamsRequest(function_id=f.object_id, settings=settings)
|
|
386
386
|
await retry_transient_errors(client.stub.FunctionUpdateSchedulingParams, request)
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
@synchronizer.create_blocking
|
|
390
|
+
async def image_delete(
|
|
391
|
+
image_id: str,
|
|
392
|
+
*,
|
|
393
|
+
client: Optional[_Client] = None,
|
|
394
|
+
) -> None:
|
|
395
|
+
"""Delete an Image by its ID.
|
|
396
|
+
|
|
397
|
+
Deletion is irreversible and will prevent Apps from using the Image.
|
|
398
|
+
|
|
399
|
+
This is an experimental interface for a feature that we will be adding to
|
|
400
|
+
the main Image class. The stable form of this interface may look different.
|
|
401
|
+
|
|
402
|
+
Note: When building an Image, each chained method call will create an
|
|
403
|
+
intermediate Image layer, each with its own ID. Deleting an Image will not
|
|
404
|
+
delete any of its intermediate layers, only the image identified by the
|
|
405
|
+
provided ID.
|
|
406
|
+
"""
|
|
407
|
+
if client is None:
|
|
408
|
+
client = await _Client.from_env()
|
|
409
|
+
|
|
410
|
+
req = api_pb2.ImageDeleteRequest(image_id=image_id)
|
|
411
|
+
await retry_transient_errors(client.stub.ImageDelete, req)
|
modal/functions.pyi
CHANGED
|
@@ -450,7 +450,7 @@ class Function(
|
|
|
450
450
|
|
|
451
451
|
_call_generator: ___call_generator_spec[typing_extensions.Self]
|
|
452
452
|
|
|
453
|
-
class __remote_spec(typing_extensions.Protocol[
|
|
453
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
|
454
454
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
|
455
455
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
|
456
456
|
...
|
|
@@ -459,7 +459,7 @@ class Function(
|
|
|
459
459
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
|
460
460
|
...
|
|
461
461
|
|
|
462
|
-
remote: __remote_spec[modal._functions.
|
|
462
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
|
|
463
463
|
|
|
464
464
|
class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
465
465
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
|
@@ -486,7 +486,7 @@ class Function(
|
|
|
486
486
|
"""
|
|
487
487
|
...
|
|
488
488
|
|
|
489
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
|
489
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
|
490
490
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
491
491
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
|
492
492
|
|
|
@@ -510,7 +510,7 @@ class Function(
|
|
|
510
510
|
...
|
|
511
511
|
|
|
512
512
|
_experimental_spawn: ___experimental_spawn_spec[
|
|
513
|
-
modal._functions.
|
|
513
|
+
modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
|
|
514
514
|
]
|
|
515
515
|
|
|
516
516
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
|
|
@@ -519,7 +519,7 @@ class Function(
|
|
|
519
519
|
|
|
520
520
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
|
|
521
521
|
|
|
522
|
-
class __spawn_spec(typing_extensions.Protocol[
|
|
522
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
|
523
523
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
524
524
|
"""Calls the function with the given arguments, without waiting for the results.
|
|
525
525
|
|
|
@@ -540,7 +540,7 @@ class Function(
|
|
|
540
540
|
"""
|
|
541
541
|
...
|
|
542
542
|
|
|
543
|
-
spawn: __spawn_spec[modal._functions.
|
|
543
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
|
|
544
544
|
|
|
545
545
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
|
|
546
546
|
"""Return the inner Python object wrapped by this Modal Function."""
|
|
@@ -22,7 +22,7 @@ modal/app.py,sha256=RRUz2NjAWIQLHtU2IEslOlnIOCxPiWts3IP3rTFArkY,49635
|
|
|
22
22
|
modal/app.pyi,sha256=CDp_rlX3hBuFdv9VRsKvNKCgu_hS2IO2uNU5qhzmXps,44719
|
|
23
23
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
|
24
24
|
modal/client.py,sha256=kyAIVB3Ay-XKJizQ_1ufUFB__EagV0MLmHJpyYyJ7J0,18636
|
|
25
|
-
modal/client.pyi,sha256=
|
|
25
|
+
modal/client.pyi,sha256=fbSTgJH7RaWSw83ZpBwdciGYiF7YrKIYyiBHB6lpMII,15831
|
|
26
26
|
modal/cloud_bucket_mount.py,sha256=I2GRXYhOWLIz2kJZjXu75jAm9EJkBNcutGc6jR2ReUw,5928
|
|
27
27
|
modal/cloud_bucket_mount.pyi,sha256=VuUOipMIHqFXMkD-3g2bsoqpSxV5qswlFHDOqPQzYAo,7405
|
|
28
28
|
modal/cls.py,sha256=R1uLQbdqWRRjvxs0I57a4hZZELZkBVCxOKxvKryU5_s,41639
|
|
@@ -39,7 +39,7 @@ modal/file_io.py,sha256=OSKr77TujcXGJW1iikzYiHckLSmv07QBgBHcxxYEkoI,21456
|
|
|
39
39
|
modal/file_io.pyi,sha256=xtO6Glf_BFwDE7QiQQo24QqcMf_Vv-iz7WojcGVlLBU,15932
|
|
40
40
|
modal/file_pattern_matcher.py,sha256=A_Kdkej6q7YQyhM_2-BvpFmPqJ0oHb54B6yf9VqvPVE,8116
|
|
41
41
|
modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
|
|
42
|
-
modal/functions.pyi,sha256=
|
|
42
|
+
modal/functions.pyi,sha256=9hHRHIkzRtaUWtAHZEmGSUmufyPfgB1JK0kgBipfbys,39597
|
|
43
43
|
modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
|
|
44
44
|
modal/image.py,sha256=pCiIeDt-YDpzBZ7_uqPcuizRniZYG34Z_NDMCsIIjas,108084
|
|
45
45
|
modal/image.pyi,sha256=ZNp48mVPzcQ6XNvxin1iO5XrZ89vfEZvU1Bi-V57jq0,76835
|
|
@@ -82,7 +82,7 @@ modal/volume.py,sha256=bPC8632-LyeLOjJu2fKOFyod0QG7Hd5bb-UIJ5syCjo,53303
|
|
|
82
82
|
modal/volume.pyi,sha256=5VppIgoqoJqpivESYt5_oWgVTL__zlmpNZkOPk43JF8,54443
|
|
83
83
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
|
84
84
|
modal/_runtime/asgi.py,sha256=AOcduIlijmlxhXVWo7AIUhigo-bqm6nDkHj4Q4JLy6o,22607
|
|
85
|
-
modal/_runtime/container_io_manager.py,sha256=
|
|
85
|
+
modal/_runtime/container_io_manager.py,sha256=6RnUl7-jizlSdo1S5ZG7cYG6XxdyAo6rXxmsDyRtW-8,52014
|
|
86
86
|
modal/_runtime/container_io_manager.pyi,sha256=GDNLirCcPMRc6gckInYKmGmJZY3LNcgUVXKftt9P9jI,23493
|
|
87
87
|
modal/_runtime/execution_context.py,sha256=AYrNQRHHXEqX2MwMf8zxelKZnYf25RE_B-NRLWf93n8,3521
|
|
88
88
|
modal/_runtime/execution_context.pyi,sha256=FVzakehz72ndL-ufe8-EC7TM4IHO_MEBcAdgWuU4W9k,2426
|
|
@@ -149,11 +149,11 @@ modal/cli/programs/launch_instance_ssh.py,sha256=GrwK_Vy8-7B4x5a6AqFaF7lqNVgu75J
|
|
|
149
149
|
modal/cli/programs/run_jupyter.py,sha256=44Lpvqk2l3hH-uOkmAOzw60NEsfB5uaRDWDKVshvQhs,2682
|
|
150
150
|
modal/cli/programs/run_marimo.py,sha256=HyZ2za0NYqg31-mGxFQxUIAJ3Q-jRaMocEwWwI5-cdw,2887
|
|
151
151
|
modal/cli/programs/vscode.py,sha256=KbTAaIXyQBVCDXxXjmBHmKpgXkUw0q4R4KkJvUjCYgk,3380
|
|
152
|
-
modal/experimental/__init__.py,sha256=
|
|
152
|
+
modal/experimental/__init__.py,sha256=QkCGP1lZiOa8sY4ZNqMF8JsnuRaDI7PJpXkGtKMWgDg,15751
|
|
153
153
|
modal/experimental/flash.py,sha256=7qRAL2Nrwbb60YKobcnpM0zJ8vw4xGJqabLPFgEzMZE,28295
|
|
154
154
|
modal/experimental/flash.pyi,sha256=R9VV0UDotiY9BRUjacB-xI4qhR3yBymAvEZFRFHztLs,15143
|
|
155
155
|
modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
|
|
156
|
-
modal-1.1.5.
|
|
156
|
+
modal-1.1.5.dev57.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
157
157
|
modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
|
158
158
|
modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
|
|
159
159
|
modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
|
|
@@ -182,10 +182,10 @@ modal_proto/sandbox_router_pb2.py,sha256=INd9izYaIYqllESQt4MSv2Rj9Hf5bMjAvtCc9b4
|
|
|
182
182
|
modal_proto/sandbox_router_pb2.pyi,sha256=YCK0WnCgRos3-p7t4USQQ7x6WAuM278yeQX2IeU5mLg,13295
|
|
183
183
|
modal_proto/sandbox_router_pb2_grpc.py,sha256=zonC5flvCwxeZYJPENj1IJo2Mr0J58DpoC1_8IdPYik,8243
|
|
184
184
|
modal_proto/sandbox_router_pb2_grpc.pyi,sha256=4QgCB9b7_ykvH8YD-hfnogVH9CLyHVDC5QNb03l4_X8,2735
|
|
185
|
-
modal_version/__init__.py,sha256=
|
|
185
|
+
modal_version/__init__.py,sha256=sqwDRwl8jZ8bUepdLsnkOcPFuWyfw16vxWQszUbQb20,121
|
|
186
186
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
|
187
|
-
modal-1.1.5.
|
|
188
|
-
modal-1.1.5.
|
|
189
|
-
modal-1.1.5.
|
|
190
|
-
modal-1.1.5.
|
|
191
|
-
modal-1.1.5.
|
|
187
|
+
modal-1.1.5.dev57.dist-info/METADATA,sha256=wZbfn_z34YFxxxKRKVke0tDfUy-Q9FWC6QdxysbjiDk,2481
|
|
188
|
+
modal-1.1.5.dev57.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
189
|
+
modal-1.1.5.dev57.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
|
190
|
+
modal-1.1.5.dev57.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
|
191
|
+
modal-1.1.5.dev57.dist-info/RECORD,,
|
modal_version/__init__.py
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|