modal 0.72.4__py3-none-any.whl → 0.72.48__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- modal/_container_entrypoint.py +5 -10
- modal/_object.py +297 -0
- modal/_resolver.py +7 -5
- modal/_runtime/container_io_manager.py +0 -11
- modal/_runtime/user_code_imports.py +7 -7
- modal/_serialization.py +4 -3
- modal/_tunnel.py +1 -1
- modal/app.py +14 -61
- modal/app.pyi +25 -25
- modal/cli/app.py +3 -2
- modal/cli/container.py +1 -1
- modal/cli/import_refs.py +185 -113
- modal/cli/launch.py +10 -5
- modal/cli/programs/run_jupyter.py +2 -2
- modal/cli/programs/vscode.py +3 -3
- modal/cli/run.py +134 -68
- modal/client.py +1 -0
- modal/client.pyi +18 -14
- modal/cloud_bucket_mount.py +4 -0
- modal/cloud_bucket_mount.pyi +4 -0
- modal/cls.py +33 -5
- modal/cls.pyi +20 -5
- modal/container_process.pyi +8 -6
- modal/dict.py +1 -1
- modal/dict.pyi +32 -29
- modal/environments.py +1 -1
- modal/environments.pyi +2 -1
- modal/experimental.py +47 -11
- modal/experimental.pyi +29 -0
- modal/file_io.pyi +30 -28
- modal/file_pattern_matcher.py +32 -25
- modal/functions.py +31 -23
- modal/functions.pyi +57 -50
- modal/gpu.py +19 -26
- modal/image.py +47 -19
- modal/image.pyi +28 -21
- modal/io_streams.pyi +14 -12
- modal/mount.py +14 -5
- modal/mount.pyi +28 -25
- modal/network_file_system.py +7 -7
- modal/network_file_system.pyi +27 -24
- modal/object.py +2 -265
- modal/object.pyi +46 -130
- modal/parallel_map.py +2 -2
- modal/parallel_map.pyi +10 -7
- modal/partial_function.py +22 -3
- modal/partial_function.pyi +45 -27
- modal/proxy.py +1 -1
- modal/proxy.pyi +2 -1
- modal/queue.py +1 -1
- modal/queue.pyi +26 -23
- modal/runner.py +14 -3
- modal/sandbox.py +11 -7
- modal/sandbox.pyi +30 -27
- modal/secret.py +1 -1
- modal/secret.pyi +2 -1
- modal/token_flow.pyi +6 -4
- modal/volume.py +1 -1
- modal/volume.pyi +36 -33
- {modal-0.72.4.dist-info → modal-0.72.48.dist-info}/METADATA +2 -2
- {modal-0.72.4.dist-info → modal-0.72.48.dist-info}/RECORD +73 -71
- modal_proto/api.proto +151 -4
- modal_proto/api_grpc.py +113 -0
- modal_proto/api_pb2.py +998 -795
- modal_proto/api_pb2.pyi +430 -11
- modal_proto/api_pb2_grpc.py +233 -1
- modal_proto/api_pb2_grpc.pyi +75 -3
- modal_proto/modal_api_grpc.py +7 -0
- modal_version/_version_generated.py +1 -1
- {modal-0.72.4.dist-info → modal-0.72.48.dist-info}/LICENSE +0 -0
- {modal-0.72.4.dist-info → modal-0.72.48.dist-info}/WHEEL +0 -0
- {modal-0.72.4.dist-info → modal-0.72.48.dist-info}/entry_points.txt +0 -0
- {modal-0.72.4.dist-info → modal-0.72.48.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: modal
|
3
|
-
Version: 0.72.
|
3
|
+
Version: 0.72.48
|
4
4
|
Summary: Python client library for Modal
|
5
5
|
Author: Modal Labs
|
6
6
|
Author-email: support@modal.com
|
@@ -21,7 +21,7 @@ Requires-Dist: fastapi
|
|
21
21
|
Requires-Dist: grpclib (==0.4.7)
|
22
22
|
Requires-Dist: protobuf (!=4.24.0,<6.0,>=3.19)
|
23
23
|
Requires-Dist: rich (>=12.0.0)
|
24
|
-
Requires-Dist: synchronicity (~=0.9.
|
24
|
+
Requires-Dist: synchronicity (~=0.9.9)
|
25
25
|
Requires-Dist: toml
|
26
26
|
Requires-Dist: typer (>=0.9)
|
27
27
|
Requires-Dist: types-certifi
|
@@ -2,86 +2,88 @@ modal/__init__.py,sha256=3NJLLHb0TRc2tc68kf8NHzORx38GbtbZvPEWDWrQ6N4,2234
|
|
2
2
|
modal/__main__.py,sha256=scYhGFqh8OJcVDo-VOxIT6CCwxOgzgflYWMnIZiMRqE,2871
|
3
3
|
modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
|
4
4
|
modal/_clustered_functions.pyi,sha256=vllkegc99A0jrUOWa8mdlSbdp6uz36TsHhGxysAOpaQ,771
|
5
|
-
modal/_container_entrypoint.py,sha256=
|
5
|
+
modal/_container_entrypoint.py,sha256=iHSNqLCTK4uXzcmhF5ou5AqOYovk4hMfV3BZYYDrFKc,29554
|
6
6
|
modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
|
7
7
|
modal/_location.py,sha256=S3lSxIU3h9HkWpkJ3Pwo0pqjIOSB1fjeSgUsY3x7eec,1202
|
8
|
+
modal/_object.py,sha256=ItQcsMNkz9Y3kdTsvfNarbW-paJ2qabDyQ7njaqY0XI,11359
|
8
9
|
modal/_output.py,sha256=0fWX_KQwhER--U81ys16CL-pA5A-LN20C0EZjElKGJQ,25410
|
9
10
|
modal/_proxy_tunnel.py,sha256=gnKyCfmVB7x2d1A6c-JDysNIP3kEFxmXzhcXhPrzPn0,1906
|
10
11
|
modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
|
11
|
-
modal/_resolver.py,sha256=
|
12
|
+
modal/_resolver.py,sha256=D9IAdZKNqRPwgPDaB-XMKGtO8G0GwtBzG6xdgiXKdCk,6945
|
12
13
|
modal/_resources.py,sha256=5qmcirXUI8dSH926nwkUaeX9H25mqYu9mXD_KuT79-o,1733
|
13
|
-
modal/_serialization.py,sha256=
|
14
|
+
modal/_serialization.py,sha256=x0uArKNXg89SfmKMUaLup_moHodax9weZItkChKeQ64,18745
|
14
15
|
modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
|
15
|
-
modal/_tunnel.py,sha256=
|
16
|
+
modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
|
16
17
|
modal/_tunnel.pyi,sha256=JmmDYAy9F1FpgJ_hWx0xkom2nTOFQjn4mTPYlU3PFo4,1245
|
17
18
|
modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
|
18
|
-
modal/app.py,sha256=
|
19
|
-
modal/app.pyi,sha256=
|
19
|
+
modal/app.py,sha256=KNfzLlkI2dJPl9LY8AgW76whZpwIvYKi2E2p9u4F3N4,43659
|
20
|
+
modal/app.pyi,sha256=vnQhENaQBhJO6el-ieOcw3NEeYQ314SFXRDtjij4DM8,25324
|
20
21
|
modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
|
21
|
-
modal/client.py,sha256=
|
22
|
-
modal/client.pyi,sha256=
|
23
|
-
modal/cloud_bucket_mount.py,sha256=
|
24
|
-
modal/cloud_bucket_mount.pyi,sha256=
|
25
|
-
modal/cls.py,sha256=
|
26
|
-
modal/cls.pyi,sha256=
|
22
|
+
modal/client.py,sha256=8SQawr7P1PNUCq1UmJMUQXG2jIo4Nmdcs311XqrNLRE,15276
|
23
|
+
modal/client.pyi,sha256=kzowbosjZXwpmAYhsd464XDVygnDt1nDYFxJNSNIjNg,7593
|
24
|
+
modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
|
25
|
+
modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
|
26
|
+
modal/cls.py,sha256=7Czu5ff8Sezzl4ayHyI9nMgB0el3401_uHvyZU4vbhc,32206
|
27
|
+
modal/cls.pyi,sha256=LrX2YVbcRqSKioOtXIMT9NShe4gaVYpDKt16SDZHh5s,8966
|
27
28
|
modal/config.py,sha256=BzhZYUUwOmvVwf6x5kf0ywMC257s648dmuhsnB6g3gk,11041
|
28
29
|
modal/container_process.py,sha256=WTqLn01dJPVkPpwR_0w_JH96ceN5mV4TGtiu1ZR2RRA,6108
|
29
|
-
modal/container_process.pyi,sha256=
|
30
|
-
modal/dict.py,sha256=
|
31
|
-
modal/dict.pyi,sha256=
|
32
|
-
modal/environments.py,sha256=
|
33
|
-
modal/environments.pyi,sha256=
|
30
|
+
modal/container_process.pyi,sha256=Hf0J5JyDdCCXBJSKx6gvkPOo0XrztCm78xzxamtzUjQ,2828
|
31
|
+
modal/dict.py,sha256=lKxvBcbcFZRARiqfolyRUW08x3RcozWL3MZuW2-Eu4U,12498
|
32
|
+
modal/dict.pyi,sha256=kKb0Kc6RUabtQ5Hwslg_vwL_OIrwIAJ2NXrJTepTtp4,7684
|
33
|
+
modal/environments.py,sha256=20doFhRnm1fae30LMOp8hSYbIfR7yFZTtbLdo5PrSj4,6661
|
34
|
+
modal/environments.pyi,sha256=RXE3slyEr9tWpfS84Fj7iUzNJy-SujlqWOQTE8A4Qaw,3537
|
34
35
|
modal/exception.py,sha256=4JyO-SACaLNDe2QC48EjsK8GMkZ8AgEurZ8j1YdRu8E,5263
|
35
|
-
modal/experimental.py,sha256=
|
36
|
+
modal/experimental.py,sha256=H9FXT3kshbjPLovshT10DicyOkGFrPqILy-qdTX-P7s,4015
|
37
|
+
modal/experimental.pyi,sha256=24tIYu_w9RLwFrz1cIsgYuqmDCtV8eg6-bQNz3zjhDo,939
|
36
38
|
modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
|
37
|
-
modal/file_io.pyi,sha256=
|
38
|
-
modal/file_pattern_matcher.py,sha256=
|
39
|
-
modal/functions.py,sha256=
|
40
|
-
modal/functions.pyi,sha256=
|
41
|
-
modal/gpu.py,sha256=
|
42
|
-
modal/image.py,sha256=
|
43
|
-
modal/image.pyi,sha256=
|
39
|
+
modal/file_io.pyi,sha256=NTRft1tbPSWf9TlWVeZmTlgB5AZ_Zhu2srWIrWr7brk,9445
|
40
|
+
modal/file_pattern_matcher.py,sha256=dSo7BMQGZBAuoBFOX-e_72HxmF3FLzjQlEtnGtJiaD4,6506
|
41
|
+
modal/functions.py,sha256=BrqbgeKpuoiA3-waNfdmUJfAGF7BsbQHvlTfAS1eHNQ,69046
|
42
|
+
modal/functions.pyi,sha256=m2a2ZnjqZFC6REG1_uhA5LM0O1etkFbQH3KnsLSXUKs,26533
|
43
|
+
modal/gpu.py,sha256=2qZMNnoMrjU-5Bu7fx68pANUAKTtZq0EWEEeBA9OUVQ,7426
|
44
|
+
modal/image.py,sha256=leeY7fLfFjS0IqTi3D4cRxIDOb80BPtb3jsQfqvVJ8c,90912
|
45
|
+
modal/image.pyi,sha256=QMKS6E3CsZr5DoyNqGpcJPBYJTJZSvtAQIsAhPVd_E4,26347
|
44
46
|
modal/io_streams.py,sha256=QkQiizKRzd5bnbKQsap31LJgBYlAnj4-XkV_50xPYX0,15079
|
45
|
-
modal/io_streams.pyi,sha256=
|
46
|
-
modal/mount.py,sha256=
|
47
|
-
modal/mount.pyi,sha256=
|
48
|
-
modal/network_file_system.py,sha256=
|
49
|
-
modal/network_file_system.pyi,sha256=
|
50
|
-
modal/object.py,sha256=
|
51
|
-
modal/object.pyi,sha256=
|
47
|
+
modal/io_streams.pyi,sha256=bJ7ZLmSmJ0nKoa6r4FJpbqvzdUVa0lEe0Fa-MMpMezU,5071
|
48
|
+
modal/mount.py,sha256=JuZZ2IJuypv1_9qK8R_LepX5oEWFTALdjIVA7_9HNC0,31802
|
49
|
+
modal/mount.pyi,sha256=dvdr4joSpW7oKnKyg9eDD0obFfekwZtW65j4NEomivQ,12523
|
50
|
+
modal/network_file_system.py,sha256=Jcr5Whar0MgA2YItJLJWmzHDnkkDlcOzO63TRkA64zA,14407
|
51
|
+
modal/network_file_system.pyi,sha256=4N3eqMbTSlqmS8VV_aJK-uvrgJC8xnf_YtW5FHfRfc8,8156
|
52
|
+
modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
|
53
|
+
modal/object.pyi,sha256=kyJkRQcVv3ct7zSAxvvXcuhBVeH914v80uSlqeS7cA4,5632
|
52
54
|
modal/output.py,sha256=N0xf4qeudEaYrslzdAl35VKV8rapstgIM2e9wO8_iy0,1967
|
53
|
-
modal/parallel_map.py,sha256=
|
54
|
-
modal/parallel_map.pyi,sha256=
|
55
|
-
modal/partial_function.py,sha256=
|
56
|
-
modal/partial_function.pyi,sha256=
|
57
|
-
modal/proxy.py,sha256=
|
58
|
-
modal/proxy.pyi,sha256=
|
55
|
+
modal/parallel_map.py,sha256=POBTyiWabe2e4qBNlsjjksiu1AAPEsNqI-mM8cgNFco,16042
|
56
|
+
modal/parallel_map.pyi,sha256=0ltjcIpPUqPGGOWmHqzCfBu5y3ISjRZDrqOJhiNhfYk,2522
|
57
|
+
modal/partial_function.py,sha256=4_hGVCCX-dYdjs_86Metfsuih8YyypiVMrExcwRGDS8,28711
|
58
|
+
modal/partial_function.pyi,sha256=Dj4WDxbGkXjxAbucSBSqr2_vrNbEWEAwdXnMzh2d80Y,9905
|
59
|
+
modal/proxy.py,sha256=NrOevrWxG3G7-zlyRzG6BcIvop7AWLeyahZxitbBaOk,1418
|
60
|
+
modal/proxy.pyi,sha256=1OEKIVUyC-xb7fHMzngakQso0nTsK60TVhXtlcMj6Wk,390
|
59
61
|
modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
|
-
modal/queue.py,sha256=
|
61
|
-
modal/queue.pyi,sha256=
|
62
|
+
modal/queue.py,sha256=HPnyJuX-THDEl2ak-xqf2lxYJMiQw4e37y4vHz6FRCg,18557
|
63
|
+
modal/queue.pyi,sha256=sgvELCK4bJXMZIZw7gllooGFZNipGjI3BT4rmUuyD9M,10282
|
62
64
|
modal/retries.py,sha256=HKR2Q9aNPWkMjQ5nwobqYTuZaSuw0a8lI2zrtY5IW98,5230
|
63
|
-
modal/runner.py,sha256=
|
65
|
+
modal/runner.py,sha256=0SCMgKO8lZ9W1C7le1EcgViKERMXpi_-QBd6PF_MH0Q,24450
|
64
66
|
modal/runner.pyi,sha256=YmP4EOCNjjkwSIPi2Gl6hF_ji_ytkxz9dw3iB9KXaOI,5275
|
65
67
|
modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
|
66
|
-
modal/sandbox.py,sha256=
|
67
|
-
modal/sandbox.pyi,sha256=
|
68
|
+
modal/sandbox.py,sha256=h5bgvt98iFmQs4aBu_d2aR6qP5UM5QVdP3wgm_P7RgE,29014
|
69
|
+
modal/sandbox.pyi,sha256=XtiDHYa4HOooyuEPmKFwEqO58AJBJVTceO_1HQyDwII,21343
|
68
70
|
modal/schedule.py,sha256=0ZFpKs1bOxeo5n3HZjoL7OE2ktsb-_oGtq-WJEPO4tY,2615
|
69
71
|
modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
|
70
|
-
modal/secret.py,sha256=
|
71
|
-
modal/secret.pyi,sha256=
|
72
|
+
modal/secret.py,sha256=XTqrpR4rnkuUb-bth3qM_xxPqqEWorSoN9qDwjWRcXo,10118
|
73
|
+
modal/secret.pyi,sha256=W4g_BOSxafYm-K9PvFc7-li3a-rsCFNkYgHTZXr1AFA,2974
|
72
74
|
modal/serving.py,sha256=MnVuTsimN05LfNPxuJZ4sr5s1_BPUkIsOP_VC-bkp78,4464
|
73
75
|
modal/serving.pyi,sha256=ncV-9jY_vZYFnGs5ZnMb3ffrX8LmcLdIMHBC56xRbtE,1711
|
74
76
|
modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
|
75
77
|
modal/token_flow.py,sha256=LcgSce_MSQ2p7j55DPwpVRpiAtCDe8GRSEwzO7muNR8,6774
|
76
|
-
modal/token_flow.pyi,sha256=
|
77
|
-
modal/volume.py,sha256=
|
78
|
-
modal/volume.pyi,sha256=
|
78
|
+
modal/token_flow.pyi,sha256=0XV3d-9CGQL3qjPdw3RgwIFVqqxo8Z-u044_mkgAM3o,2064
|
79
|
+
modal/volume.py,sha256=DdM9NhqNkqrk4BbAZdAgzI1jZws7NN2tYANO4OuM8hQ,29675
|
80
|
+
modal/volume.pyi,sha256=kTsXarphjZILXci84LQy7EyC84eXUs5-7D62IM5q3eE,12491
|
79
81
|
modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
80
82
|
modal/_runtime/asgi.py,sha256=c4hmaMW1pLo-cm7ouriJjieuFm4ZF6D2LMy0638sfOs,22139
|
81
|
-
modal/_runtime/container_io_manager.py,sha256=
|
83
|
+
modal/_runtime/container_io_manager.py,sha256=drb-cY78h8P9Krzmmjex7uZlSSocniEF5cIXmUcvGnY,43145
|
82
84
|
modal/_runtime/execution_context.py,sha256=E6ofm6j1POXGPxS841X3V7JU6NheVb8OkQc7JpLq4Kg,2712
|
83
85
|
modal/_runtime/telemetry.py,sha256=T1RoAGyjBDr1swiM6pPsGRSITm7LI5FDK18oNXxY08U,5163
|
84
|
-
modal/_runtime/user_code_imports.py,sha256=
|
86
|
+
modal/_runtime/user_code_imports.py,sha256=c06azC0MtYHHCGWWRGxsVY0uMAjQKe1QEj-i0oXqbWM,14699
|
85
87
|
modal/_utils/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
86
88
|
modal/_utils/app_utils.py,sha256=88BT4TPLWfYAQwKTHcyzNQRHg8n9B-QE2UyJs96iV-0,108
|
87
89
|
modal/_utils/async_utils.py,sha256=9ubwMkwiDB4gzOYG2jL9j7Fs-5dxHjcifZe3r7JRg-k,25091
|
@@ -108,25 +110,25 @@ modal/_vendor/tblib.py,sha256=g1O7QUDd3sDoLd8YPFltkXkih7r_fyZOjgmGuligv3s,9722
|
|
108
110
|
modal/cli/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
109
111
|
modal/cli/_download.py,sha256=t6BXZwjTd9MgznDvbsV8rp0FZWggdzC-lUAGZU4xx1g,3984
|
110
112
|
modal/cli/_traceback.py,sha256=QlLa_iw3fAOA-mqCqjS8qAxvNT48J3YY3errtVVc2cw,7316
|
111
|
-
modal/cli/app.py,sha256=
|
113
|
+
modal/cli/app.py,sha256=TmUiFKAE1yc6ll8pfl-wZ2lh9crC31Fu_8_YKCX8NJc,7818
|
112
114
|
modal/cli/config.py,sha256=pXPLmX0bIoV57rQNqIPK7V-yllj-GPRY4jiBO_EklGg,1667
|
113
|
-
modal/cli/container.py,sha256=
|
115
|
+
modal/cli/container.py,sha256=FYwEgjf93j4NMorAjGbSV98i1wpebqdAeNU1wfrFp1k,3668
|
114
116
|
modal/cli/dict.py,sha256=HaEcjfll7i3Uj3Fg56aj4407if5UljsYfr6fIq-D2W8,4589
|
115
117
|
modal/cli/entry_point.py,sha256=aaNxFAqZcmtSjwzkYIA_Ba9CkL4cL4_i2gy5VjoXxkM,4228
|
116
118
|
modal/cli/environment.py,sha256=Ayddkiq9jdj3XYDJ8ZmUqFpPPH8xajYlbexRkzGtUcg,4334
|
117
|
-
modal/cli/import_refs.py,sha256=
|
118
|
-
modal/cli/launch.py,sha256=
|
119
|
+
modal/cli/import_refs.py,sha256=vp4r28FGnag3hKRbR_haiuCIGmOTthrhcGhAqSwwc7Q,11753
|
120
|
+
modal/cli/launch.py,sha256=pzQt2QlcrbIUU0MVzWWPAvMQ6MCyqsHZ0X9JcV-sY04,3242
|
119
121
|
modal/cli/network_file_system.py,sha256=o6VLTgN4xn5XUiNPBfxYec-5uWCgYrDmfFFLM1ZW_eE,8180
|
120
122
|
modal/cli/profile.py,sha256=rLXfjJObfPNjaZvNfHGIKqs7y9bGYyGe-K7V0w-Ni0M,3110
|
121
123
|
modal/cli/queues.py,sha256=MIh2OsliNE2QeL1erubfsRsNuG4fxqcqWA2vgIfQ4Mg,4494
|
122
|
-
modal/cli/run.py,sha256=
|
124
|
+
modal/cli/run.py,sha256=1rIfCRuCJb5fJQPW2j9huHh9h72u45g708IXf3QXKB8,20051
|
123
125
|
modal/cli/secret.py,sha256=uQpwYrMY98iMCWeZOQTcktOYhPTZ8IHnyealDc2CZqo,4206
|
124
126
|
modal/cli/token.py,sha256=mxSgOWakXG6N71hQb1ko61XAR9ZGkTMZD-Txn7gmTac,1924
|
125
127
|
modal/cli/utils.py,sha256=hZmjyzcPjDnQSkLvycZD2LhGdcsfdZshs_rOU78EpvI,3717
|
126
128
|
modal/cli/volume.py,sha256=Jrm-1R9u92JbbUM62bkB9RzAM_jO8wi7T2-i6Cb2XG0,10568
|
127
129
|
modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
|
128
|
-
modal/cli/programs/run_jupyter.py,sha256=
|
129
|
-
modal/cli/programs/vscode.py,sha256=
|
130
|
+
modal/cli/programs/run_jupyter.py,sha256=1X8eQ3gB_IqkJn11Q4dQ9KdIqFVwQQlwkrrSqlFWfPQ,2685
|
131
|
+
modal/cli/programs/vscode.py,sha256=c5jKk1ruuC03X1D-hNc2jtTQqofCBweEZH_qxHjkHGo,3383
|
130
132
|
modal/extensions/__init__.py,sha256=waLjl5c6IPDhSsdWAm9Bji4e2PVxamYABKAze6CHVXY,28
|
131
133
|
modal/extensions/ipython.py,sha256=Xvzy-A7cvwMSDa9p4c4CEMLOX2_Xsg9DkM1J9uyu7jc,983
|
132
134
|
modal/requirements/2023.12.312.txt,sha256=zWWUVgVQ92GXBKNYYr2-5vn9rlnXcmkqlwlX5u1eTYw,400
|
@@ -148,13 +150,13 @@ modal_global_objects/mounts/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0
|
|
148
150
|
modal_global_objects/mounts/modal_client_package.py,sha256=W0E_yShsRojPzWm6LtIQqNVolapdnrZkm2hVEQuZK_4,767
|
149
151
|
modal_global_objects/mounts/python_standalone.py,sha256=pEML5GaV2_0ahci_1vpfc_FnySpsfi2fhYmFF5I7IiQ,1837
|
150
152
|
modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
|
151
|
-
modal_proto/api.proto,sha256=
|
152
|
-
modal_proto/api_grpc.py,sha256=
|
153
|
-
modal_proto/api_pb2.py,sha256=
|
154
|
-
modal_proto/api_pb2.pyi,sha256=
|
155
|
-
modal_proto/api_pb2_grpc.py,sha256=
|
156
|
-
modal_proto/api_pb2_grpc.pyi,sha256
|
157
|
-
modal_proto/modal_api_grpc.py,sha256=
|
153
|
+
modal_proto/api.proto,sha256=6Rt3GfhD5PWxmkAerWPFQZQ4TL7u0-s7PBcvajuKl5A,85069
|
154
|
+
modal_proto/api_grpc.py,sha256=_YeTxy_4EyqC4jp9eBsJWnziGRafK5c61kcvdWpJXRY,109089
|
155
|
+
modal_proto/api_pb2.py,sha256=uds7csRod6-2Hq3PehpeKJ82agfcfZc-fmKrQ4-01m0,310738
|
156
|
+
modal_proto/api_pb2.pyi,sha256=FBNlLVTt75Nq6G1JwnB_1nLz5WsK9XCOYoqNafXKSaA,413655
|
157
|
+
modal_proto/api_pb2_grpc.py,sha256=LlW5e2YKWPJS3lPYoJDyKjf1AxJSCCHi0DhupX05YyQ,235804
|
158
|
+
modal_proto/api_pb2_grpc.pyi,sha256=BM4068ohQqF1VUxvYdAYEVLgUebJVQvyrii-aXcel74,54910
|
159
|
+
modal_proto/modal_api_grpc.py,sha256=fYh-4oxTB8fB1NWrYm8S9-8umvKvAxJ58eNZ_e4B0WA,14556
|
158
160
|
modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
|
159
161
|
modal_proto/options.proto,sha256=a-siq4swVbZPfaFRXAipRZzGP2bq8OsdUvjlyzAeodQ,488
|
160
162
|
modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
|
@@ -165,10 +167,10 @@ modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0y
|
|
165
167
|
modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
166
168
|
modal_version/__init__.py,sha256=kGya2ZlItX2zB7oHORs-wvP4PG8lg_mtbi1QIK3G6SQ,470
|
167
169
|
modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
|
168
|
-
modal_version/_version_generated.py,sha256=
|
169
|
-
modal-0.72.
|
170
|
-
modal-0.72.
|
171
|
-
modal-0.72.
|
172
|
-
modal-0.72.
|
173
|
-
modal-0.72.
|
174
|
-
modal-0.72.
|
170
|
+
modal_version/_version_generated.py,sha256=Xs3RAy5-mYPVyOua-HPWlZv1-X6TY-gJwtgPIlQYUUk,149
|
171
|
+
modal-0.72.48.dist-info/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
|
172
|
+
modal-0.72.48.dist-info/METADATA,sha256=S1s3imUuaXBcrEehulLXvb7XNrPF6uYx7EGuoTcI1Pg,2329
|
173
|
+
modal-0.72.48.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
174
|
+
modal-0.72.48.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
|
175
|
+
modal-0.72.48.dist-info/top_level.txt,sha256=1nvYbOSIKcmU50fNrpnQnrrOpj269ei3LzgB6j9xGqg,64
|
176
|
+
modal-0.72.48.dist-info/RECORD,,
|
modal_proto/api.proto
CHANGED
@@ -4,6 +4,7 @@ package modal.client;
|
|
4
4
|
|
5
5
|
import "modal_proto/options.proto";
|
6
6
|
import "google/protobuf/empty.proto";
|
7
|
+
import "google/protobuf/struct.proto";
|
7
8
|
import "google/protobuf/wrappers.proto";
|
8
9
|
|
9
10
|
enum AppDeployVisibility {
|
@@ -81,6 +82,7 @@ enum ClientType {
|
|
81
82
|
CLIENT_TYPE_WORKER = 2;
|
82
83
|
CLIENT_TYPE_CONTAINER = 3;
|
83
84
|
CLIENT_TYPE_WEB_SERVER = 5;
|
85
|
+
CLIENT_TYPE_NOTEBOOK_KERNEL = 6;
|
84
86
|
}
|
85
87
|
|
86
88
|
enum CloudProvider {
|
@@ -150,6 +152,7 @@ enum GPUType {
|
|
150
152
|
GPU_TYPE_L4 = 9;
|
151
153
|
GPU_TYPE_H100 = 10;
|
152
154
|
GPU_TYPE_L40S = 11;
|
155
|
+
GPU_TYPE_H200 = 12;
|
153
156
|
}
|
154
157
|
|
155
158
|
enum ObjectCreationType {
|
@@ -337,6 +340,7 @@ message AppGetLogsRequest {
|
|
337
340
|
string function_id = 5;
|
338
341
|
string input_id = 6;
|
339
342
|
string task_id = 7;
|
343
|
+
string function_call_id = 9;
|
340
344
|
FileDescriptor file_descriptor = 8;
|
341
345
|
}
|
342
346
|
|
@@ -605,6 +609,8 @@ message CheckpointInfo {
|
|
605
609
|
int64 size = 5;
|
606
610
|
bool checksum_is_file_index = 6;
|
607
611
|
string original_task_id = 7;
|
612
|
+
// snapshot version used to take the checkpoint
|
613
|
+
uint32 snapshot_version = 8;
|
608
614
|
}
|
609
615
|
|
610
616
|
message ClassCreateRequest {
|
@@ -712,6 +718,7 @@ message CloudBucketMount {
|
|
712
718
|
bool requester_pays = 6;
|
713
719
|
optional string bucket_endpoint_url = 7;
|
714
720
|
optional string key_prefix = 8;
|
721
|
+
optional string oidc_auth_role_arn = 9;
|
715
722
|
}
|
716
723
|
|
717
724
|
message ContainerArguments { // This is used to pass data from the worker to the container
|
@@ -1157,7 +1164,7 @@ message Function {
|
|
1157
1164
|
|
1158
1165
|
uint32 task_idle_timeout_secs = 25;
|
1159
1166
|
|
1160
|
-
optional CloudProvider cloud_provider = 26;
|
1167
|
+
optional CloudProvider cloud_provider = 26; // Deprecated at some point
|
1161
1168
|
|
1162
1169
|
uint32 warm_pool_size = 27;
|
1163
1170
|
|
@@ -1251,6 +1258,8 @@ message Function {
|
|
1251
1258
|
bool method_definitions_set = 75;
|
1252
1259
|
|
1253
1260
|
bool _experimental_custom_scaling = 76;
|
1261
|
+
|
1262
|
+
string cloud_provider_str = 77; // Supersedes cloud_provider
|
1254
1263
|
}
|
1255
1264
|
|
1256
1265
|
message FunctionAsyncInvokeRequest {
|
@@ -1661,9 +1670,10 @@ message FunctionUpdateSchedulingParamsRequest {
|
|
1661
1670
|
message FunctionUpdateSchedulingParamsResponse {}
|
1662
1671
|
|
1663
1672
|
message GPUConfig {
|
1664
|
-
GPUType type = 1;
|
1673
|
+
GPUType type = 1; // Deprecated, at some point
|
1665
1674
|
uint32 count = 2;
|
1666
1675
|
uint32 memory = 3;
|
1676
|
+
string gpu_type = 4;
|
1667
1677
|
}
|
1668
1678
|
|
1669
1679
|
message GeneratorDone { // Sent as the output when a generator finishes running.
|
@@ -1879,6 +1889,76 @@ message NetworkAccess {
|
|
1879
1889
|
repeated string allowed_cidrs = 2;
|
1880
1890
|
}
|
1881
1891
|
|
1892
|
+
message NotebookKernelPublishResultsRequest {
|
1893
|
+
// See kernelshim.py for the differences between this and `ExecuteResult`.
|
1894
|
+
// https://jupyter-client.readthedocs.io/en/stable/messaging.html#execution-results
|
1895
|
+
message ExecuteReply {
|
1896
|
+
string status = 1;
|
1897
|
+
uint32 execution_count = 2;
|
1898
|
+
}
|
1899
|
+
|
1900
|
+
// IOPub message or reply received from the kernel for a cell.
|
1901
|
+
message CellResult {
|
1902
|
+
string cell_id = 1;
|
1903
|
+
|
1904
|
+
oneof result_type {
|
1905
|
+
// Persistent output that is saved in the notebook.
|
1906
|
+
NotebookOutput output = 2;
|
1907
|
+
|
1908
|
+
// Clear all previous outputs of the cell.
|
1909
|
+
bool clear_output = 3;
|
1910
|
+
|
1911
|
+
// Cell has finished executing, return the kernel's execute_reply.
|
1912
|
+
ExecuteReply execute_reply = 4;
|
1913
|
+
}
|
1914
|
+
}
|
1915
|
+
|
1916
|
+
string notebook_id = 1;
|
1917
|
+
repeated CellResult results = 2;
|
1918
|
+
}
|
1919
|
+
|
1920
|
+
// A single output from a notebook. When you execute a cell, it produces an
|
1921
|
+
// array of these outputs as the code runs.
|
1922
|
+
//
|
1923
|
+
// https://github.com/jupyter/nbformat/blob/v5.10.4/nbformat/v4/nbformat.v4.schema.json#L301-L309
|
1924
|
+
message NotebookOutput {
|
1925
|
+
// Result of executing a code cell.
|
1926
|
+
message ExecuteResult {
|
1927
|
+
uint32 execution_count = 1;
|
1928
|
+
google.protobuf.Struct data = 2; // mimebundle
|
1929
|
+
google.protobuf.Struct metadata = 3;
|
1930
|
+
}
|
1931
|
+
|
1932
|
+
// Data displayed as a result of code cell execution.
|
1933
|
+
message DisplayData {
|
1934
|
+
google.protobuf.Struct data = 1; // mimebundle
|
1935
|
+
google.protobuf.Struct metadata = 2;
|
1936
|
+
|
1937
|
+
// This should not be included in saved notebook.
|
1938
|
+
optional string transient_display_id = 3;
|
1939
|
+
}
|
1940
|
+
|
1941
|
+
// Stream output from a code cell (stdout / stderr).
|
1942
|
+
message Stream {
|
1943
|
+
string name = 1; // stdout | stderr
|
1944
|
+
string text = 2; // multiline_string
|
1945
|
+
}
|
1946
|
+
|
1947
|
+
// Output of an error that occurred during code cell execution.
|
1948
|
+
message Error {
|
1949
|
+
string ename = 1;
|
1950
|
+
string evalue = 2;
|
1951
|
+
repeated string traceback = 3;
|
1952
|
+
}
|
1953
|
+
|
1954
|
+
oneof output_type {
|
1955
|
+
ExecuteResult execute_result = 1;
|
1956
|
+
DisplayData display_data = 2;
|
1957
|
+
Stream stream = 3;
|
1958
|
+
Error error = 4;
|
1959
|
+
}
|
1960
|
+
}
|
1961
|
+
|
1882
1962
|
message Object {
|
1883
1963
|
string object_id = 1;
|
1884
1964
|
oneof handle_metadata_oneof {
|
@@ -1925,6 +2005,14 @@ message Proxy {
|
|
1925
2005
|
repeated ProxyIp proxy_ips = 4;
|
1926
2006
|
}
|
1927
2007
|
|
2008
|
+
message ProxyAddIpRequest {
|
2009
|
+
string proxy_id = 1 [ (modal.options.audit_target_attr) = true ];
|
2010
|
+
}
|
2011
|
+
|
2012
|
+
message ProxyAddIpResponse {
|
2013
|
+
ProxyIp proxy_ip = 1;
|
2014
|
+
}
|
2015
|
+
|
1928
2016
|
message ProxyCreateRequest {
|
1929
2017
|
string name = 1 [ (modal.options.audit_target_attr) = true ];
|
1930
2018
|
string environment_name = 2;
|
@@ -1977,6 +2065,10 @@ message ProxyListResponse {
|
|
1977
2065
|
repeated Proxy proxies = 1;
|
1978
2066
|
}
|
1979
2067
|
|
2068
|
+
message ProxyRemoveIpRequest {
|
2069
|
+
string proxy_ip = 1 [ (modal.options.audit_target_attr) = true ];
|
2070
|
+
}
|
2071
|
+
|
1980
2072
|
message QueueClearRequest {
|
1981
2073
|
string queue_id = 1;
|
1982
2074
|
bytes partition_key = 2;
|
@@ -2116,7 +2208,7 @@ message Sandbox {
|
|
2116
2208
|
repeated string secret_ids = 4;
|
2117
2209
|
|
2118
2210
|
Resources resources = 5;
|
2119
|
-
CloudProvider cloud_provider = 6;
|
2211
|
+
CloudProvider cloud_provider = 6; // Deprecated at some point
|
2120
2212
|
|
2121
2213
|
uint32 timeout_secs = 7;
|
2122
2214
|
|
@@ -2152,6 +2244,16 @@ message Sandbox {
|
|
2152
2244
|
NetworkAccess network_access = 22;
|
2153
2245
|
|
2154
2246
|
optional string proxy_id = 23;
|
2247
|
+
|
2248
|
+
// Enable snapshotting the sandbox (both memory and filesystem).
|
2249
|
+
// This doesn't need to be enabled to save the filesystem as an image (i.e. a filesystem-only snapshot).
|
2250
|
+
bool enable_snapshot = 24;
|
2251
|
+
|
2252
|
+
// Used to pin gVisor version for memory-snapshottable sandboxes.
|
2253
|
+
// This field is set by the server, not the client.
|
2254
|
+
optional uint32 snapshot_version = 25;
|
2255
|
+
|
2256
|
+
string cloud_provider_str = 26; // Supersedes cloud_provider
|
2155
2257
|
}
|
2156
2258
|
|
2157
2259
|
message SandboxCreateRequest {
|
@@ -2173,10 +2275,13 @@ message SandboxGetLogsRequest {
|
|
2173
2275
|
|
2174
2276
|
message SandboxGetTaskIdRequest {
|
2175
2277
|
string sandbox_id = 1;
|
2278
|
+
optional float timeout = 2; // Legacy clients do not provide a timeout. New clients must always provide a timeout.
|
2279
|
+
bool wait_until_ready = 3; // If true, waits until the container's postStart hook has been run before returning. Useful for detecting init failures.
|
2176
2280
|
}
|
2177
2281
|
|
2178
2282
|
message SandboxGetTaskIdResponse {
|
2179
|
-
string task_id = 1;
|
2283
|
+
optional string task_id = 1; // This is None if the sandbox was terminated before a task could be scheduled.
|
2284
|
+
optional GenericResult task_result = 2; // If the task has already exited, this is the result.
|
2180
2285
|
}
|
2181
2286
|
|
2182
2287
|
message SandboxGetTunnelsRequest {
|
@@ -2213,6 +2318,22 @@ message SandboxListResponse {
|
|
2213
2318
|
repeated SandboxInfo sandboxes = 1;
|
2214
2319
|
}
|
2215
2320
|
|
2321
|
+
message SandboxRestoreRequest {
|
2322
|
+
string snapshot_id = 1;
|
2323
|
+
}
|
2324
|
+
|
2325
|
+
message SandboxRestoreResponse {
|
2326
|
+
string sandbox_id = 1;
|
2327
|
+
}
|
2328
|
+
|
2329
|
+
message SandboxSnapshotFromIdRequest {
|
2330
|
+
string snapshot_id = 1;
|
2331
|
+
}
|
2332
|
+
|
2333
|
+
message SandboxSnapshotFromIdResponse {
|
2334
|
+
string snapshot_id = 1;
|
2335
|
+
}
|
2336
|
+
|
2216
2337
|
message SandboxSnapshotFsRequest {
|
2217
2338
|
string sandbox_id = 1;
|
2218
2339
|
float timeout = 2;
|
@@ -2225,6 +2346,23 @@ message SandboxSnapshotFsResponse {
|
|
2225
2346
|
ImageMetadata image_metadata = 3;
|
2226
2347
|
}
|
2227
2348
|
|
2349
|
+
message SandboxSnapshotRequest {
|
2350
|
+
string sandbox_id = 1;
|
2351
|
+
}
|
2352
|
+
|
2353
|
+
message SandboxSnapshotResponse {
|
2354
|
+
string snapshot_id = 1;
|
2355
|
+
}
|
2356
|
+
|
2357
|
+
message SandboxSnapshotWaitRequest {
|
2358
|
+
string snapshot_id = 1;
|
2359
|
+
float timeout = 2;
|
2360
|
+
}
|
2361
|
+
|
2362
|
+
message SandboxSnapshotWaitResponse {
|
2363
|
+
GenericResult result = 1;
|
2364
|
+
}
|
2365
|
+
|
2228
2366
|
message SandboxStdinWriteRequest {
|
2229
2367
|
string sandbox_id = 1;
|
2230
2368
|
bytes input = 2;
|
@@ -2820,12 +2958,17 @@ service ModalClient {
|
|
2820
2958
|
rpc MountGetOrCreate(MountGetOrCreateRequest) returns (MountGetOrCreateResponse);
|
2821
2959
|
rpc MountPutFile(MountPutFileRequest) returns (MountPutFileResponse);
|
2822
2960
|
|
2961
|
+
// Notebooks
|
2962
|
+
rpc NotebookKernelPublishResults(NotebookKernelPublishResultsRequest) returns (google.protobuf.Empty);
|
2963
|
+
|
2823
2964
|
// Proxies
|
2965
|
+
rpc ProxyAddIp(ProxyAddIpRequest) returns (ProxyAddIpResponse);
|
2824
2966
|
rpc ProxyCreate(ProxyCreateRequest) returns (ProxyCreateResponse);
|
2825
2967
|
rpc ProxyDelete(ProxyDeleteRequest) returns (google.protobuf.Empty);
|
2826
2968
|
rpc ProxyGet(ProxyGetRequest) returns (ProxyGetResponse);
|
2827
2969
|
rpc ProxyGetOrCreate(ProxyGetOrCreateRequest) returns (ProxyGetOrCreateResponse);
|
2828
2970
|
rpc ProxyList(google.protobuf.Empty) returns (ProxyListResponse);
|
2971
|
+
rpc ProxyRemoveIp(ProxyRemoveIpRequest) returns (google.protobuf.Empty);
|
2829
2972
|
|
2830
2973
|
// Queues
|
2831
2974
|
rpc QueueClear(QueueClearRequest) returns (google.protobuf.Empty);
|
@@ -2844,7 +2987,11 @@ service ModalClient {
|
|
2844
2987
|
rpc SandboxGetTaskId(SandboxGetTaskIdRequest) returns (SandboxGetTaskIdResponse); // needed for modal container exec
|
2845
2988
|
rpc SandboxGetTunnels(SandboxGetTunnelsRequest) returns (SandboxGetTunnelsResponse);
|
2846
2989
|
rpc SandboxList(SandboxListRequest) returns (SandboxListResponse);
|
2990
|
+
rpc SandboxRestore(SandboxRestoreRequest) returns (SandboxRestoreResponse);
|
2991
|
+
rpc SandboxSnapshot(SandboxSnapshotRequest) returns (SandboxSnapshotResponse);
|
2992
|
+
rpc SandboxSnapshotFromId(SandboxSnapshotFromIdRequest) returns (SandboxSnapshotFromIdResponse);
|
2847
2993
|
rpc SandboxSnapshotFs(SandboxSnapshotFsRequest) returns (SandboxSnapshotFsResponse);
|
2994
|
+
rpc SandboxSnapshotWait(SandboxSnapshotWaitRequest) returns (SandboxSnapshotWaitResponse);
|
2848
2995
|
rpc SandboxStdinWrite(SandboxStdinWriteRequest) returns (SandboxStdinWriteResponse);
|
2849
2996
|
rpc SandboxTagsSet(SandboxTagsSetRequest) returns (google.protobuf.Empty);
|
2850
2997
|
rpc SandboxTerminate(SandboxTerminateRequest) returns (SandboxTerminateResponse);
|