modal 1.1.5.dev91__py3-none-any.whl → 1.2.1__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/_container_entrypoint.py +4 -1
- modal/_partial_function.py +28 -3
- modal/_utils/function_utils.py +4 -0
- modal/_utils/task_command_router_client.py +537 -0
- modal/app.py +93 -54
- modal/app.pyi +48 -18
- modal/cli/_download.py +19 -3
- modal/cli/cluster.py +4 -2
- modal/cli/container.py +4 -2
- modal/cli/entry_point.py +1 -0
- modal/cli/launch.py +1 -2
- modal/cli/run.py +6 -0
- modal/cli/volume.py +7 -1
- modal/client.pyi +2 -10
- modal/cls.py +5 -12
- modal/config.py +14 -0
- modal/container_process.py +283 -3
- modal/container_process.pyi +95 -32
- modal/exception.py +4 -0
- modal/experimental/flash.py +21 -47
- modal/experimental/flash.pyi +6 -20
- modal/functions.pyi +6 -6
- modal/io_streams.py +455 -122
- modal/io_streams.pyi +220 -95
- modal/partial_function.pyi +4 -1
- modal/runner.py +39 -36
- modal/runner.pyi +40 -24
- modal/sandbox.py +130 -11
- modal/sandbox.pyi +145 -9
- modal/volume.py +23 -3
- modal/volume.pyi +30 -0
- {modal-1.1.5.dev91.dist-info → modal-1.2.1.dist-info}/METADATA +5 -5
- {modal-1.1.5.dev91.dist-info → modal-1.2.1.dist-info}/RECORD +49 -48
- modal_proto/api.proto +2 -26
- modal_proto/api_grpc.py +0 -32
- modal_proto/api_pb2.py +327 -367
- modal_proto/api_pb2.pyi +6 -69
- modal_proto/api_pb2_grpc.py +0 -67
- modal_proto/api_pb2_grpc.pyi +0 -22
- modal_proto/modal_api_grpc.py +0 -2
- modal_proto/sandbox_router.proto +0 -4
- modal_proto/sandbox_router_pb2.pyi +0 -4
- modal_proto/task_command_router.proto +1 -1
- modal_proto/task_command_router_pb2.py +2 -2
- modal_version/__init__.py +1 -1
- {modal-1.1.5.dev91.dist-info → modal-1.2.1.dist-info}/WHEEL +0 -0
- {modal-1.1.5.dev91.dist-info → modal-1.2.1.dist-info}/entry_points.txt +0 -0
- {modal-1.1.5.dev91.dist-info → modal-1.2.1.dist-info}/licenses/LICENSE +0 -0
- {modal-1.1.5.dev91.dist-info → modal-1.2.1.dist-info}/top_level.txt +0 -0
modal/volume.pyi
CHANGED
|
@@ -626,6 +626,14 @@ class _Volume(modal._object._Object):
|
|
|
626
626
|
"""
|
|
627
627
|
...
|
|
628
628
|
|
|
629
|
+
async def _read_file_into_fileobj(
|
|
630
|
+
self,
|
|
631
|
+
path: str,
|
|
632
|
+
fileobj: typing.IO[bytes],
|
|
633
|
+
concurrency: typing.Optional[int] = None,
|
|
634
|
+
download_semaphore: typing.Optional[asyncio.locks.Semaphore] = None,
|
|
635
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
|
636
|
+
) -> int: ...
|
|
629
637
|
async def remove_file(self, path: str, recursive: bool = False) -> None:
|
|
630
638
|
"""Remove a file or directory from a volume."""
|
|
631
639
|
...
|
|
@@ -1065,6 +1073,28 @@ class Volume(modal.object.Object):
|
|
|
1065
1073
|
|
|
1066
1074
|
read_file_into_fileobj: __read_file_into_fileobj_spec[typing_extensions.Self]
|
|
1067
1075
|
|
|
1076
|
+
class ___read_file_into_fileobj_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
1077
|
+
def __call__(
|
|
1078
|
+
self,
|
|
1079
|
+
/,
|
|
1080
|
+
path: str,
|
|
1081
|
+
fileobj: typing.IO[bytes],
|
|
1082
|
+
concurrency: typing.Optional[int] = None,
|
|
1083
|
+
download_semaphore: typing.Optional[asyncio.locks.Semaphore] = None,
|
|
1084
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
|
1085
|
+
) -> int: ...
|
|
1086
|
+
async def aio(
|
|
1087
|
+
self,
|
|
1088
|
+
/,
|
|
1089
|
+
path: str,
|
|
1090
|
+
fileobj: typing.IO[bytes],
|
|
1091
|
+
concurrency: typing.Optional[int] = None,
|
|
1092
|
+
download_semaphore: typing.Optional[asyncio.locks.Semaphore] = None,
|
|
1093
|
+
progress_cb: typing.Optional[collections.abc.Callable[..., typing.Any]] = None,
|
|
1094
|
+
) -> int: ...
|
|
1095
|
+
|
|
1096
|
+
_read_file_into_fileobj: ___read_file_into_fileobj_spec[typing_extensions.Self]
|
|
1097
|
+
|
|
1068
1098
|
class __remove_file_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
1069
1099
|
def __call__(self, /, path: str, recursive: bool = False) -> None:
|
|
1070
1100
|
"""Remove a file or directory from a volume."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: modal
|
|
3
|
-
Version: 1.1
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Python client library for Modal
|
|
5
5
|
Author-email: Modal Labs <support@modal.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -32,14 +32,14 @@ Requires-Dist: watchfiles
|
|
|
32
32
|
Requires-Dist: typing_extensions~=4.6
|
|
33
33
|
Dynamic: license-file
|
|
34
34
|
|
|
35
|
-
# Modal Python
|
|
35
|
+
# Modal Python SDK
|
|
36
36
|
|
|
37
37
|
[](https://pypi.org/project/modal/)
|
|
38
38
|
[](https://github.com/modal-labs/modal-client/blob/master/LICENSE)
|
|
39
39
|
[](https://github.com/modal-labs/modal-client/actions/workflows/ci-cd.yml)
|
|
40
40
|
[](https://modal.com/slack)
|
|
41
41
|
|
|
42
|
-
The [Modal](https://modal.com/) Python
|
|
42
|
+
The [Modal](https://modal.com/) Python SDK provides convenient, on-demand
|
|
43
43
|
access to serverless cloud compute from Python scripts on your local computer.
|
|
44
44
|
|
|
45
45
|
## Documentation
|
|
@@ -53,10 +53,10 @@ a [user guide](https://modal.com/docs/guide), and the detailed
|
|
|
53
53
|
|
|
54
54
|
**This library requires Python 3.9 – 3.13.**
|
|
55
55
|
|
|
56
|
-
Install the package with `pip`:
|
|
56
|
+
Install the package with `uv` or `pip`:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
pip install modal
|
|
59
|
+
uv pip install modal
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
You can create a Modal account (or link your existing one) directly on the
|
|
@@ -3,13 +3,13 @@ modal/__main__.py,sha256=45H-GtwzaDfN-1nP4_HYvzN3s7AG_HXR4-ynrsjO_OI,2803
|
|
|
3
3
|
modal/_billing.py,sha256=C1jUN9f_1WqozSZAt9EOk1nImXUdiLrgFeeAu3R23cI,3012
|
|
4
4
|
modal/_clustered_functions.py,sha256=Sy4Sf_17EO8OL-FUe8LYcm4hrqLyQFCssNhr3p0SroU,3013
|
|
5
5
|
modal/_clustered_functions.pyi,sha256=JmYwAGOLEnD5AF-gYF9O5tu-SgGjeoJz-X1j48b1Ijg,1157
|
|
6
|
-
modal/_container_entrypoint.py,sha256=
|
|
6
|
+
modal/_container_entrypoint.py,sha256=zYk5mC8_IMx4kWnyFMRHKOrFRLBWchy6x-py3M8FYEw,28084
|
|
7
7
|
modal/_functions.py,sha256=7YbMBWtMMWLFxCaD3MSD-2iU1R7v5HRxfve-vGNzHnE,90991
|
|
8
8
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
|
9
9
|
modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
|
|
10
10
|
modal/_object.py,sha256=gwsLdXb-Ecd8nH8LVCo8oVZPzzdyo9BrN1DjgQmsSuM,11967
|
|
11
11
|
modal/_output.py,sha256=sdQqEuWVknHwLPzuz_7eUYqF9TvmQkSfEjm1E__bzbY,26892
|
|
12
|
-
modal/_partial_function.py,sha256=
|
|
12
|
+
modal/_partial_function.py,sha256=t0yOVrYrDUdCJt7eVNyBS-atnUtjO56izKB3rDuN17Q,38573
|
|
13
13
|
modal/_pty.py,sha256=E58MQ8d5-wkbMatRKpQR-G9FdbCRcZGiZxOpGy__VuY,1481
|
|
14
14
|
modal/_resolver.py,sha256=2RWvm34cNSnbv1v7izJMNZgfvpLDD6LzaBlr0lIrLnY,7364
|
|
15
15
|
modal/_resources.py,sha256=NMAp0GCLutiZI4GuKSIVnRHVlstoD3hNGUabjTUtzf4,1794
|
|
@@ -19,34 +19,34 @@ modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
|
|
|
19
19
|
modal/_tunnel.pyi,sha256=rvC7USR2BcKkbZIeCJXwf7-UfGE-LPLjKsGNiK7Lxa4,13366
|
|
20
20
|
modal/_type_manager.py,sha256=DWjgmjYJuOagw2erin506UUbG2H5UzZCFEekS-7hmfA,9087
|
|
21
21
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
|
22
|
-
modal/app.py,sha256=
|
|
23
|
-
modal/app.pyi,sha256=
|
|
22
|
+
modal/app.py,sha256=FCU0n_qdKSIZNdNRX2EpbiukM1dY5LBdBNwro5xJB4k,54793
|
|
23
|
+
modal/app.pyi,sha256=AUV5Rp8qQrZJTP2waoKHFY7rYgsXNMYibMcCAQKuSeo,50544
|
|
24
24
|
modal/billing.py,sha256=zmQ3bcCJlwa4KD1IA_QgdWpm1pn13c-7qfy79iEauYI,195
|
|
25
25
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
|
26
26
|
modal/client.py,sha256=kyAIVB3Ay-XKJizQ_1ufUFB__EagV0MLmHJpyYyJ7J0,18636
|
|
27
|
-
modal/client.pyi,sha256=
|
|
27
|
+
modal/client.pyi,sha256=cy4c3o4m6nKPQj0WugDe19bGQY0k5qq5UQx77ztQF3Q,15753
|
|
28
28
|
modal/cloud_bucket_mount.py,sha256=I2GRXYhOWLIz2kJZjXu75jAm9EJkBNcutGc6jR2ReUw,5928
|
|
29
29
|
modal/cloud_bucket_mount.pyi,sha256=VuUOipMIHqFXMkD-3g2bsoqpSxV5qswlFHDOqPQzYAo,7405
|
|
30
|
-
modal/cls.py,sha256=
|
|
30
|
+
modal/cls.py,sha256=ZxzivE3fNci4-A5uyBYNAzXMXtdqDg3gnYvgbdy5fhg,40384
|
|
31
31
|
modal/cls.pyi,sha256=jJsDPFoqzM4ht-V-e-xEJKJ5TINLF0fYtoBm_UeAW5Y,27281
|
|
32
|
-
modal/config.py,sha256=
|
|
33
|
-
modal/container_process.py,sha256=
|
|
34
|
-
modal/container_process.pyi,sha256=
|
|
32
|
+
modal/config.py,sha256=hpgkgQKbjzo6gVbRzXQrky72_KpdSEm65RNi1M2iNjc,13038
|
|
33
|
+
modal/container_process.py,sha256=S-JgzAqEBlYWw7f5gwbb_RVKA2APn-VAnInrntIWBL0,16948
|
|
34
|
+
modal/container_process.pyi,sha256=xMKr-VbQsydS8AbhAys9UTpHHnH2QRyINpPtPG7NwmI,8373
|
|
35
35
|
modal/dict.py,sha256=XkaxuojMVtcc4bZvCjJcd6DedU5xxfF8H4w-mDzFPCo,21580
|
|
36
36
|
modal/dict.pyi,sha256=deOiwuwZtwXqedC3h19SwoQIWc4mUnDTBM5XkONt48Y,31712
|
|
37
37
|
modal/environments.py,sha256=xXYDfgzd20CuFdww_zQ53OB0qANQG-j_ls_fT7mGdoQ,6028
|
|
38
38
|
modal/environments.pyi,sha256=YwI2zClQ5vZHqqKaBJYX2eK4QHRlUuqRlF0lM1JrMOs,3673
|
|
39
|
-
modal/exception.py,sha256=
|
|
39
|
+
modal/exception.py,sha256=HrvKRJO4EMwkoqa77PBeZyrGIgEZ-yqLIA10cqZndqI,5768
|
|
40
40
|
modal/file_io.py,sha256=OSKr77TujcXGJW1iikzYiHckLSmv07QBgBHcxxYEkoI,21456
|
|
41
41
|
modal/file_io.pyi,sha256=xtO6Glf_BFwDE7QiQQo24QqcMf_Vv-iz7WojcGVlLBU,15932
|
|
42
42
|
modal/file_pattern_matcher.py,sha256=A_Kdkej6q7YQyhM_2-BvpFmPqJ0oHb54B6yf9VqvPVE,8116
|
|
43
43
|
modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
|
|
44
|
-
modal/functions.pyi,sha256=
|
|
44
|
+
modal/functions.pyi,sha256=CMwApS396tdElFrjnV6RuL2DTCz4C3jYzYoq1y_LPUQ,37988
|
|
45
45
|
modal/gpu.py,sha256=Fe5ORvVPDIstSq1xjmM6OoNgLYFWvogP9r5BgmD3hYg,6769
|
|
46
46
|
modal/image.py,sha256=HDkOnhIAN8g63a8LTN4J5SjC9ciReFQQJIxTS2z5KFM,107216
|
|
47
47
|
modal/image.pyi,sha256=dMvMwAuvWkNN2BRYJFijkEy2m_xtEXgCKK0T7FVldsc,77514
|
|
48
|
-
modal/io_streams.py,sha256=
|
|
49
|
-
modal/io_streams.pyi,sha256=
|
|
48
|
+
modal/io_streams.py,sha256=HHRuwwWQAF1SKi0zBFugE2ldlHnyAPLyyJIpetOBGh0,29907
|
|
49
|
+
modal/io_streams.pyi,sha256=_Tu84oFE2VD6ueqGCqhUM0b18eJkHO7of3-YJRScwDw,17994
|
|
50
50
|
modal/mount.py,sha256=G7_xhQMZqokgfsaFLMch0YR3fs-OUNqYUm3f4jHTSMQ,33161
|
|
51
51
|
modal/mount.pyi,sha256=MD_zV2M7eCWxbOpQRjU60aHevN-bmbiywaCX82QoFlw,15380
|
|
52
52
|
modal/network_file_system.py,sha256=ZdEIRgdcR-p_ILyw_AecEtPOhhrSWJeADYCtFnhtaHM,13509
|
|
@@ -57,18 +57,18 @@ modal/output.py,sha256=q4T9uHduunj4NwY-YSwkHGgjZlCXMuJbfQ5UFaAGRAc,1968
|
|
|
57
57
|
modal/parallel_map.py,sha256=E5UYVszgLR8ppOUOqCgkqgn5A93yVMvJ5YmgGgrjyQo,68991
|
|
58
58
|
modal/parallel_map.pyi,sha256=NZrtfZljig59hcMKU7Cz8lYZZFOiwK9l7oWrBtX6Oy8,15838
|
|
59
59
|
modal/partial_function.py,sha256=aIdlGfTjjgqY6Fpr-biCjvRU9W542_S5N2xkNN_rYGM,1127
|
|
60
|
-
modal/partial_function.pyi,sha256=
|
|
60
|
+
modal/partial_function.pyi,sha256=M7aHV6sbCc7R28D4Tk6Agr39m6R0emrXvm8IfWflt1o,14023
|
|
61
61
|
modal/proxy.py,sha256=CQydu_NPDgApN2GLdd7rrcg8PM-pXyFdVYcTaGMBRCQ,1491
|
|
62
62
|
modal/proxy.pyi,sha256=yWGWwADCRGrC2w81B7671UTH4Uv3HMZKy5vVqlJUZoA,1417
|
|
63
63
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
64
|
modal/queue.py,sha256=aaH3SNWeh_HjEyVUtFiN345v0GJFoucJ6aNDrDggWZQ,25775
|
|
65
65
|
modal/queue.pyi,sha256=mFu7GFFVFNLU9VZshnfekEsb-ABgpjdhJ07KXHvdv3A,37256
|
|
66
66
|
modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
|
|
67
|
-
modal/runner.py,sha256=
|
|
68
|
-
modal/runner.pyi,sha256=
|
|
67
|
+
modal/runner.py,sha256=Ni54hwa42SEBxLPpqFwKMsUPYY8Dv-I-Kz3_jL1StCI,25220
|
|
68
|
+
modal/runner.pyi,sha256=DV3Z7h0owgRyOu9W5KU5O3UbRftX99KGrZQId91fpsU,8671
|
|
69
69
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
|
70
|
-
modal/sandbox.py,sha256=
|
|
71
|
-
modal/sandbox.pyi,sha256=
|
|
70
|
+
modal/sandbox.py,sha256=JAC4__5bOVaIIfVn35_SDm9BEu0TVaFVubGZX9d9ycc,51021
|
|
71
|
+
modal/sandbox.pyi,sha256=VqGO59NZX5fSU1tnA_g0pAd7eq6GvV6lNtC8TH9Xlo8,57478
|
|
72
72
|
modal/schedule.py,sha256=ng0g0AqNY5GQI9KhkXZQ5Wam5G42glbkqVQsNpBtbDE,3078
|
|
73
73
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
|
74
74
|
modal/secret.py,sha256=ThwP-PkwUZwiYkygqumh15n8P_77-N5ZyRWLc6I3r28,18323
|
|
@@ -80,8 +80,8 @@ modal/snapshot.pyi,sha256=0q83hlmWxAhDu8xwZyL5VmYh0i8Tigf7S60or2k30L8,1682
|
|
|
80
80
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
|
81
81
|
modal/token_flow.py,sha256=GWpar0gANs71vm9Bd_Cj87UG1K3ljTURbkEjG3JLsrY,7616
|
|
82
82
|
modal/token_flow.pyi,sha256=eirYjyqbRiT3GCKMIPHJPpkvBTu8WxDKqSHehWaJI_4,2533
|
|
83
|
-
modal/volume.py,sha256=
|
|
84
|
-
modal/volume.pyi,sha256=
|
|
83
|
+
modal/volume.py,sha256=N-YnuRgYod9VsgfGQ2_c-0yWOLEleGfuNbxj6eihSYI,52363
|
|
84
|
+
modal/volume.pyi,sha256=WZGdwB51qvH5E7d6qS7sNCsscyuHsKUHFyyiZaQyvw8,53212
|
|
85
85
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
|
86
86
|
modal/_runtime/asgi.py,sha256=AOcduIlijmlxhXVWo7AIUhigo-bqm6nDkHj4Q4JLy6o,22607
|
|
87
87
|
modal/_runtime/container_io_manager.py,sha256=Q3JUEYrsfWsG0DuuVUiYXAUccfb8RhM8ExQEQJXR0nc,52200
|
|
@@ -99,7 +99,7 @@ modal/_utils/blob_utils.py,sha256=bmPPHfLy8Kdna8e2xS3lvKwnN5pJUUt_rN39kVIYPFM,22
|
|
|
99
99
|
modal/_utils/bytes_io_segment_payload.py,sha256=vaXPq8b52-x6G2hwE7SrjS58pg_aRm7gV3bn3yjmTzQ,4261
|
|
100
100
|
modal/_utils/deprecation.py,sha256=-Bgg7jZdcJU8lROy18YyVnQYbM8hue-hVmwJqlWAGH0,5504
|
|
101
101
|
modal/_utils/docker_utils.py,sha256=h1uETghR40mp_y3fSWuZAfbIASH1HMzuphJHghAL6DU,3722
|
|
102
|
-
modal/_utils/function_utils.py,sha256=
|
|
102
|
+
modal/_utils/function_utils.py,sha256=B5dAhcOM6SK3H-iwbrJjZ7XbjpweFd3YfmuFS26R8fQ,28671
|
|
103
103
|
modal/_utils/git_utils.py,sha256=qtUU6JAttF55ZxYq51y55OR58B0tDPZsZWK5dJe6W5g,3182
|
|
104
104
|
modal/_utils/grpc_testing.py,sha256=H1zHqthv19eGPJz2HKXDyWXWGSqO4BRsxah3L5Xaa8A,8619
|
|
105
105
|
modal/_utils/grpc_utils.py,sha256=1dQgTvdHG9KSfyVTc26HhKjGnIDJpdDEJ0xZARklOrU,10205
|
|
@@ -113,6 +113,7 @@ modal/_utils/package_utils.py,sha256=LcL2olGN4xaUzu2Tbv-C-Ft9Qp6bsLxEfETOAVd-mjU
|
|
|
113
113
|
modal/_utils/pattern_utils.py,sha256=ZUffaECfe2iYBhH6cvCB-0-UWhmEBTZEl_TwG_So3ag,6714
|
|
114
114
|
modal/_utils/rand_pb_testing.py,sha256=mmVPk1rZldHwHZx0DnHTuHQlRLAiiAYdxjwEJpxvT9c,3900
|
|
115
115
|
modal/_utils/shell_utils.py,sha256=hWHzv730Br2Xyj6cGPiMZ-198Z3RZuOu3pDXhFSZ22c,2157
|
|
116
|
+
modal/_utils/task_command_router_client.py,sha256=ugWyExVncfs_9SbcPaWjMi3gmXPaQWI-8LuL-xHah7M,23589
|
|
116
117
|
modal/_utils/time_utils.py,sha256=43tpFVwT7ykOjlETIFLVt9auMsRZqYYRYBEKxGCrRSA,1212
|
|
117
118
|
modal/_vendor/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
|
118
119
|
modal/_vendor/a2wsgi_wsgi.py,sha256=Q1AsjpV_Q_vzQsz_cSqmP9jWzsGsB-ARFU6vpQYml8k,21878
|
|
@@ -127,35 +128,35 @@ modal/builder/PREVIEW.txt,sha256=XM4z76RPnrcbCx3o3sqXijWnumyOGiTCLGhKaaS4xz0,325
|
|
|
127
128
|
modal/builder/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
|
|
128
129
|
modal/builder/base-images.json,sha256=JYSDAgHTl-WrV_TZW5icY-IJEnbe2eQ4CZ_KN6EOZKU,1304
|
|
129
130
|
modal/cli/__init__.py,sha256=6FRleWQxBDT19y7OayO4lBOzuL6Bs9r0rLINYYYbHwQ,769
|
|
130
|
-
modal/cli/_download.py,sha256=
|
|
131
|
+
modal/cli/_download.py,sha256=_Q_CG1Qb4cjVSAwHGGPOPoNTsmK9gHvF-HNWCNdFjaY,4900
|
|
131
132
|
modal/cli/_traceback.py,sha256=IKj9xtc6LjAxyhGJWolNIXEX3MhAIulnRqywZNOFmkU,7324
|
|
132
133
|
modal/cli/app.py,sha256=rbuAG92my-1eZN0olk6p2eD4oBnyBliUsrCOUW-U-9k,7832
|
|
133
|
-
modal/cli/cluster.py,sha256=
|
|
134
|
+
modal/cli/cluster.py,sha256=BLcKDpwpDmlqE2UC4V0qNpJKiQ-ZXfI9g_SE7u6vnIU,3347
|
|
134
135
|
modal/cli/config.py,sha256=lhp2Pq4RbTDhaZJ-ZJvhrMqJj8c-WjuRX6gjE3TrvXc,1691
|
|
135
|
-
modal/cli/container.py,sha256=
|
|
136
|
+
modal/cli/container.py,sha256=IdJ07p7hwFGXz3oYB__NYilucWpVv-K1JL3QKduu7ok,3769
|
|
136
137
|
modal/cli/dict.py,sha256=YAJtiv41YcCd5Fqam3hXCNTs4Y0yOgGR_i6RfQNSAFM,4572
|
|
137
|
-
modal/cli/entry_point.py,sha256=
|
|
138
|
+
modal/cli/entry_point.py,sha256=7nGM8zob80L5iyLCf_TEmjyinKojquW3_O_V0wDnK-U,4809
|
|
138
139
|
modal/cli/environment.py,sha256=LGBq8RVQjfBH3EWz8QgmYe19UO66JKSDNxOXMUjw7JM,4285
|
|
139
140
|
modal/cli/import_refs.py,sha256=X59Z5JwgliRO6C-cIFto2Pr7o3SwlZMKQPKA0aI4ZK4,13927
|
|
140
|
-
modal/cli/launch.py,sha256=
|
|
141
|
+
modal/cli/launch.py,sha256=oJKGWjTJiXQTdw-SUiCmCQ76bY_8nlzJMUMu0zew0zs,6435
|
|
141
142
|
modal/cli/network_file_system.py,sha256=I9IqTpVfk32uKYwGd8LTldkQx6UKYrQYNZ26q7Ab5Oo,8126
|
|
142
143
|
modal/cli/profile.py,sha256=g8X6tFFK9ccKyu2he9Yu19WLSLNdztzECgmIV__XJFs,3257
|
|
143
144
|
modal/cli/queues.py,sha256=5vKtKQ7YExdaxNPYZ0g5suU9sX0-F5h0zy0qBV-hN80,6140
|
|
144
|
-
modal/cli/run.py,sha256=
|
|
145
|
+
modal/cli/run.py,sha256=3_UF2Vdye_KEgY8JzBBomt0i944cCJx96RfNbeAEPDo,25783
|
|
145
146
|
modal/cli/secret.py,sha256=-Nnk3fq1IEzMtC9VUn61AKmdvZzZ9XQyiKVgQYRpajo,8127
|
|
146
147
|
modal/cli/token.py,sha256=NAmQzKBfEHkcldWKeFxAVIqQBoo1RTp7_A4yc7-8qM0,1911
|
|
147
148
|
modal/cli/utils.py,sha256=aUXDU9_VgcJrGaGRy4bGf4dqwKYXHCpoO27x4m_bpuo,3293
|
|
148
|
-
modal/cli/volume.py,sha256=
|
|
149
|
+
modal/cli/volume.py,sha256=wJchJyIEw9lTKiNUNTgR4I3DPYHYJBu50gU_SsecP0w,10877
|
|
149
150
|
modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
|
150
151
|
modal/cli/programs/launch_instance_ssh.py,sha256=GrwK_Vy8-7B4x5a6AqFaF7lqNVgu75JYZ2BtFV0_DOw,2660
|
|
151
152
|
modal/cli/programs/run_jupyter.py,sha256=IJw8nds8Cjl9j4dxBqMGxhz-bIyVX0kle7jbt8HFOhM,2688
|
|
152
153
|
modal/cli/programs/run_marimo.py,sha256=QlCGPkwQ0XLajt2LtujR_BGsRV1AZ3OCUgZxkkM1lug,2893
|
|
153
154
|
modal/cli/programs/vscode.py,sha256=E1aJPU7b8RWWj-JX71DifsCoLYsCAnre7lATiBJjUms,3386
|
|
154
155
|
modal/experimental/__init__.py,sha256=9gkVuDmu3m4TlKoU3MzEtTOemUSs8EEOWba40s7Aa0M,14043
|
|
155
|
-
modal/experimental/flash.py,sha256
|
|
156
|
-
modal/experimental/flash.pyi,sha256=
|
|
156
|
+
modal/experimental/flash.py,sha256=-lSyFBbeT6UT-uB29L955SNh6L6ISg_uBDy5gF4ZpLo,26919
|
|
157
|
+
modal/experimental/flash.pyi,sha256=uwinKAYxpunNNfBj58FP88DXb535Qik4F6tnJKPAIwQ,14696
|
|
157
158
|
modal/experimental/ipython.py,sha256=TrCfmol9LGsRZMeDoeMPx3Hv3BFqQhYnmD_iH0pqdhk,2904
|
|
158
|
-
modal-1.1.
|
|
159
|
+
modal-1.2.1.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
|
159
160
|
modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
|
160
161
|
modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
|
|
161
162
|
modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
|
|
@@ -163,30 +164,30 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
|
|
|
163
164
|
modal_docs/mdmd/mdmd.py,sha256=tUTImNd4UMFk1opkaw8J672gX8AkBO5gbY2S_NMxsxs,7140
|
|
164
165
|
modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
|
|
165
166
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
|
166
|
-
modal_proto/api.proto,sha256=
|
|
167
|
-
modal_proto/api_grpc.py,sha256=
|
|
168
|
-
modal_proto/api_pb2.py,sha256=
|
|
169
|
-
modal_proto/api_pb2.pyi,sha256=
|
|
170
|
-
modal_proto/api_pb2_grpc.py,sha256=
|
|
171
|
-
modal_proto/api_pb2_grpc.pyi,sha256=
|
|
172
|
-
modal_proto/modal_api_grpc.py,sha256=
|
|
167
|
+
modal_proto/api.proto,sha256=GYn-HjF_vc7Y4_BvHZBCG-c9ZJU0CWnyX_Lk973J2Pw,108645
|
|
168
|
+
modal_proto/api_grpc.py,sha256=vwC-GjejDKWbG5jRN3rkU8WBSqQ8Pdj-T2E2xAECAUw,134411
|
|
169
|
+
modal_proto/api_pb2.py,sha256=EtmyiWUznFw_YzPhrw9U4SuXuDsAgZigozbPR4n4TG4,379625
|
|
170
|
+
modal_proto/api_pb2.pyi,sha256=77N3MpNhleBngbyMkph2w87IZmj9DVxhJ1Ezc1Aosmw,531180
|
|
171
|
+
modal_proto/api_pb2_grpc.py,sha256=Hqw9jcbhpr-W6jsfog_tGU55ouZjITxGvA-DGNBqOLA,289714
|
|
172
|
+
modal_proto/api_pb2_grpc.pyi,sha256=QLJ58ANCx147HeGJva58h0MTCLIDs9JmVjrx8bDdwlg,67776
|
|
173
|
+
modal_proto/modal_api_grpc.py,sha256=ME4PoI4cm7_Tpi3duU6-0O5LwhbYKrgJ5n3ijWgeNss,20256
|
|
173
174
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
174
|
-
modal_proto/sandbox_router.proto,sha256=
|
|
175
|
+
modal_proto/sandbox_router.proto,sha256=o6LZWekz2h7uAhBlHcu_EqXnc5ptxm-4j_ZUFVGAJFk,5161
|
|
175
176
|
modal_proto/sandbox_router_grpc.py,sha256=27daOTX2N5hADDG-5Qnn4Yj3VfekyJwrDUkrQ12mPuU,5004
|
|
176
177
|
modal_proto/sandbox_router_pb2.py,sha256=-AuG6ZRjGDjKgS1J4nSleqkS1W0HgpLjs7ahPnYwUHc,10860
|
|
177
|
-
modal_proto/sandbox_router_pb2.pyi,sha256=
|
|
178
|
+
modal_proto/sandbox_router_pb2.pyi,sha256=9KzzS0-goV3p12hWZrLUHGzZEgrzpa4AazEUOd_xK9g,14899
|
|
178
179
|
modal_proto/sandbox_router_pb2_grpc.py,sha256=8kPFo84rpRHfeRdZuHyoWuuIAphGmjM0s3ygGJSBVck,10006
|
|
179
180
|
modal_proto/sandbox_router_pb2_grpc.pyi,sha256=iAr1ornlIEYP7pfrFMrw91-F3PNs7amH6z6J2oCwYxk,3276
|
|
180
|
-
modal_proto/task_command_router.proto,sha256=
|
|
181
|
+
modal_proto/task_command_router.proto,sha256=xAVsFyIff6Yvp-PoS3kwyag2G73tBht2KtF4CWKeewI,5000
|
|
181
182
|
modal_proto/task_command_router_grpc.py,sha256=qxuVUaVwLtCUZGHnYYqUHPvzYepEwt_hXaq2KndPwys,5097
|
|
182
|
-
modal_proto/task_command_router_pb2.py,sha256=
|
|
183
|
+
modal_proto/task_command_router_pb2.py,sha256=_pD2ZpU0bNzhwBdzmLoLyLtAtftI_AgxwnowxvQbtvk,10616
|
|
183
184
|
modal_proto/task_command_router_pb2.pyi,sha256=EyDgXPLr7alqjXYERV8w_MPuO404x0uCppmSkrfE9IE,14589
|
|
184
185
|
modal_proto/task_command_router_pb2_grpc.py,sha256=uEQ0HdrCp8v-9bB5yIic9muA8spCShLHY6Bz9cCgOUE,10114
|
|
185
186
|
modal_proto/task_command_router_pb2_grpc.pyi,sha256=s3Yxsrawdj4nr8vqQqsAxyX6ilWaGbdECy425KKbLIA,3301
|
|
186
|
-
modal_version/__init__.py,sha256=
|
|
187
|
+
modal_version/__init__.py,sha256=JEbPNR-mVhZnUw6SXVucJTC3uu6jIkGL2LTGxkY06nQ,115
|
|
187
188
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
|
188
|
-
modal-1.1.
|
|
189
|
-
modal-1.1.
|
|
190
|
-
modal-1.1.
|
|
191
|
-
modal-1.1.
|
|
192
|
-
modal-1.1.
|
|
189
|
+
modal-1.2.1.dist-info/METADATA,sha256=NTuhgrEbJZT15YlIomLgnC13PY8758Z7ITumqc6Zjdw,2478
|
|
190
|
+
modal-1.2.1.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
|
191
|
+
modal-1.2.1.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
|
192
|
+
modal-1.2.1.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
|
|
193
|
+
modal-1.2.1.dist-info/RECORD,,
|
modal_proto/api.proto
CHANGED
|
@@ -2757,20 +2757,6 @@ message SandboxCreateResponse {
|
|
|
2757
2757
|
string sandbox_id = 1;
|
|
2758
2758
|
}
|
|
2759
2759
|
|
|
2760
|
-
// Used to get a JWT and URL for direct access to a sandbox router server
|
|
2761
|
-
// running on the modal-worker, so the client can issue exec commands (and other
|
|
2762
|
-
// operations as they become available) directly to the worker.
|
|
2763
|
-
// DEPRECATED: Use TaskGetCommandRouterAccessRequest instead.
|
|
2764
|
-
// TODO(saltzm): Remove this.
|
|
2765
|
-
message SandboxGetCommandRouterAccessRequest {
|
|
2766
|
-
string sandbox_id = 1;
|
|
2767
|
-
}
|
|
2768
|
-
|
|
2769
|
-
message SandboxGetCommandRouterAccessResponse {
|
|
2770
|
-
string jwt = 1;
|
|
2771
|
-
string url = 2;
|
|
2772
|
-
}
|
|
2773
|
-
|
|
2774
2760
|
message SandboxGetFromNameRequest {
|
|
2775
2761
|
string sandbox_name = 1;
|
|
2776
2762
|
string environment_name = 2;
|
|
@@ -3157,14 +3143,6 @@ message TaskCurrentInputsResponse {
|
|
|
3157
3143
|
repeated string input_ids = 1;
|
|
3158
3144
|
}
|
|
3159
3145
|
|
|
3160
|
-
message TaskGetAutoscalingMetricsRequest {
|
|
3161
|
-
string task_id = 1;
|
|
3162
|
-
}
|
|
3163
|
-
|
|
3164
|
-
message TaskGetAutoscalingMetricsResponse {
|
|
3165
|
-
AutoscalingMetrics metrics = 1;
|
|
3166
|
-
}
|
|
3167
|
-
|
|
3168
3146
|
// Used to get a JWT and URL for direct access to a task command router
|
|
3169
3147
|
// running on the modal-worker, so the client can issue exec commands (and other
|
|
3170
3148
|
// operations as they become available) directly to the worker.
|
|
@@ -3565,16 +3543,16 @@ message WebUrlInfo {
|
|
|
3565
3543
|
message WebhookConfig {
|
|
3566
3544
|
WebhookType type = 1;
|
|
3567
3545
|
string method = 2;
|
|
3568
|
-
string requested_suffix = 4;
|
|
3546
|
+
string requested_suffix = 4; // User-supplied "label" component of URL
|
|
3569
3547
|
WebhookAsyncMode async_mode = 5;
|
|
3570
3548
|
repeated CustomDomainConfig custom_domains = 6;
|
|
3571
3549
|
uint32 web_server_port = 7;
|
|
3572
3550
|
float web_server_startup_timeout = 8;
|
|
3573
3551
|
bool web_endpoint_docs = 9;
|
|
3574
3552
|
bool requires_proxy_auth = 10;
|
|
3553
|
+
string ephemeral_suffix = 11; // Additional URL suffix added for ephemeral Apps
|
|
3575
3554
|
}
|
|
3576
3555
|
|
|
3577
|
-
|
|
3578
3556
|
message WorkspaceBillingReportItem {
|
|
3579
3557
|
string object_id = 1;
|
|
3580
3558
|
string description = 2;
|
|
@@ -3754,7 +3732,6 @@ service ModalClient {
|
|
|
3754
3732
|
// Sandboxes
|
|
3755
3733
|
rpc SandboxCreate(SandboxCreateRequest) returns (SandboxCreateResponse);
|
|
3756
3734
|
rpc SandboxCreateConnectToken(SandboxCreateConnectTokenRequest) returns (SandboxCreateConnectTokenResponse);
|
|
3757
|
-
rpc SandboxGetCommandRouterAccess(SandboxGetCommandRouterAccessRequest) returns (SandboxGetCommandRouterAccessResponse);
|
|
3758
3735
|
rpc SandboxGetFromName(SandboxGetFromNameRequest) returns (SandboxGetFromNameResponse);
|
|
3759
3736
|
rpc SandboxGetLogs(SandboxGetLogsRequest) returns (stream TaskLogsBatch);
|
|
3760
3737
|
rpc SandboxGetResourceUsage(SandboxGetResourceUsageRequest) returns (SandboxGetResourceUsageResponse);
|
|
@@ -3793,7 +3770,6 @@ service ModalClient {
|
|
|
3793
3770
|
// Tasks
|
|
3794
3771
|
rpc TaskClusterHello(TaskClusterHelloRequest) returns (TaskClusterHelloResponse);
|
|
3795
3772
|
rpc TaskCurrentInputs(google.protobuf.Empty) returns (TaskCurrentInputsResponse);
|
|
3796
|
-
rpc TaskGetAutoscalingMetrics(TaskGetAutoscalingMetricsRequest) returns (TaskGetAutoscalingMetricsResponse); // Used for flash autoscaling
|
|
3797
3773
|
rpc TaskGetCommandRouterAccess(TaskGetCommandRouterAccessRequest) returns (TaskGetCommandRouterAccessResponse);
|
|
3798
3774
|
rpc TaskList(TaskListRequest) returns (TaskListResponse);
|
|
3799
3775
|
rpc TaskResult(TaskResultRequest) returns (google.protobuf.Empty);
|
modal_proto/api_grpc.py
CHANGED
|
@@ -482,10 +482,6 @@ class ModalClientBase(abc.ABC):
|
|
|
482
482
|
async def SandboxCreateConnectToken(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxCreateConnectTokenRequest, modal_proto.api_pb2.SandboxCreateConnectTokenResponse]') -> None:
|
|
483
483
|
pass
|
|
484
484
|
|
|
485
|
-
@abc.abstractmethod
|
|
486
|
-
async def SandboxGetCommandRouterAccess(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest, modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse]') -> None:
|
|
487
|
-
pass
|
|
488
|
-
|
|
489
485
|
@abc.abstractmethod
|
|
490
486
|
async def SandboxGetFromName(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetFromNameRequest, modal_proto.api_pb2.SandboxGetFromNameResponse]') -> None:
|
|
491
487
|
pass
|
|
@@ -614,10 +610,6 @@ class ModalClientBase(abc.ABC):
|
|
|
614
610
|
async def TaskCurrentInputs(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.TaskCurrentInputsResponse]') -> None:
|
|
615
611
|
pass
|
|
616
612
|
|
|
617
|
-
@abc.abstractmethod
|
|
618
|
-
async def TaskGetAutoscalingMetrics(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskGetAutoscalingMetricsRequest, modal_proto.api_pb2.TaskGetAutoscalingMetricsResponse]') -> None:
|
|
619
|
-
pass
|
|
620
|
-
|
|
621
613
|
@abc.abstractmethod
|
|
622
614
|
async def TaskGetCommandRouterAccess(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskGetCommandRouterAccessRequest, modal_proto.api_pb2.TaskGetCommandRouterAccessResponse]') -> None:
|
|
623
615
|
pass
|
|
@@ -1420,12 +1412,6 @@ class ModalClientBase(abc.ABC):
|
|
|
1420
1412
|
modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
|
|
1421
1413
|
modal_proto.api_pb2.SandboxCreateConnectTokenResponse,
|
|
1422
1414
|
),
|
|
1423
|
-
'/modal.client.ModalClient/SandboxGetCommandRouterAccess': grpclib.const.Handler(
|
|
1424
|
-
self.SandboxGetCommandRouterAccess,
|
|
1425
|
-
grpclib.const.Cardinality.UNARY_UNARY,
|
|
1426
|
-
modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest,
|
|
1427
|
-
modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse,
|
|
1428
|
-
),
|
|
1429
1415
|
'/modal.client.ModalClient/SandboxGetFromName': grpclib.const.Handler(
|
|
1430
1416
|
self.SandboxGetFromName,
|
|
1431
1417
|
grpclib.const.Cardinality.UNARY_UNARY,
|
|
@@ -1618,12 +1604,6 @@ class ModalClientBase(abc.ABC):
|
|
|
1618
1604
|
google.protobuf.empty_pb2.Empty,
|
|
1619
1605
|
modal_proto.api_pb2.TaskCurrentInputsResponse,
|
|
1620
1606
|
),
|
|
1621
|
-
'/modal.client.ModalClient/TaskGetAutoscalingMetrics': grpclib.const.Handler(
|
|
1622
|
-
self.TaskGetAutoscalingMetrics,
|
|
1623
|
-
grpclib.const.Cardinality.UNARY_UNARY,
|
|
1624
|
-
modal_proto.api_pb2.TaskGetAutoscalingMetricsRequest,
|
|
1625
|
-
modal_proto.api_pb2.TaskGetAutoscalingMetricsResponse,
|
|
1626
|
-
),
|
|
1627
1607
|
'/modal.client.ModalClient/TaskGetCommandRouterAccess': grpclib.const.Handler(
|
|
1628
1608
|
self.TaskGetCommandRouterAccess,
|
|
1629
1609
|
grpclib.const.Cardinality.UNARY_UNARY,
|
|
@@ -2482,12 +2462,6 @@ class ModalClientStub:
|
|
|
2482
2462
|
modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
|
|
2483
2463
|
modal_proto.api_pb2.SandboxCreateConnectTokenResponse,
|
|
2484
2464
|
)
|
|
2485
|
-
self.SandboxGetCommandRouterAccess = grpclib.client.UnaryUnaryMethod(
|
|
2486
|
-
channel,
|
|
2487
|
-
'/modal.client.ModalClient/SandboxGetCommandRouterAccess',
|
|
2488
|
-
modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest,
|
|
2489
|
-
modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse,
|
|
2490
|
-
)
|
|
2491
2465
|
self.SandboxGetFromName = grpclib.client.UnaryUnaryMethod(
|
|
2492
2466
|
channel,
|
|
2493
2467
|
'/modal.client.ModalClient/SandboxGetFromName',
|
|
@@ -2680,12 +2654,6 @@ class ModalClientStub:
|
|
|
2680
2654
|
google.protobuf.empty_pb2.Empty,
|
|
2681
2655
|
modal_proto.api_pb2.TaskCurrentInputsResponse,
|
|
2682
2656
|
)
|
|
2683
|
-
self.TaskGetAutoscalingMetrics = grpclib.client.UnaryUnaryMethod(
|
|
2684
|
-
channel,
|
|
2685
|
-
'/modal.client.ModalClient/TaskGetAutoscalingMetrics',
|
|
2686
|
-
modal_proto.api_pb2.TaskGetAutoscalingMetricsRequest,
|
|
2687
|
-
modal_proto.api_pb2.TaskGetAutoscalingMetricsResponse,
|
|
2688
|
-
)
|
|
2689
2657
|
self.TaskGetCommandRouterAccess = grpclib.client.UnaryUnaryMethod(
|
|
2690
2658
|
channel,
|
|
2691
2659
|
'/modal.client.ModalClient/TaskGetCommandRouterAccess',
|