modal 0.77.0__py3-none-any.whl → 1.0.0__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.

Files changed (51) hide show
  1. modal/__init__.py +10 -4
  2. modal/_functions.py +15 -90
  3. modal/_object.py +0 -14
  4. modal/_partial_function.py +4 -14
  5. modal/_serialization.py +2 -2
  6. modal/_utils/function_utils.py +3 -6
  7. modal/_utils/grpc_utils.py +6 -1
  8. modal/app.py +1 -104
  9. modal/app.pyi +0 -127
  10. modal/cli/app.py +0 -19
  11. modal/cli/programs/run_jupyter.py +1 -1
  12. modal/cli/programs/vscode.py +1 -1
  13. modal/client.pyi +2 -2
  14. modal/cls.py +9 -14
  15. modal/cls.pyi +2 -17
  16. modal/config.py +5 -16
  17. modal/container_process.py +1 -9
  18. modal/container_process.pyi +3 -3
  19. modal/dict.py +3 -5
  20. modal/environments.py +1 -3
  21. modal/exception.py +1 -1
  22. modal/functions.pyi +8 -29
  23. modal/image.py +12 -36
  24. modal/image.pyi +2 -5
  25. modal/mount.py +2 -65
  26. modal/mount.pyi +0 -1
  27. modal/network_file_system.py +3 -5
  28. modal/object.pyi +0 -6
  29. modal/queue.py +3 -5
  30. modal/runner.py +2 -19
  31. modal/runner.pyi +0 -5
  32. modal/sandbox.py +78 -32
  33. modal/sandbox.pyi +102 -7
  34. modal/secret.py +1 -3
  35. modal/serving.py +0 -6
  36. modal/serving.pyi +0 -3
  37. modal/volume.py +8 -17
  38. {modal-0.77.0.dist-info → modal-1.0.0.dist-info}/METADATA +1 -1
  39. {modal-0.77.0.dist-info → modal-1.0.0.dist-info}/RECORD +51 -51
  40. modal_proto/api.proto +29 -1
  41. modal_proto/api_grpc.py +32 -0
  42. modal_proto/api_pb2.py +788 -756
  43. modal_proto/api_pb2.pyi +86 -9
  44. modal_proto/api_pb2_grpc.py +66 -0
  45. modal_proto/api_pb2_grpc.pyi +20 -0
  46. modal_proto/modal_api_grpc.py +2 -0
  47. modal_version/__init__.py +1 -1
  48. {modal-0.77.0.dist-info → modal-1.0.0.dist-info}/WHEEL +0 -0
  49. {modal-0.77.0.dist-info → modal-1.0.0.dist-info}/entry_points.txt +0 -0
  50. {modal-0.77.0.dist-info → modal-1.0.0.dist-info}/licenses/LICENSE +0 -0
  51. {modal-0.77.0.dist-info → modal-1.0.0.dist-info}/top_level.txt +0 -0
@@ -1,56 +1,56 @@
1
- modal/__init__.py,sha256=7wz1AT_bpWJJEzXsAo3QMb7i87y7UGXwfneb0bGDhRg,2502
1
+ modal/__init__.py,sha256=1131svUxi876UMFC6Z68qe5Z031ZfZ9NrduvGwHphj8,2710
2
2
  modal/__main__.py,sha256=sTJcc9EbDuCKSwg3tL6ZckFw9WWdlkXW8mId1IvJCNc,2846
3
3
  modal/_clustered_functions.py,sha256=kTf-9YBXY88NutC1akI-gCbvf01RhMPCw-zoOI_YIUE,2700
4
4
  modal/_clustered_functions.pyi,sha256=2aWxN2v5WUnj-R-sk6BzJ-3AvggkQGQjwhtvbDH3pds,777
5
5
  modal/_container_entrypoint.py,sha256=2Zx9O_EMJg0H77EdnC2vGKs6uFMWwbP1NLFf-qYmWmU,28962
6
- modal/_functions.py,sha256=MbH2KMEpzcurMnwUZijf8UStcEiUDEEUHvB2ZbhRYzQ,80892
6
+ modal/_functions.py,sha256=HSQ8BVar2RsMD4ud83iUKvE7NSyEoVsTc-3quW8YObA,77149
7
7
  modal/_ipython.py,sha256=TW1fkVOmZL3YYqdS2YlM1hqpf654Yf8ZyybHdBnlhSw,301
8
8
  modal/_location.py,sha256=joiX-0ZeutEUDTrrqLF1GHXCdVLF-rHzstocbMcd_-k,366
9
- modal/_object.py,sha256=6ve4sI2nRAnjPCuAXdSoUplaXfzC9MqRlF_ZLULwwy0,11472
9
+ modal/_object.py,sha256=KzzzZoM41UQUiY9TKOrft9BtZKgjWG_ukdlyLGjB4UY,10758
10
10
  modal/_output.py,sha256=Z0nngPh2mKHMQc4MQ92YjVPc3ewOLa3I4dFBlL9nvQY,25656
11
- modal/_partial_function.py,sha256=TWqbBERQR0Xyl0UWAmhD2Q7EXyGPYJr8kIU2pY5i3TM,39767
11
+ modal/_partial_function.py,sha256=wzUo_p8arngumPkM5sNIrZ2DluqJl-Z6w5Ds1jHGlyw,39151
12
12
  modal/_pty.py,sha256=JZfPDDpzqICZqtyPI_oMJf_9w-p_lLNuzHhwhodUXio,1329
13
13
  modal/_resolver.py,sha256=-nolqj_p_mx5czVYj1Mazh2IQWpSMrTOGughVJqYfo8,7579
14
14
  modal/_resources.py,sha256=NMAp0GCLutiZI4GuKSIVnRHVlstoD3hNGUabjTUtzf4,1794
15
- modal/_serialization.py,sha256=wAgaALThfr-DBV9LMhM4qY_PCH7SRhA9xgoHL2bapBk,22963
15
+ modal/_serialization.py,sha256=iiD1SnSyEYRmZiVCaaWKJC87CamV-rqnyqs91XUjqoo,22971
16
16
  modal/_traceback.py,sha256=IZQzB3fVlUfMHOSyKUgw0H6qv4yHnpyq-XVCNZKfUdA,5023
17
17
  modal/_tunnel.py,sha256=zTBxBiuH1O22tS1OliAJdIsSmaZS8PlnifS_6S5z-mk,6320
18
18
  modal/_tunnel.pyi,sha256=a4Ea0RQ5jaJB0A4LH9FANGB44ObqkHHGVDV4RwtokzU,1251
19
19
  modal/_type_manager.py,sha256=DWjgmjYJuOagw2erin506UUbG2H5UzZCFEekS-7hmfA,9087
20
20
  modal/_watcher.py,sha256=K6LYnlmSGQB4tWWI9JADv-tvSvQ1j522FwT71B51CX8,3584
21
- modal/app.py,sha256=xojuGZv4LaQwZU5ntj7WbmMjeNuB9Gll8Mzqe2LyiEs,51323
22
- modal/app.pyi,sha256=zNwR1_2LpmQc9AhemuAeVdk90XNYDw9keOkXAwAATeA,28732
21
+ modal/app.py,sha256=NZ_rJ9TuMfiNiLg8-gOFgufD5flGtXWPHOZI0gdD3hE,46585
22
+ modal/app.pyi,sha256=4-b_vbe3lNAqQPcMRpQCEDsE1zsVkQRJGUql9B7HvbM,22659
23
23
  modal/call_graph.py,sha256=1g2DGcMIJvRy-xKicuf63IVE98gJSnQsr8R_NVMptNc,2581
24
24
  modal/client.py,sha256=o-aQThHpvDHUzg_kUafyhWzACViUBhY2WLZ2EitnSHA,16787
25
- modal/client.pyi,sha256=TCD_6ttf07fC_U5v71bgAJRITGmeRovmCksu0kFAwic,8383
25
+ modal/client.pyi,sha256=6PCtQqik5MbzfutNetQam4NQdO8xmjL_RKyUMZzZzmQ,8381
26
26
  modal/cloud_bucket_mount.py,sha256=YOe9nnvSr4ZbeCn587d7_VhE9IioZYRvF9VYQTQux08,5914
27
27
  modal/cloud_bucket_mount.pyi,sha256=30T3K1a89l6wzmEJ_J9iWv9SknoGqaZDx59Xs-ZQcmk,1607
28
- modal/cls.py,sha256=LZMQdFZ06LpbLDbsCJknniU-393Jb44E1lqveLVM8F8,38365
29
- modal/cls.pyi,sha256=BmFCoiFS4EQjkx36iybAFNpxu6xaq24lyJpQuCsB-ko,12990
30
- modal/config.py,sha256=OOMEJ5LHNFbHRW5wUpuhl0TH6EPW8D1XV9I3OJXrZrk,12668
31
- modal/container_process.py,sha256=vvyK3DVPUMsuqvkKdUiQ49cDLF9JawGrxpglLk5vfgI,6208
32
- modal/container_process.pyi,sha256=cR4aRHTbcVvmxGCc1_k2Ey8JllJIAQYq9PBKx0_1TuI,2916
33
- modal/dict.py,sha256=SSf8zjaj33tX11gM3dEGEeLaHmd6txTzujR4noeKag4,14491
28
+ modal/cls.py,sha256=dBbeARwOWftlKd1cwtM0cHFtQWSWkwVXwVmOV4w0SyI,37907
29
+ modal/cls.pyi,sha256=-gSV02T5S1La1dvmHHB_f139nNySk5MeXRSF4yp8z4s,12660
30
+ modal/config.py,sha256=e8sQ4RgwgJ_45S302vWUWs_wqRlKyEt3tU898RiaDKE,12073
31
+ modal/container_process.py,sha256=PDvjcyZ6eeN8foKQgR0WJ66Sg3lt7OFhK7Y_Akz6k5w,5846
32
+ modal/container_process.pyi,sha256=pPIUxVV_TY4huO2jF5cSSjb6L_EN7Es4xRvuwZ5sa5M,2802
33
+ modal/dict.py,sha256=w-Zuk3FXuwkyxKuF1ry86S8j2cvoC8-u4Ga0h-GfV1s,14324
34
34
  modal/dict.pyi,sha256=RBaQyOd1ABRNN7vIf5L_rv94y7Kq5Qn9IlKHSr4j8N0,8120
35
- modal/environments.py,sha256=t_TdUyORfIjlEAOS7I4My1qHi0cVsjPxwKloLmAAZMc,6935
35
+ modal/environments.py,sha256=gHFNLG78bqgizpQ4w_elz27QOqmcgAonFsmLs7NjUJ4,6804
36
36
  modal/environments.pyi,sha256=4HbI0kywveaUVI7HqDtZ4HphCTGXYi_wie2hz87up5A,3425
37
- modal/exception.py,sha256=4JyO-SACaLNDe2QC48EjsK8GMkZ8AgEurZ8j1YdRu8E,5263
37
+ modal/exception.py,sha256=cDiZMzkKZ2nLhaYG0Dt-_1YZs5LZEyUJNF05WqyCX90,5262
38
38
  modal/file_io.py,sha256=lcMs_E9Xfm0YX1t9U2wNIBPnqHRxmImqjLW1GHqVmyg,20945
39
39
  modal/file_io.pyi,sha256=oB7x-rKq7bmm8cA7Z7W9C9yeko7KK9m9i5GidFnkGK4,9569
40
40
  modal/file_pattern_matcher.py,sha256=wov-otB5M1oTdrYDtR2_VgacYin2srdtAP4McA1Cqzw,6516
41
41
  modal/functions.py,sha256=kcNHvqeGBxPI7Cgd57NIBBghkfbeFJzXO44WW0jSmao,325
42
- modal/functions.pyi,sha256=0RGY6ZEkaHZcxhKrY_DnwYew9vDIK7hW8BY0LFjm2GM,17001
42
+ modal/functions.pyi,sha256=5T58OucdNU4I-LqhBdwsWSAGka-Wa8nP2GcZ5K1bOL0,16236
43
43
  modal/gpu.py,sha256=Kbhs_u49FaC2Zi0TjCdrpstpRtT5eZgecynmQi5IZVE,6752
44
- modal/image.py,sha256=lg3XxIWNYV8je88oEPbihzSEq_9gumc0NLbzZLAhm74,92807
45
- modal/image.pyi,sha256=MDq7tNJevElK78VxFYrZRe_00kz9gPdg98MN5c6fFoE,25644
44
+ modal/image.py,sha256=yfOaKHS0YQtaAB1lb9Dv22fV5jqp_7qeIYLtz5vVc6w,91751
45
+ modal/image.pyi,sha256=V0IKbs_fAvkxzFrceJm5W_Dl4s5ATy4LEy8L2tMuemQ,25455
46
46
  modal/io_streams.py,sha256=YDZVQSDv05DeXg5TwcucC9Rj5hQBx2GXdluan9rIUpw,15467
47
47
  modal/io_streams.pyi,sha256=1UK6kWLREASQfq-wL9wSp5iqjLU0egRZPDn4LXs1PZY,5136
48
- modal/mount.py,sha256=W6crHw7v-fSJ8WN3MjNwzuU1ZBapk2RA05M2x-eM3U0,32975
49
- modal/mount.pyi,sha256=PHs-N9LGSDfYWw70UrhvGZW_6uWwyx-1GAieROzCNNs,12583
50
- modal/network_file_system.py,sha256=9_4EFTM1tKSTdwk0f4beSlWCiat6gC6ZjbsOWje07TM,14779
48
+ modal/mount.py,sha256=HbpGQbqqT5pTP4dh8j6USWXb2Fr1ro3V1uHIardkya4,30726
49
+ modal/mount.pyi,sha256=_qDhjR8Xg0ArdCw0JCivhhLCQO-Q-n_RlG5Ct4yJBQ0,12528
50
+ modal/network_file_system.py,sha256=lgtmHYjzA5gDMx0tysH0-WJB2Ao9JD2W15NyYK2A7_w,14612
51
51
  modal/network_file_system.pyi,sha256=58DiUqHGlARmI3cz-Yo7IFObKKFIiGh5UIU5JxGNFfc,8333
52
52
  modal/object.py,sha256=bTeskuY8JFrESjU4_UL_nTwYlBQdOLmVaOX3X6EMxsg,164
53
- modal/object.pyi,sha256=Nc6fCW8ViC8YQPbtJav9KNDCW296-VimRUh-v3AaaYY,5674
53
+ modal/object.pyi,sha256=UkR8NQ1jCIaw3hBUPxBRc6vvrOqtV37G_hsW2O5-4wE,5378
54
54
  modal/output.py,sha256=q4T9uHduunj4NwY-YSwkHGgjZlCXMuJbfQ5UFaAGRAc,1968
55
55
  modal/parallel_map.py,sha256=zU2zL8_9PmmNC9Ny2GB7K2_HbAdPU7RiVLN0GtzaDls,35923
56
56
  modal/parallel_map.pyi,sha256=mhYGQmufQEJbjNrX7vNhBS2gUdfBrpmuWNUHth_Dz6U,6140
@@ -59,26 +59,26 @@ modal/partial_function.pyi,sha256=NFWz1aCAs2B3-GnPf1cTatWRZOLnYpFKCnjP_X9iNRs,64
59
59
  modal/proxy.py,sha256=XEjIHzZvbD3UW4YWyDzbDuNFq6hDUxyPPxupl2qwULY,1429
60
60
  modal/proxy.pyi,sha256=FTTK1g3La8oLf0oXWeoTp1jMVKghzN_2UmESJoLvsn0,396
61
61
  modal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- modal/queue.py,sha256=6ZPwXhRftUTDfkioZNEZDjITihr3KK9PJ1lTOCA8NrE,18996
62
+ modal/queue.py,sha256=lu-QYW8GTqhZgX0TPTndmltT9uIWgLFV5mKZ_yTfmd4,18829
63
63
  modal/queue.pyi,sha256=O0f0S5kM1P0GVgzUzgsN0XsI46B9cJem4kkWluFndjM,10632
64
64
  modal/retries.py,sha256=IvNLDM0f_GLUDD5VgEDoN09C88yoxSrCquinAuxT1Sc,5205
65
- modal/runner.py,sha256=yK1mBkX1_ZKvvWLoe1e2mGehJSWs97Mpyglo9Oj5rQw,24783
66
- modal/runner.pyi,sha256=VKy-92YSJWs_u5KqYO9HBxRwL2Ndi4xrlqiTIQPSvsM,5407
65
+ modal/runner.py,sha256=nvpnU7U2O5d2WqME1QUTTwu-NkSLLwblytlGk7HXPAw,24152
66
+ modal/runner.pyi,sha256=1AnEu48SUPnLWp3raQ2zJCV5lc85EGLkX2nL0bHWaB0,5162
67
67
  modal/running_app.py,sha256=v61mapYNV1-O-Uaho5EfJlryMLvIT9We0amUOSvSGx8,1188
68
- modal/sandbox.py,sha256=aLW1hCMrk9ndfXaWjDcknS0U-ei-GhUpSjo-pURrnW8,32722
69
- modal/sandbox.pyi,sha256=_40Mjzj9iO8MrMqb5snlnQZ5FAy2bEv5-8BGbqqgxLk,22959
68
+ modal/sandbox.py,sha256=VwbbQPK6e03kp11M8SQWbe6SLWSOwMaFwoQLYdP5EV0,35573
69
+ modal/sandbox.pyi,sha256=stxwoLcyQNToPISj6umlU8sDUgqzeooLdMs3BwIr740,28195
70
70
  modal/schedule.py,sha256=ewa7hb9NKYnoeSCW2PujZAbGGJL8btX6X3KalCFpc_M,2626
71
71
  modal/scheduler_placement.py,sha256=BAREdOY5HzHpzSBqt6jDVR6YC_jYfHMVqOzkyqQfngU,1235
72
- modal/secret.py,sha256=oczsOxMDifDusYA6_w49bGTDujHbxefyWNGspq62LRE,10505
72
+ modal/secret.py,sha256=I2z-rgKWl_Ix107d2_Y2OWGXdFOuJ7zMOyDfIOdFI1A,10374
73
73
  modal/secret.pyi,sha256=NY_dz0UjiYyn4u4LaBZwPP3Ji7SlTLpEyzrYK2sj9HQ,3103
74
- modal/serving.py,sha256=orZjhyikqk7U77My7GedbVKy65j0_CF7J7mqye86dRw,4650
75
- modal/serving.pyi,sha256=MVlw5aqe1rJPapB7f6GSAQn7GY00T617LZpqFq_1qsw,2000
74
+ modal/serving.py,sha256=3I3WBeVbzZY258u9PXBCW_dZBgypq3OhwBuTVvlgubE,4423
75
+ modal/serving.pyi,sha256=YfixTaWikyYpwhnNxCHMZnDDQiPmV1xJ87QF91U_WGU,1924
76
76
  modal/snapshot.py,sha256=6rQvDP3iX9hdiAudKTy0-m0JESt4kk0q2gusXbaRA-8,1279
77
77
  modal/snapshot.pyi,sha256=dIEBdTPb7O3VwkQ8TMPjfyU17RLuS9i0DnACxxHy8X4,676
78
78
  modal/stream_type.py,sha256=A6320qoAAWhEfwOCZfGtymQTu5AfLfJXXgARqooTPvY,417
79
79
  modal/token_flow.py,sha256=0_4KabXKsuE4OXTJ1OuLOtA-b1sesShztMZkkRFK7tA,7605
80
80
  modal/token_flow.pyi,sha256=ILbRv6JsZq-jK8jcJM7eB74e0PsbzwBm7hyPcV9lBlQ,2121
81
- modal/volume.py,sha256=DRmaIYwuRF3h1ZePevdYbHdwFUQRZgK0gaytkEkLAWg,43568
81
+ modal/volume.py,sha256=DeIIK2gYxZ0rShF5NC2DBFKMuIkig1l4fs8VUYNGztY,43236
82
82
  modal/volume.pyi,sha256=9hPIMRBzGZycVL8uRfGpjSmNu_pCbkGAOyrnE86bU2Y,21113
83
83
  modal/_runtime/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
84
84
  modal/_runtime/asgi.py,sha256=_2xSTsDD27Cit7xnMs4lzkJA2wzer2_N4Oa3BkXFzVA,22521
@@ -96,10 +96,10 @@ modal/_utils/blob_utils.py,sha256=IexC2Jbtqp_Tkmy62ayfgzTYte0UPCNufB_v-DO21g8,18
96
96
  modal/_utils/bytes_io_segment_payload.py,sha256=uunxVJS4PE1LojF_UpURMzVK9GuvmYWRqQo_bxEj5TU,3385
97
97
  modal/_utils/deprecation.py,sha256=EXP1beU4pmEqEzWMLw6E3kUfNfpmNA_VOp6i0EHi93g,4856
98
98
  modal/_utils/docker_utils.py,sha256=h1uETghR40mp_y3fSWuZAfbIASH1HMzuphJHghAL6DU,3722
99
- modal/_utils/function_utils.py,sha256=KNoFx_DBtfw3QMB8V_HPDcj4GylnI3tuf7RKPF2T3-I,27342
99
+ modal/_utils/function_utils.py,sha256=bhrjyOHPPXm6fAyJx3bzI1Yh56j6xh8eeMSFKdAWrHQ,26978
100
100
  modal/_utils/git_utils.py,sha256=qtUU6JAttF55ZxYq51y55OR58B0tDPZsZWK5dJe6W5g,3182
101
101
  modal/_utils/grpc_testing.py,sha256=H1zHqthv19eGPJz2HKXDyWXWGSqO4BRsxah3L5Xaa8A,8619
102
- modal/_utils/grpc_utils.py,sha256=Op0D25Z3WOogoo1ZPKc4zOco1IWckJCfq_QOxfkzroI,10599
102
+ modal/_utils/grpc_utils.py,sha256=xSFosSJYQ4m6cH9WtChcSXqsnyk6DMeVvOHI4N3914g,10922
103
103
  modal/_utils/hash_utils.py,sha256=zg3J6OGxTFGSFri1qQ12giDz90lWk8bzaxCTUCRtiX4,3034
104
104
  modal/_utils/http_utils.py,sha256=yeTFsXYr0rYMEhB7vBP7audG9Uc7OLhzKBANFDZWVt0,2451
105
105
  modal/_utils/jwt_utils.py,sha256=fxH9plyrbAemTbjSsQtzIdDXE9QXxvMC4DiUZ16G0aA,1360
@@ -117,7 +117,7 @@ modal/_vendor/tblib.py,sha256=g1O7QUDd3sDoLd8YPFltkXkih7r_fyZOjgmGuligv3s,9722
117
117
  modal/cli/__init__.py,sha256=6FRleWQxBDT19y7OayO4lBOzuL6Bs9r0rLINYYYbHwQ,769
118
118
  modal/cli/_download.py,sha256=tV8JFkncTtQKh85bSguQg6AW5aRRlynf-rvyN7ruigc,4337
119
119
  modal/cli/_traceback.py,sha256=4ywtmFcmPnY3tqb4-3fA061N2tRiM01xs8fSagtkwhE,7293
120
- modal/cli/app.py,sha256=JH0_sMGMrG0qA9ToY1RztP8MT0QHX5nZpAH02LpNYcs,8432
120
+ modal/cli/app.py,sha256=vImeK6UT-dA-01pEQ4NQvVQ0eOjdHRG_7-NmqdvSJSY,7639
121
121
  modal/cli/cluster.py,sha256=EBDhkzfOtPSbwknYdYPBGYvRAwl4Gm7OJkD6_zxrcus,3106
122
122
  modal/cli/config.py,sha256=QvFsqO4eUOtI7d_pQAOAyfq_ZitjhPtav3C6GIDQcZM,1680
123
123
  modal/cli/container.py,sha256=FYwEgjf93j4NMorAjGbSV98i1wpebqdAeNU1wfrFp1k,3668
@@ -135,8 +135,8 @@ modal/cli/token.py,sha256=mxSgOWakXG6N71hQb1ko61XAR9ZGkTMZD-Txn7gmTac,1924
135
135
  modal/cli/utils.py,sha256=hZmjyzcPjDnQSkLvycZD2LhGdcsfdZshs_rOU78EpvI,3717
136
136
  modal/cli/volume.py,sha256=_PJ5Vn_prkLk_x1Lksx4kZySlKWqIn36T2Edd1-h7Mg,10497
137
137
  modal/cli/programs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
138
- modal/cli/programs/run_jupyter.py,sha256=YVvJYu927A4ji72d6i27CKfyZ_uDWteeittARtJnf7E,2775
139
- modal/cli/programs/vscode.py,sha256=kfvhZQ4bJwtVm3MgC1V7AlygZOlKT1a33alr_uwrewA,3473
138
+ modal/cli/programs/run_jupyter.py,sha256=44Lpvqk2l3hH-uOkmAOzw60NEsfB5uaRDWDKVshvQhs,2682
139
+ modal/cli/programs/vscode.py,sha256=KbTAaIXyQBVCDXxXjmBHmKpgXkUw0q4R4KkJvUjCYgk,3380
140
140
  modal/experimental/__init__.py,sha256=GYWLyYHpO0xWxo1s-uP5ZuD8IBFKbhCUAke3kq3jv_4,8272
141
141
  modal/experimental/ipython.py,sha256=epLUZeDSdE226TH_tU3igRKCiVuQi99mUOrIJ4SemOE,2792
142
142
  modal/requirements/2023.12.312.txt,sha256=zWWUVgVQ92GXBKNYYr2-5vn9rlnXcmkqlwlX5u1eTYw,400
@@ -146,7 +146,7 @@ modal/requirements/2024.10.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddR
146
146
  modal/requirements/PREVIEW.txt,sha256=qD-5cVIVM9wXesJ6JC89Ew-3m2KjEElUz3jaw_MddRo,296
147
147
  modal/requirements/README.md,sha256=9tK76KP0Uph7O0M5oUgsSwEZDj5y-dcUPsnpR0Sc-Ik,854
148
148
  modal/requirements/base-images.json,sha256=57vMSqzMbLBxw5tFWSaMiIkkVEps4JfX5PAtXGnkS4U,740
149
- modal-0.77.0.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
149
+ modal-1.0.0.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
150
150
  modal_docs/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,28
151
151
  modal_docs/gen_cli_docs.py,sha256=c1yfBS_x--gL5bs0N4ihMwqwX8l3IBWSkBAKNNIi6bQ,3801
152
152
  modal_docs/gen_reference_docs.py,sha256=d_CQUGQ0rfw28u75I2mov9AlS773z9rG40-yq5o7g2U,6359
@@ -154,13 +154,13 @@ modal_docs/mdmd/__init__.py,sha256=svYKtV8HDwDCN86zbdWqyq5T8sMdGDj0PVlzc2tIxDM,2
154
154
  modal_docs/mdmd/mdmd.py,sha256=Irx49MCCTlBOP4FBdLR--JrpA3-WhsVeriq0LGgsRic,6232
155
155
  modal_docs/mdmd/signatures.py,sha256=XJaZrK7Mdepk5fdX51A8uENiLFNil85Ud0d4MH8H5f0,3218
156
156
  modal_proto/__init__.py,sha256=MIEP8jhXUeGq_eCjYFcqN5b1bxBM4fdk0VESpjWR0fc,28
157
- modal_proto/api.proto,sha256=nVCK4Mh6UCvFcTTAdzHo5GmKfT6tRxLYJH0E1O48D00,95010
158
- modal_proto/api_grpc.py,sha256=C0nQFKPCQN3lBeke1Xd7x4Jzd5m8RxnuFEoUxjIQIwA,115918
159
- modal_proto/api_pb2.py,sha256=-lrq25XTMiW52enGReAfda6g5FnkVjuzPPBGShOFRn4,335182
160
- modal_proto/api_pb2.pyi,sha256=DwJgyEG-nUU-CJHAQHcyd3BoWxu97n0-taf4VfYGeCA,457416
161
- modal_proto/api_pb2_grpc.py,sha256=dlQcjQVsUJN6cTG9JX6fxaB2iXUFyfhEF9VtQIh-yZE,250736
162
- modal_proto/api_pb2_grpc.pyi,sha256=5j_xfVcvGDXmr9vpUQofD6aLpaI2ZfIdefB9jBHtqnE,58657
163
- modal_proto/modal_api_grpc.py,sha256=kmpUqh6tc-mgqsZdH7JeFGrA4HULZggCSI2nDz65JvA,17532
157
+ modal_proto/api.proto,sha256=Qp0gpXAw0H8X8oPrU2Aa-_kewoI53-bUf0LWe_DO4hM,95862
158
+ modal_proto/api_grpc.py,sha256=iY5o_Tm4VDP-Wa1JgA_NpQa_Y-4FYB_RN9wdSUExjwI,117469
159
+ modal_proto/api_pb2.py,sha256=Jvq4X0FG5xQaiNVr7XlOZQWfmm_9b2JmN8LNT2hJJdU,337902
160
+ modal_proto/api_pb2.pyi,sha256=KNcKpRgynsi3y6bVGen_y6FrHnXXUMOyREqbJExqb6Y,461341
161
+ modal_proto/api_pb2_grpc.py,sha256=NL5prOS_hh_pA1hVvQP_ZRE1w49N-PR8iNPRZ65i6nA,254089
162
+ modal_proto/api_pb2_grpc.pyi,sha256=Xxgdcnv1mBnu5_AQxJ6fo0yz7GnqVU0HVObNfZWHVfM,59440
163
+ modal_proto/modal_api_grpc.py,sha256=0ir2lnwT3-IgPcAWw98yWMAiqZPkjvNro9UBk4u8hnk,17763
164
164
  modal_proto/modal_options_grpc.py,sha256=qJ1cuwA54oRqrdTyPTbvfhFZYd9HhJKK5UCwt523r3Y,120
165
165
  modal_proto/options.proto,sha256=zp9h5r61ivsp0XwEWwNBsVqNTbRA1VSY_UtN7sEcHtE,549
166
166
  modal_proto/options_grpc.py,sha256=M18X3d-8F_cNYSVM3I25dUTO5rZ0rd-vCCfynfh13Nc,125
@@ -169,10 +169,10 @@ modal_proto/options_pb2.pyi,sha256=l7DBrbLO7q3Ir-XDkWsajm0d0TQqqrfuX54i4BMpdQg,1
169
169
  modal_proto/options_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
170
170
  modal_proto/options_pb2_grpc.pyi,sha256=CImmhxHsYnF09iENPoe8S4J-n93jtgUYD2JPAc0yJSI,247
171
171
  modal_proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
- modal_version/__init__.py,sha256=eGTlTMsWGoO2gIzUvHwnVti1Y1QJz31tvXqo2pdCUu0,116
172
+ modal_version/__init__.py,sha256=iUUSzB26fE9cjhnaUx7D0iEFdfRuOAQQDnfcJzj7Koo,115
173
173
  modal_version/__main__.py,sha256=2FO0yYQQwDTh6udt1h-cBnGd1c4ZyHnHSI4BksxzVac,105
174
- modal-0.77.0.dist-info/METADATA,sha256=jdjlNftPmkFhcCesu-dV1wCXT877qsZSzIVVVQzo2DY,2450
175
- modal-0.77.0.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
176
- modal-0.77.0.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
177
- modal-0.77.0.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
178
- modal-0.77.0.dist-info/RECORD,,
174
+ modal-1.0.0.dist-info/METADATA,sha256=ycvXv17itCkJaWynn4_kq_ogtAfdtz3qimEt62r5H0k,2449
175
+ modal-1.0.0.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
176
+ modal-1.0.0.dist-info/entry_points.txt,sha256=An-wYgeEUnm6xzrAP9_NTSTSciYvvEWsMZILtYrvpAI,46
177
+ modal-1.0.0.dist-info/top_level.txt,sha256=4BWzoKYREKUZ5iyPzZpjqx4G8uB5TWxXPDwibLcVa7k,43
178
+ modal-1.0.0.dist-info/RECORD,,
modal_proto/api.proto CHANGED
@@ -694,7 +694,7 @@ message ClassGetRequest {
694
694
  DeploymentNamespace namespace = 3;
695
695
  string environment_name = 4;
696
696
 
697
- bool lookup_published = 8; // Lookup class on app published by another workspace
697
+ reserved 8; // lookup_published
698
698
  reserved 9; // workspace_name
699
699
  bool only_class_function = 10; // True starting with 0.67.x clients, which don't create method placeholder functions
700
700
  }
@@ -1380,6 +1380,10 @@ message Function {
1380
1380
  // Note the value type as string. Internally we'll coerce all values to string with str().
1381
1381
  // On the server, it's necessary to convert back to the most natural type (e.g. int) when relevant.
1382
1382
  map<string, string> experimental_options = 81;
1383
+
1384
+ // If set, client deps will be mounted into the container, and are
1385
+ // no longer expected to exist in the image itself.
1386
+ bool mount_client_dependencies = 82;
1383
1387
  }
1384
1388
 
1385
1389
  message FunctionAsyncInvokeRequest {
@@ -1946,6 +1950,10 @@ message ImageMetadata {
1946
1950
  map<string, string> python_packages = 2;
1947
1951
  // The work directory of the image, defaulting to "/". Not set if missing
1948
1952
  optional string workdir = 3;
1953
+ // The image's libc version
1954
+ optional string libc_version_info = 4;
1955
+ // The builder version for/with which the image was created.
1956
+ optional string image_builder_version = 5;
1949
1957
  }
1950
1958
 
1951
1959
 
@@ -2786,6 +2794,7 @@ message TaskLogs {
2786
2794
  TaskProgress task_progress = 9;
2787
2795
  string function_call_id = 10;
2788
2796
  string input_id = 11;
2797
+ uint64 timestamp_ns = 12;
2789
2798
  }
2790
2799
 
2791
2800
  message TaskLogsBatch {
@@ -2963,6 +2972,17 @@ message VolumeHeartbeatRequest {
2963
2972
  string volume_id = 1;
2964
2973
  }
2965
2974
 
2975
+ message VolumeListFiles2Request {
2976
+ string volume_id = 1;
2977
+ string path = 2;
2978
+ bool recursive = 4;
2979
+ optional uint32 max_entries = 3;
2980
+ }
2981
+
2982
+ message VolumeListFiles2Response {
2983
+ repeated FileEntry entries = 1;
2984
+ }
2985
+
2966
2986
  message VolumeListFilesRequest {
2967
2987
  string volume_id = 1;
2968
2988
  string path = 2;
@@ -3081,6 +3101,12 @@ message VolumeReloadRequest {
3081
3101
  string volume_id = 1;
3082
3102
  }
3083
3103
 
3104
+ message VolumeRemoveFile2Request {
3105
+ string volume_id = 1 [ (modal.options.audit_target_attr) = true ];
3106
+ string path = 2;
3107
+ bool recursive = 3;
3108
+ }
3109
+
3084
3110
  message VolumeRemoveFileRequest {
3085
3111
  string volume_id = 1 [ (modal.options.audit_target_attr) = true ];
3086
3112
  string path = 2;
@@ -3320,10 +3346,12 @@ service ModalClient {
3320
3346
  rpc VolumeHeartbeat(VolumeHeartbeatRequest) returns (google.protobuf.Empty);
3321
3347
  rpc VolumeList(VolumeListRequest) returns (VolumeListResponse);
3322
3348
  rpc VolumeListFiles(VolumeListFilesRequest) returns (stream VolumeListFilesResponse);
3349
+ rpc VolumeListFiles2(VolumeListFiles2Request) returns (stream VolumeListFiles2Response);
3323
3350
  rpc VolumePutFiles(VolumePutFilesRequest) returns (google.protobuf.Empty);
3324
3351
  rpc VolumePutFiles2(VolumePutFiles2Request) returns (VolumePutFiles2Response);
3325
3352
  rpc VolumeReload(VolumeReloadRequest) returns (google.protobuf.Empty);
3326
3353
  rpc VolumeRemoveFile(VolumeRemoveFileRequest) returns (google.protobuf.Empty);
3354
+ rpc VolumeRemoveFile2(VolumeRemoveFile2Request) returns (google.protobuf.Empty);
3327
3355
  rpc VolumeRename(VolumeRenameRequest) returns (google.protobuf.Empty);
3328
3356
 
3329
3357
  // Workspaces
modal_proto/api_grpc.py CHANGED
@@ -598,6 +598,10 @@ class ModalClientBase(abc.ABC):
598
598
  async def VolumeListFiles(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeListFilesRequest, modal_proto.api_pb2.VolumeListFilesResponse]') -> None:
599
599
  pass
600
600
 
601
+ @abc.abstractmethod
602
+ async def VolumeListFiles2(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeListFiles2Request, modal_proto.api_pb2.VolumeListFiles2Response]') -> None:
603
+ pass
604
+
601
605
  @abc.abstractmethod
602
606
  async def VolumePutFiles(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumePutFilesRequest, google.protobuf.empty_pb2.Empty]') -> None:
603
607
  pass
@@ -614,6 +618,10 @@ class ModalClientBase(abc.ABC):
614
618
  async def VolumeRemoveFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeRemoveFileRequest, google.protobuf.empty_pb2.Empty]') -> None:
615
619
  pass
616
620
 
621
+ @abc.abstractmethod
622
+ async def VolumeRemoveFile2(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeRemoveFile2Request, google.protobuf.empty_pb2.Empty]') -> None:
623
+ pass
624
+
617
625
  @abc.abstractmethod
618
626
  async def VolumeRename(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeRenameRequest, google.protobuf.empty_pb2.Empty]') -> None:
619
627
  pass
@@ -1494,6 +1502,12 @@ class ModalClientBase(abc.ABC):
1494
1502
  modal_proto.api_pb2.VolumeListFilesRequest,
1495
1503
  modal_proto.api_pb2.VolumeListFilesResponse,
1496
1504
  ),
1505
+ '/modal.client.ModalClient/VolumeListFiles2': grpclib.const.Handler(
1506
+ self.VolumeListFiles2,
1507
+ grpclib.const.Cardinality.UNARY_STREAM,
1508
+ modal_proto.api_pb2.VolumeListFiles2Request,
1509
+ modal_proto.api_pb2.VolumeListFiles2Response,
1510
+ ),
1497
1511
  '/modal.client.ModalClient/VolumePutFiles': grpclib.const.Handler(
1498
1512
  self.VolumePutFiles,
1499
1513
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1518,6 +1532,12 @@ class ModalClientBase(abc.ABC):
1518
1532
  modal_proto.api_pb2.VolumeRemoveFileRequest,
1519
1533
  google.protobuf.empty_pb2.Empty,
1520
1534
  ),
1535
+ '/modal.client.ModalClient/VolumeRemoveFile2': grpclib.const.Handler(
1536
+ self.VolumeRemoveFile2,
1537
+ grpclib.const.Cardinality.UNARY_UNARY,
1538
+ modal_proto.api_pb2.VolumeRemoveFile2Request,
1539
+ google.protobuf.empty_pb2.Empty,
1540
+ ),
1521
1541
  '/modal.client.ModalClient/VolumeRename': grpclib.const.Handler(
1522
1542
  self.VolumeRename,
1523
1543
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -2406,6 +2426,12 @@ class ModalClientStub:
2406
2426
  modal_proto.api_pb2.VolumeListFilesRequest,
2407
2427
  modal_proto.api_pb2.VolumeListFilesResponse,
2408
2428
  )
2429
+ self.VolumeListFiles2 = grpclib.client.UnaryStreamMethod(
2430
+ channel,
2431
+ '/modal.client.ModalClient/VolumeListFiles2',
2432
+ modal_proto.api_pb2.VolumeListFiles2Request,
2433
+ modal_proto.api_pb2.VolumeListFiles2Response,
2434
+ )
2409
2435
  self.VolumePutFiles = grpclib.client.UnaryUnaryMethod(
2410
2436
  channel,
2411
2437
  '/modal.client.ModalClient/VolumePutFiles',
@@ -2430,6 +2456,12 @@ class ModalClientStub:
2430
2456
  modal_proto.api_pb2.VolumeRemoveFileRequest,
2431
2457
  google.protobuf.empty_pb2.Empty,
2432
2458
  )
2459
+ self.VolumeRemoveFile2 = grpclib.client.UnaryUnaryMethod(
2460
+ channel,
2461
+ '/modal.client.ModalClient/VolumeRemoveFile2',
2462
+ modal_proto.api_pb2.VolumeRemoveFile2Request,
2463
+ google.protobuf.empty_pb2.Empty,
2464
+ )
2433
2465
  self.VolumeRename = grpclib.client.UnaryUnaryMethod(
2434
2466
  channel,
2435
2467
  '/modal.client.ModalClient/VolumeRename',