modal 0.62.115__py3-none-any.whl → 0.72.13__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.
Files changed (220) hide show
  1. modal/__init__.py +13 -9
  2. modal/__main__.py +41 -3
  3. modal/_clustered_functions.py +80 -0
  4. modal/_clustered_functions.pyi +22 -0
  5. modal/_container_entrypoint.py +402 -398
  6. modal/_ipython.py +3 -13
  7. modal/_location.py +17 -10
  8. modal/_output.py +243 -99
  9. modal/_pty.py +2 -2
  10. modal/_resolver.py +55 -60
  11. modal/_resources.py +26 -7
  12. modal/_runtime/__init__.py +1 -0
  13. modal/_runtime/asgi.py +519 -0
  14. modal/_runtime/container_io_manager.py +1025 -0
  15. modal/{execution_context.py → _runtime/execution_context.py} +11 -2
  16. modal/_runtime/telemetry.py +169 -0
  17. modal/_runtime/user_code_imports.py +356 -0
  18. modal/_serialization.py +123 -6
  19. modal/_traceback.py +47 -187
  20. modal/_tunnel.py +50 -14
  21. modal/_tunnel.pyi +19 -36
  22. modal/_utils/app_utils.py +3 -17
  23. modal/_utils/async_utils.py +386 -104
  24. modal/_utils/blob_utils.py +157 -186
  25. modal/_utils/bytes_io_segment_payload.py +97 -0
  26. modal/_utils/deprecation.py +89 -0
  27. modal/_utils/docker_utils.py +98 -0
  28. modal/_utils/function_utils.py +299 -98
  29. modal/_utils/grpc_testing.py +47 -34
  30. modal/_utils/grpc_utils.py +54 -21
  31. modal/_utils/hash_utils.py +51 -10
  32. modal/_utils/http_utils.py +39 -9
  33. modal/_utils/logger.py +2 -1
  34. modal/_utils/mount_utils.py +34 -16
  35. modal/_utils/name_utils.py +58 -0
  36. modal/_utils/package_utils.py +14 -1
  37. modal/_utils/pattern_utils.py +205 -0
  38. modal/_utils/rand_pb_testing.py +3 -3
  39. modal/_utils/shell_utils.py +15 -49
  40. modal/_vendor/a2wsgi_wsgi.py +62 -72
  41. modal/_vendor/cloudpickle.py +1 -1
  42. modal/_watcher.py +12 -10
  43. modal/app.py +561 -323
  44. modal/app.pyi +474 -262
  45. modal/call_graph.py +7 -6
  46. modal/cli/_download.py +22 -6
  47. modal/cli/_traceback.py +200 -0
  48. modal/cli/app.py +203 -42
  49. modal/cli/config.py +12 -5
  50. modal/cli/container.py +61 -13
  51. modal/cli/dict.py +128 -0
  52. modal/cli/entry_point.py +26 -13
  53. modal/cli/environment.py +40 -9
  54. modal/cli/import_refs.py +21 -48
  55. modal/cli/launch.py +28 -14
  56. modal/cli/network_file_system.py +57 -21
  57. modal/cli/profile.py +1 -1
  58. modal/cli/programs/run_jupyter.py +34 -9
  59. modal/cli/programs/vscode.py +58 -8
  60. modal/cli/queues.py +131 -0
  61. modal/cli/run.py +199 -96
  62. modal/cli/secret.py +5 -4
  63. modal/cli/token.py +7 -2
  64. modal/cli/utils.py +74 -8
  65. modal/cli/volume.py +97 -56
  66. modal/client.py +248 -144
  67. modal/client.pyi +156 -124
  68. modal/cloud_bucket_mount.py +43 -30
  69. modal/cloud_bucket_mount.pyi +32 -25
  70. modal/cls.py +528 -141
  71. modal/cls.pyi +189 -145
  72. modal/config.py +32 -15
  73. modal/container_process.py +177 -0
  74. modal/container_process.pyi +82 -0
  75. modal/dict.py +50 -54
  76. modal/dict.pyi +120 -164
  77. modal/environments.py +106 -5
  78. modal/environments.pyi +77 -25
  79. modal/exception.py +30 -43
  80. modal/experimental.py +62 -2
  81. modal/file_io.py +537 -0
  82. modal/file_io.pyi +235 -0
  83. modal/file_pattern_matcher.py +196 -0
  84. modal/functions.py +846 -428
  85. modal/functions.pyi +446 -387
  86. modal/gpu.py +57 -44
  87. modal/image.py +943 -417
  88. modal/image.pyi +584 -245
  89. modal/io_streams.py +434 -0
  90. modal/io_streams.pyi +122 -0
  91. modal/mount.py +223 -90
  92. modal/mount.pyi +241 -243
  93. modal/network_file_system.py +85 -86
  94. modal/network_file_system.pyi +151 -110
  95. modal/object.py +66 -36
  96. modal/object.pyi +166 -143
  97. modal/output.py +63 -0
  98. modal/parallel_map.py +73 -47
  99. modal/parallel_map.pyi +51 -63
  100. modal/partial_function.py +272 -107
  101. modal/partial_function.pyi +219 -120
  102. modal/proxy.py +15 -12
  103. modal/proxy.pyi +3 -8
  104. modal/queue.py +96 -72
  105. modal/queue.pyi +210 -135
  106. modal/requirements/2024.04.txt +2 -1
  107. modal/requirements/2024.10.txt +16 -0
  108. modal/requirements/README.md +21 -0
  109. modal/requirements/base-images.json +22 -0
  110. modal/retries.py +45 -4
  111. modal/runner.py +325 -203
  112. modal/runner.pyi +124 -110
  113. modal/running_app.py +27 -4
  114. modal/sandbox.py +509 -231
  115. modal/sandbox.pyi +396 -169
  116. modal/schedule.py +2 -2
  117. modal/scheduler_placement.py +20 -3
  118. modal/secret.py +41 -25
  119. modal/secret.pyi +62 -42
  120. modal/serving.py +39 -49
  121. modal/serving.pyi +37 -43
  122. modal/stream_type.py +15 -0
  123. modal/token_flow.py +5 -3
  124. modal/token_flow.pyi +37 -32
  125. modal/volume.py +123 -137
  126. modal/volume.pyi +228 -221
  127. {modal-0.62.115.dist-info → modal-0.72.13.dist-info}/METADATA +5 -5
  128. modal-0.72.13.dist-info/RECORD +174 -0
  129. {modal-0.62.115.dist-info → modal-0.72.13.dist-info}/top_level.txt +0 -1
  130. modal_docs/gen_reference_docs.py +3 -1
  131. modal_docs/mdmd/mdmd.py +0 -1
  132. modal_docs/mdmd/signatures.py +1 -2
  133. modal_global_objects/images/base_images.py +28 -0
  134. modal_global_objects/mounts/python_standalone.py +2 -2
  135. modal_proto/__init__.py +1 -1
  136. modal_proto/api.proto +1231 -531
  137. modal_proto/api_grpc.py +750 -430
  138. modal_proto/api_pb2.py +2102 -1176
  139. modal_proto/api_pb2.pyi +8859 -0
  140. modal_proto/api_pb2_grpc.py +1329 -675
  141. modal_proto/api_pb2_grpc.pyi +1416 -0
  142. modal_proto/modal_api_grpc.py +149 -0
  143. modal_proto/modal_options_grpc.py +3 -0
  144. modal_proto/options_pb2.pyi +20 -0
  145. modal_proto/options_pb2_grpc.pyi +7 -0
  146. modal_proto/py.typed +0 -0
  147. modal_version/__init__.py +1 -1
  148. modal_version/_version_generated.py +2 -2
  149. modal/_asgi.py +0 -370
  150. modal/_container_exec.py +0 -128
  151. modal/_container_io_manager.py +0 -646
  152. modal/_container_io_manager.pyi +0 -412
  153. modal/_sandbox_shell.py +0 -49
  154. modal/app_utils.py +0 -20
  155. modal/app_utils.pyi +0 -17
  156. modal/execution_context.pyi +0 -37
  157. modal/shared_volume.py +0 -23
  158. modal/shared_volume.pyi +0 -24
  159. modal-0.62.115.dist-info/RECORD +0 -207
  160. modal_global_objects/images/conda.py +0 -15
  161. modal_global_objects/images/debian_slim.py +0 -15
  162. modal_global_objects/images/micromamba.py +0 -15
  163. test/__init__.py +0 -1
  164. test/aio_test.py +0 -12
  165. test/async_utils_test.py +0 -279
  166. test/blob_test.py +0 -67
  167. test/cli_imports_test.py +0 -149
  168. test/cli_test.py +0 -674
  169. test/client_test.py +0 -203
  170. test/cloud_bucket_mount_test.py +0 -22
  171. test/cls_test.py +0 -636
  172. test/config_test.py +0 -149
  173. test/conftest.py +0 -1485
  174. test/container_app_test.py +0 -50
  175. test/container_test.py +0 -1405
  176. test/cpu_test.py +0 -23
  177. test/decorator_test.py +0 -85
  178. test/deprecation_test.py +0 -34
  179. test/dict_test.py +0 -51
  180. test/e2e_test.py +0 -68
  181. test/error_test.py +0 -7
  182. test/function_serialization_test.py +0 -32
  183. test/function_test.py +0 -791
  184. test/function_utils_test.py +0 -101
  185. test/gpu_test.py +0 -159
  186. test/grpc_utils_test.py +0 -82
  187. test/helpers.py +0 -47
  188. test/image_test.py +0 -814
  189. test/live_reload_test.py +0 -80
  190. test/lookup_test.py +0 -70
  191. test/mdmd_test.py +0 -329
  192. test/mount_test.py +0 -162
  193. test/mounted_files_test.py +0 -327
  194. test/network_file_system_test.py +0 -188
  195. test/notebook_test.py +0 -66
  196. test/object_test.py +0 -41
  197. test/package_utils_test.py +0 -25
  198. test/queue_test.py +0 -115
  199. test/resolver_test.py +0 -59
  200. test/retries_test.py +0 -67
  201. test/runner_test.py +0 -85
  202. test/sandbox_test.py +0 -191
  203. test/schedule_test.py +0 -15
  204. test/scheduler_placement_test.py +0 -57
  205. test/secret_test.py +0 -89
  206. test/serialization_test.py +0 -50
  207. test/stub_composition_test.py +0 -10
  208. test/stub_test.py +0 -361
  209. test/test_asgi_wrapper.py +0 -234
  210. test/token_flow_test.py +0 -18
  211. test/traceback_test.py +0 -135
  212. test/tunnel_test.py +0 -29
  213. test/utils_test.py +0 -88
  214. test/version_test.py +0 -14
  215. test/volume_test.py +0 -397
  216. test/watcher_test.py +0 -58
  217. test/webhook_test.py +0 -145
  218. {modal-0.62.115.dist-info → modal-0.72.13.dist-info}/LICENSE +0 -0
  219. {modal-0.62.115.dist-info → modal-0.72.13.dist-info}/WHEEL +0 -0
  220. {modal-0.62.115.dist-info → modal-0.72.13.dist-info}/entry_points.txt +0 -0
modal_proto/api_grpc.py CHANGED
@@ -17,20 +17,32 @@ import modal_proto.api_pb2
17
17
 
18
18
  class ModalClientBase(abc.ABC):
19
19
 
20
+ @abc.abstractmethod
21
+ async def AppClientDisconnect(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppClientDisconnectRequest, google.protobuf.empty_pb2.Empty]') -> None:
22
+ pass
23
+
20
24
  @abc.abstractmethod
21
25
  async def AppCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppCreateRequest, modal_proto.api_pb2.AppCreateResponse]') -> None:
22
26
  pass
23
27
 
24
28
  @abc.abstractmethod
25
- async def AppClientDisconnect(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppClientDisconnectRequest, google.protobuf.empty_pb2.Empty]') -> None:
29
+ async def AppDeploy(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeployRequest, modal_proto.api_pb2.AppDeployResponse]') -> None:
26
30
  pass
27
31
 
28
32
  @abc.abstractmethod
29
- async def AppGetLogs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetLogsRequest, modal_proto.api_pb2.TaskLogsBatch]') -> None:
33
+ async def AppDeploymentHistory(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeploymentHistoryRequest, modal_proto.api_pb2.AppDeploymentHistoryResponse]') -> None:
30
34
  pass
31
35
 
32
36
  @abc.abstractmethod
33
- async def AppSetObjects(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppSetObjectsRequest, google.protobuf.empty_pb2.Empty]') -> None:
37
+ async def AppGetByDeploymentName(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetByDeploymentNameRequest, modal_proto.api_pb2.AppGetByDeploymentNameResponse]') -> None:
38
+ pass
39
+
40
+ @abc.abstractmethod
41
+ async def AppGetLayout(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetLayoutRequest, modal_proto.api_pb2.AppGetLayoutResponse]') -> None:
42
+ pass
43
+
44
+ @abc.abstractmethod
45
+ async def AppGetLogs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetLogsRequest, modal_proto.api_pb2.TaskLogsBatch]') -> None:
34
46
  pass
35
47
 
36
48
  @abc.abstractmethod
@@ -38,31 +50,35 @@ class ModalClientBase(abc.ABC):
38
50
  pass
39
51
 
40
52
  @abc.abstractmethod
41
- async def AppList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppListRequest, modal_proto.api_pb2.AppListResponse]') -> None:
53
+ async def AppGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetOrCreateRequest, modal_proto.api_pb2.AppGetOrCreateResponse]') -> None:
42
54
  pass
43
55
 
44
56
  @abc.abstractmethod
45
- async def AppLookupObject(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppLookupObjectRequest, modal_proto.api_pb2.AppLookupObjectResponse]') -> None:
57
+ async def AppHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
46
58
  pass
47
59
 
48
60
  @abc.abstractmethod
49
- async def AppDeploy(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeployRequest, modal_proto.api_pb2.AppDeployResponse]') -> None:
61
+ async def AppList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppListRequest, modal_proto.api_pb2.AppListResponse]') -> None:
50
62
  pass
51
63
 
52
64
  @abc.abstractmethod
53
- async def AppDeploySingleObject(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppDeploySingleObjectRequest, modal_proto.api_pb2.AppDeploySingleObjectResponse]') -> None:
65
+ async def AppLookup(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppLookupRequest, modal_proto.api_pb2.AppLookupResponse]') -> None:
54
66
  pass
55
67
 
56
68
  @abc.abstractmethod
57
- async def AppGetByDeploymentName(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppGetByDeploymentNameRequest, modal_proto.api_pb2.AppGetByDeploymentNameResponse]') -> None:
69
+ async def AppPublish(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppPublishRequest, modal_proto.api_pb2.AppPublishResponse]') -> None:
58
70
  pass
59
71
 
60
72
  @abc.abstractmethod
61
- async def AppStop(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppStopRequest, google.protobuf.empty_pb2.Empty]') -> None:
73
+ async def AppRollback(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppRollbackRequest, google.protobuf.empty_pb2.Empty]') -> None:
62
74
  pass
63
75
 
64
76
  @abc.abstractmethod
65
- async def AppHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
77
+ async def AppSetObjects(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppSetObjectsRequest, google.protobuf.empty_pb2.Empty]') -> None:
78
+ pass
79
+
80
+ @abc.abstractmethod
81
+ async def AppStop(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.AppStopRequest, google.protobuf.empty_pb2.Empty]') -> None:
66
82
  pass
67
83
 
68
84
  @abc.abstractmethod
@@ -82,51 +98,63 @@ class ModalClientBase(abc.ABC):
82
98
  pass
83
99
 
84
100
  @abc.abstractmethod
85
- async def ClientCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ClientCreateRequest, modal_proto.api_pb2.ClientCreateResponse]') -> None:
101
+ async def ClientHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ClientHelloResponse]') -> None:
86
102
  pass
87
103
 
88
104
  @abc.abstractmethod
89
- async def ClientHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ClientHelloResponse]') -> None:
105
+ async def ContainerCheckpoint(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerCheckpointRequest, google.protobuf.empty_pb2.Empty]') -> None:
106
+ pass
107
+
108
+ @abc.abstractmethod
109
+ async def ContainerExec(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecRequest, modal_proto.api_pb2.ContainerExecResponse]') -> None:
90
110
  pass
91
111
 
92
112
  @abc.abstractmethod
93
- async def ClientHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ClientHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
113
+ async def ContainerExecGetOutput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecGetOutputRequest, modal_proto.api_pb2.RuntimeOutputBatch]') -> None:
94
114
  pass
95
115
 
96
116
  @abc.abstractmethod
97
- async def ContainerHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerHeartbeatRequest, modal_proto.api_pb2.ContainerHeartbeatResponse]') -> None:
117
+ async def ContainerExecPutInput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecPutInputRequest, google.protobuf.empty_pb2.Empty]') -> None:
98
118
  pass
99
119
 
100
120
  @abc.abstractmethod
101
- async def ContainerExec(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecRequest, modal_proto.api_pb2.ContainerExecResponse]') -> None:
121
+ async def ContainerExecWait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecWaitRequest, modal_proto.api_pb2.ContainerExecWaitResponse]') -> None:
102
122
  pass
103
123
 
104
124
  @abc.abstractmethod
105
- async def ContainerExecGetOutput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecGetOutputRequest, modal_proto.api_pb2.RuntimeOutputBatch]') -> None:
125
+ async def ContainerFilesystemExec(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerFilesystemExecRequest, modal_proto.api_pb2.ContainerFilesystemExecResponse]') -> None:
106
126
  pass
107
127
 
108
128
  @abc.abstractmethod
109
- async def ContainerExecPutInput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerExecPutInputRequest, google.protobuf.empty_pb2.Empty]') -> None:
129
+ async def ContainerFilesystemExecGetOutput(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest, modal_proto.api_pb2.FilesystemRuntimeOutputBatch]') -> None:
110
130
  pass
111
131
 
112
132
  @abc.abstractmethod
113
- async def ContainerCheckpoint(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerCheckpointRequest, google.protobuf.empty_pb2.Empty]') -> None:
133
+ async def ContainerHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerHeartbeatRequest, modal_proto.api_pb2.ContainerHeartbeatResponse]') -> None:
114
134
  pass
115
135
 
116
136
  @abc.abstractmethod
117
- async def DictClear(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictClearRequest, google.protobuf.empty_pb2.Empty]') -> None:
137
+ async def ContainerHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, google.protobuf.empty_pb2.Empty]') -> None:
118
138
  pass
119
139
 
120
140
  @abc.abstractmethod
121
- async def DictContains(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContainsRequest, modal_proto.api_pb2.DictContainsResponse]') -> None:
141
+ async def ContainerLog(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerLogRequest, google.protobuf.empty_pb2.Empty]') -> None:
122
142
  pass
123
143
 
124
144
  @abc.abstractmethod
125
- async def DictContents(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContentsRequest, modal_proto.api_pb2.DictEntry]') -> None:
145
+ async def ContainerStop(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerStopRequest, modal_proto.api_pb2.ContainerStopResponse]') -> None:
146
+ pass
147
+
148
+ @abc.abstractmethod
149
+ async def DictClear(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictClearRequest, google.protobuf.empty_pb2.Empty]') -> None:
150
+ pass
151
+
152
+ @abc.abstractmethod
153
+ async def DictContains(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContainsRequest, modal_proto.api_pb2.DictContainsResponse]') -> None:
126
154
  pass
127
155
 
128
156
  @abc.abstractmethod
129
- async def DictCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictCreateRequest, modal_proto.api_pb2.DictCreateResponse]') -> None:
157
+ async def DictContents(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictContentsRequest, modal_proto.api_pb2.DictEntry]') -> None:
130
158
  pass
131
159
 
132
160
  @abc.abstractmethod
@@ -161,6 +189,10 @@ class ModalClientBase(abc.ABC):
161
189
  async def DictUpdate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DictUpdateRequest, modal_proto.api_pb2.DictUpdateResponse]') -> None:
162
190
  pass
163
191
 
192
+ @abc.abstractmethod
193
+ async def DomainCertificateVerify(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DomainCertificateVerifyRequest, modal_proto.api_pb2.DomainCertificateVerifyResponse]') -> None:
194
+ pass
195
+
164
196
  @abc.abstractmethod
165
197
  async def DomainCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DomainCreateRequest, modal_proto.api_pb2.DomainCreateResponse]') -> None:
166
198
  pass
@@ -170,29 +202,53 @@ class ModalClientBase(abc.ABC):
170
202
  pass
171
203
 
172
204
  @abc.abstractmethod
173
- async def DomainCertificateVerify(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.DomainCertificateVerifyRequest, modal_proto.api_pb2.DomainCertificateVerifyResponse]') -> None:
205
+ async def EnvironmentCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentCreateRequest, google.protobuf.empty_pb2.Empty]') -> None:
174
206
  pass
175
207
 
176
208
  @abc.abstractmethod
177
- async def EnvironmentCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentCreateRequest, google.protobuf.empty_pb2.Empty]') -> None:
209
+ async def EnvironmentDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
178
210
  pass
179
211
 
180
212
  @abc.abstractmethod
181
- async def EnvironmentList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.EnvironmentListResponse]') -> None:
213
+ async def EnvironmentGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentGetOrCreateRequest, modal_proto.api_pb2.EnvironmentGetOrCreateResponse]') -> None:
182
214
  pass
183
215
 
184
216
  @abc.abstractmethod
185
- async def EnvironmentDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
217
+ async def EnvironmentList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.EnvironmentListResponse]') -> None:
186
218
  pass
187
219
 
188
220
  @abc.abstractmethod
189
221
  async def EnvironmentUpdate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.EnvironmentUpdateRequest, modal_proto.api_pb2.EnvironmentListItem]') -> None:
190
222
  pass
191
223
 
224
+ @abc.abstractmethod
225
+ async def FunctionAsyncInvoke(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionAsyncInvokeRequest, modal_proto.api_pb2.FunctionAsyncInvokeResponse]') -> None:
226
+ pass
227
+
192
228
  @abc.abstractmethod
193
229
  async def FunctionBindParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionBindParamsRequest, modal_proto.api_pb2.FunctionBindParamsResponse]') -> None:
194
230
  pass
195
231
 
232
+ @abc.abstractmethod
233
+ async def FunctionCallCancel(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallCancelRequest, google.protobuf.empty_pb2.Empty]') -> None:
234
+ pass
235
+
236
+ @abc.abstractmethod
237
+ async def FunctionCallGetDataIn(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
238
+ pass
239
+
240
+ @abc.abstractmethod
241
+ async def FunctionCallGetDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
242
+ pass
243
+
244
+ @abc.abstractmethod
245
+ async def FunctionCallList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallListRequest, modal_proto.api_pb2.FunctionCallListResponse]') -> None:
246
+ pass
247
+
248
+ @abc.abstractmethod
249
+ async def FunctionCallPutDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallPutDataRequest, google.protobuf.empty_pb2.Empty]') -> None:
250
+ pass
251
+
196
252
  @abc.abstractmethod
197
253
  async def FunctionCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCreateRequest, modal_proto.api_pb2.FunctionCreateResponse]') -> None:
198
254
  pass
@@ -209,6 +265,10 @@ class ModalClientBase(abc.ABC):
209
265
  async def FunctionGetCurrentStats(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetCurrentStatsRequest, modal_proto.api_pb2.FunctionStats]') -> None:
210
266
  pass
211
267
 
268
+ @abc.abstractmethod
269
+ async def FunctionGetDynamicConcurrency(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest, modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse]') -> None:
270
+ pass
271
+
212
272
  @abc.abstractmethod
213
273
  async def FunctionGetInputs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionGetInputsRequest, modal_proto.api_pb2.FunctionGetInputsResponse]') -> None:
214
274
  pass
@@ -238,59 +298,59 @@ class ModalClientBase(abc.ABC):
238
298
  pass
239
299
 
240
300
  @abc.abstractmethod
241
- async def FunctionUpdateSchedulingParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest, modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse]') -> None:
301
+ async def FunctionRetryInputs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionRetryInputsRequest, modal_proto.api_pb2.FunctionRetryInputsResponse]') -> None:
242
302
  pass
243
303
 
244
304
  @abc.abstractmethod
245
- async def FunctionCallCancel(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallCancelRequest, google.protobuf.empty_pb2.Empty]') -> None:
305
+ async def FunctionStartPtyShell(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, google.protobuf.empty_pb2.Empty]') -> None:
246
306
  pass
247
307
 
248
308
  @abc.abstractmethod
249
- async def FunctionCallList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallListRequest, modal_proto.api_pb2.FunctionCallListResponse]') -> None:
309
+ async def FunctionUpdateSchedulingParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest, modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse]') -> None:
250
310
  pass
251
311
 
252
312
  @abc.abstractmethod
253
- async def FunctionCallGetDataIn(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
313
+ async def ImageFromId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageFromIdRequest, modal_proto.api_pb2.ImageFromIdResponse]') -> None:
254
314
  pass
255
315
 
256
316
  @abc.abstractmethod
257
- async def FunctionCallGetDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallGetDataRequest, modal_proto.api_pb2.DataChunk]') -> None:
317
+ async def ImageGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageGetOrCreateRequest, modal_proto.api_pb2.ImageGetOrCreateResponse]') -> None:
258
318
  pass
259
319
 
260
320
  @abc.abstractmethod
261
- async def FunctionCallPutDataOut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionCallPutDataRequest, google.protobuf.empty_pb2.Empty]') -> None:
321
+ async def ImageJoinStreaming(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageJoinStreamingRequest, modal_proto.api_pb2.ImageJoinStreamingResponse]') -> None:
262
322
  pass
263
323
 
264
324
  @abc.abstractmethod
265
- async def FunctionStartPtyShell(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, google.protobuf.empty_pb2.Empty]') -> None:
325
+ async def MountGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountGetOrCreateRequest, modal_proto.api_pb2.MountGetOrCreateResponse]') -> None:
266
326
  pass
267
327
 
268
328
  @abc.abstractmethod
269
- async def ImageGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageGetOrCreateRequest, modal_proto.api_pb2.ImageGetOrCreateResponse]') -> None:
329
+ async def MountPutFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountPutFileRequest, modal_proto.api_pb2.MountPutFileResponse]') -> None:
270
330
  pass
271
331
 
272
332
  @abc.abstractmethod
273
- async def ImageJoinStreaming(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageJoinStreamingRequest, modal_proto.api_pb2.ImageJoinStreamingResponse]') -> None:
333
+ async def ProxyCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyCreateRequest, modal_proto.api_pb2.ProxyCreateResponse]') -> None:
274
334
  pass
275
335
 
276
336
  @abc.abstractmethod
277
- async def MountPutFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountPutFileRequest, modal_proto.api_pb2.MountPutFileResponse]') -> None:
337
+ async def ProxyDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
278
338
  pass
279
339
 
280
340
  @abc.abstractmethod
281
- async def MountBuild(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountBuildRequest, modal_proto.api_pb2.MountBuildResponse]') -> None:
341
+ async def ProxyGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyGetRequest, modal_proto.api_pb2.ProxyGetResponse]') -> None:
282
342
  pass
283
343
 
284
344
  @abc.abstractmethod
285
- async def MountGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MountGetOrCreateRequest, modal_proto.api_pb2.MountGetOrCreateResponse]') -> None:
345
+ async def ProxyGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyGetOrCreateRequest, modal_proto.api_pb2.ProxyGetOrCreateResponse]') -> None:
286
346
  pass
287
347
 
288
348
  @abc.abstractmethod
289
- async def ProxyGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ProxyGetOrCreateRequest, modal_proto.api_pb2.ProxyGetOrCreateResponse]') -> None:
349
+ async def ProxyList(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ProxyListResponse]') -> None:
290
350
  pass
291
351
 
292
352
  @abc.abstractmethod
293
- async def QueueCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueCreateRequest, modal_proto.api_pb2.QueueCreateResponse]') -> None:
353
+ async def QueueClear(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueClearRequest, google.protobuf.empty_pb2.Empty]') -> None:
294
354
  pass
295
355
 
296
356
  @abc.abstractmethod
@@ -298,11 +358,11 @@ class ModalClientBase(abc.ABC):
298
358
  pass
299
359
 
300
360
  @abc.abstractmethod
301
- async def QueueGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueGetOrCreateRequest, modal_proto.api_pb2.QueueGetOrCreateResponse]') -> None:
361
+ async def QueueGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueGetRequest, modal_proto.api_pb2.QueueGetResponse]') -> None:
302
362
  pass
303
363
 
304
364
  @abc.abstractmethod
305
- async def QueueGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueGetRequest, modal_proto.api_pb2.QueueGetResponse]') -> None:
365
+ async def QueueGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueGetOrCreateRequest, modal_proto.api_pb2.QueueGetOrCreateResponse]') -> None:
306
366
  pass
307
367
 
308
368
  @abc.abstractmethod
@@ -310,11 +370,11 @@ class ModalClientBase(abc.ABC):
310
370
  pass
311
371
 
312
372
  @abc.abstractmethod
313
- async def QueuePut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueuePutRequest, google.protobuf.empty_pb2.Empty]') -> None:
373
+ async def QueueLen(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueLenRequest, modal_proto.api_pb2.QueueLenResponse]') -> None:
314
374
  pass
315
375
 
316
376
  @abc.abstractmethod
317
- async def QueueLen(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueLenRequest, modal_proto.api_pb2.QueueLenResponse]') -> None:
377
+ async def QueueList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueueListRequest, modal_proto.api_pb2.QueueListResponse]') -> None:
318
378
  pass
319
379
 
320
380
  @abc.abstractmethod
@@ -322,11 +382,11 @@ class ModalClientBase(abc.ABC):
322
382
  pass
323
383
 
324
384
  @abc.abstractmethod
325
- async def SandboxCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxCreateRequest, modal_proto.api_pb2.SandboxCreateResponse]') -> None:
385
+ async def QueuePut(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.QueuePutRequest, google.protobuf.empty_pb2.Empty]') -> None:
326
386
  pass
327
387
 
328
388
  @abc.abstractmethod
329
- async def SandboxGetTaskId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetTaskIdRequest, modal_proto.api_pb2.SandboxGetTaskIdResponse]') -> None:
389
+ async def SandboxCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxCreateRequest, modal_proto.api_pb2.SandboxCreateResponse]') -> None:
330
390
  pass
331
391
 
332
392
  @abc.abstractmethod
@@ -334,7 +394,11 @@ class ModalClientBase(abc.ABC):
334
394
  pass
335
395
 
336
396
  @abc.abstractmethod
337
- async def SandboxWait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxWaitRequest, modal_proto.api_pb2.SandboxWaitResponse]') -> None:
397
+ async def SandboxGetTaskId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetTaskIdRequest, modal_proto.api_pb2.SandboxGetTaskIdResponse]') -> None:
398
+ pass
399
+
400
+ @abc.abstractmethod
401
+ async def SandboxGetTunnels(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetTunnelsRequest, modal_proto.api_pb2.SandboxGetTunnelsResponse]') -> None:
338
402
  pass
339
403
 
340
404
  @abc.abstractmethod
@@ -342,7 +406,7 @@ class ModalClientBase(abc.ABC):
342
406
  pass
343
407
 
344
408
  @abc.abstractmethod
345
- async def SandboxTerminate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTerminateRequest, modal_proto.api_pb2.SandboxTerminateResponse]') -> None:
409
+ async def SandboxSnapshotFs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxSnapshotFsRequest, modal_proto.api_pb2.SandboxSnapshotFsResponse]') -> None:
346
410
  pass
347
411
 
348
412
  @abc.abstractmethod
@@ -350,7 +414,19 @@ class ModalClientBase(abc.ABC):
350
414
  pass
351
415
 
352
416
  @abc.abstractmethod
353
- async def SecretCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SecretCreateRequest, modal_proto.api_pb2.SecretCreateResponse]') -> None:
417
+ async def SandboxTagsSet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTagsSetRequest, google.protobuf.empty_pb2.Empty]') -> None:
418
+ pass
419
+
420
+ @abc.abstractmethod
421
+ async def SandboxTerminate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTerminateRequest, modal_proto.api_pb2.SandboxTerminateResponse]') -> None:
422
+ pass
423
+
424
+ @abc.abstractmethod
425
+ async def SandboxWait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxWaitRequest, modal_proto.api_pb2.SandboxWaitResponse]') -> None:
426
+ pass
427
+
428
+ @abc.abstractmethod
429
+ async def SecretDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SecretDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
354
430
  pass
355
431
 
356
432
  @abc.abstractmethod
@@ -362,11 +438,15 @@ class ModalClientBase(abc.ABC):
362
438
  pass
363
439
 
364
440
  @abc.abstractmethod
365
- async def SharedVolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetOrCreateRequest, modal_proto.api_pb2.SharedVolumeGetOrCreateResponse]') -> None:
441
+ async def SharedVolumeDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
442
+ pass
443
+
444
+ @abc.abstractmethod
445
+ async def SharedVolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetFileRequest, modal_proto.api_pb2.SharedVolumeGetFileResponse]') -> None:
366
446
  pass
367
447
 
368
448
  @abc.abstractmethod
369
- async def SharedVolumeCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeCreateRequest, modal_proto.api_pb2.SharedVolumeCreateResponse]') -> None:
449
+ async def SharedVolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetOrCreateRequest, modal_proto.api_pb2.SharedVolumeGetOrCreateResponse]') -> None:
370
450
  pass
371
451
 
372
452
  @abc.abstractmethod
@@ -390,15 +470,15 @@ class ModalClientBase(abc.ABC):
390
470
  pass
391
471
 
392
472
  @abc.abstractmethod
393
- async def SharedVolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeGetFileRequest, modal_proto.api_pb2.SharedVolumeGetFileResponse]') -> None:
473
+ async def SharedVolumeRemoveFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeRemoveFileRequest, google.protobuf.empty_pb2.Empty]') -> None:
394
474
  pass
395
475
 
396
476
  @abc.abstractmethod
397
- async def SharedVolumeRemoveFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SharedVolumeRemoveFileRequest, google.protobuf.empty_pb2.Empty]') -> None:
477
+ async def TaskClusterHello(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskClusterHelloRequest, modal_proto.api_pb2.TaskClusterHelloResponse]') -> None:
398
478
  pass
399
479
 
400
480
  @abc.abstractmethod
401
- async def TaskResult(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskResultRequest, google.protobuf.empty_pb2.Empty]') -> None:
481
+ async def TaskCurrentInputs(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.TaskCurrentInputsResponse]') -> None:
402
482
  pass
403
483
 
404
484
  @abc.abstractmethod
@@ -406,7 +486,7 @@ class ModalClientBase(abc.ABC):
406
486
  pass
407
487
 
408
488
  @abc.abstractmethod
409
- async def TaskCurrentInputs(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.TaskCurrentInputsResponse]') -> None:
489
+ async def TaskResult(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.TaskResultRequest, google.protobuf.empty_pb2.Empty]') -> None:
410
490
  pass
411
491
 
412
492
  @abc.abstractmethod
@@ -426,27 +506,27 @@ class ModalClientBase(abc.ABC):
426
506
  pass
427
507
 
428
508
  @abc.abstractmethod
429
- async def VolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetOrCreateRequest, modal_proto.api_pb2.VolumeGetOrCreateResponse]') -> None:
509
+ async def VolumeCommit(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCommitRequest, modal_proto.api_pb2.VolumeCommitResponse]') -> None:
430
510
  pass
431
511
 
432
512
  @abc.abstractmethod
433
- async def VolumeCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCreateRequest, modal_proto.api_pb2.VolumeCreateResponse]') -> None:
513
+ async def VolumeCopyFiles(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCopyFilesRequest, google.protobuf.empty_pb2.Empty]') -> None:
434
514
  pass
435
515
 
436
516
  @abc.abstractmethod
437
- async def VolumeHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
517
+ async def VolumeDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
438
518
  pass
439
519
 
440
520
  @abc.abstractmethod
441
- async def VolumeCommit(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCommitRequest, modal_proto.api_pb2.VolumeCommitResponse]') -> None:
521
+ async def VolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetFileRequest, modal_proto.api_pb2.VolumeGetFileResponse]') -> None:
442
522
  pass
443
523
 
444
524
  @abc.abstractmethod
445
- async def VolumeDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
525
+ async def VolumeGetOrCreate(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetOrCreateRequest, modal_proto.api_pb2.VolumeGetOrCreateResponse]') -> None:
446
526
  pass
447
527
 
448
528
  @abc.abstractmethod
449
- async def VolumeGetFile(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeGetFileRequest, modal_proto.api_pb2.VolumeGetFileResponse]') -> None:
529
+ async def VolumeHeartbeat(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeHeartbeatRequest, google.protobuf.empty_pb2.Empty]') -> None:
450
530
  pass
451
531
 
452
532
  @abc.abstractmethod
@@ -470,7 +550,7 @@ class ModalClientBase(abc.ABC):
470
550
  pass
471
551
 
472
552
  @abc.abstractmethod
473
- async def VolumeCopyFiles(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeCopyFilesRequest, google.protobuf.empty_pb2.Empty]') -> None:
553
+ async def VolumeRename(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.VolumeRenameRequest, google.protobuf.empty_pb2.Empty]') -> None:
474
554
  pass
475
555
 
476
556
  @abc.abstractmethod
@@ -479,17 +559,41 @@ class ModalClientBase(abc.ABC):
479
559
 
480
560
  def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
481
561
  return {
562
+ '/modal.client.ModalClient/AppClientDisconnect': grpclib.const.Handler(
563
+ self.AppClientDisconnect,
564
+ grpclib.const.Cardinality.UNARY_UNARY,
565
+ modal_proto.api_pb2.AppClientDisconnectRequest,
566
+ google.protobuf.empty_pb2.Empty,
567
+ ),
482
568
  '/modal.client.ModalClient/AppCreate': grpclib.const.Handler(
483
569
  self.AppCreate,
484
570
  grpclib.const.Cardinality.UNARY_UNARY,
485
571
  modal_proto.api_pb2.AppCreateRequest,
486
572
  modal_proto.api_pb2.AppCreateResponse,
487
573
  ),
488
- '/modal.client.ModalClient/AppClientDisconnect': grpclib.const.Handler(
489
- self.AppClientDisconnect,
574
+ '/modal.client.ModalClient/AppDeploy': grpclib.const.Handler(
575
+ self.AppDeploy,
490
576
  grpclib.const.Cardinality.UNARY_UNARY,
491
- modal_proto.api_pb2.AppClientDisconnectRequest,
492
- google.protobuf.empty_pb2.Empty,
577
+ modal_proto.api_pb2.AppDeployRequest,
578
+ modal_proto.api_pb2.AppDeployResponse,
579
+ ),
580
+ '/modal.client.ModalClient/AppDeploymentHistory': grpclib.const.Handler(
581
+ self.AppDeploymentHistory,
582
+ grpclib.const.Cardinality.UNARY_UNARY,
583
+ modal_proto.api_pb2.AppDeploymentHistoryRequest,
584
+ modal_proto.api_pb2.AppDeploymentHistoryResponse,
585
+ ),
586
+ '/modal.client.ModalClient/AppGetByDeploymentName': grpclib.const.Handler(
587
+ self.AppGetByDeploymentName,
588
+ grpclib.const.Cardinality.UNARY_UNARY,
589
+ modal_proto.api_pb2.AppGetByDeploymentNameRequest,
590
+ modal_proto.api_pb2.AppGetByDeploymentNameResponse,
591
+ ),
592
+ '/modal.client.ModalClient/AppGetLayout': grpclib.const.Handler(
593
+ self.AppGetLayout,
594
+ grpclib.const.Cardinality.UNARY_UNARY,
595
+ modal_proto.api_pb2.AppGetLayoutRequest,
596
+ modal_proto.api_pb2.AppGetLayoutResponse,
493
597
  ),
494
598
  '/modal.client.ModalClient/AppGetLogs': grpclib.const.Handler(
495
599
  self.AppGetLogs,
@@ -497,47 +601,53 @@ class ModalClientBase(abc.ABC):
497
601
  modal_proto.api_pb2.AppGetLogsRequest,
498
602
  modal_proto.api_pb2.TaskLogsBatch,
499
603
  ),
500
- '/modal.client.ModalClient/AppSetObjects': grpclib.const.Handler(
501
- self.AppSetObjects,
502
- grpclib.const.Cardinality.UNARY_UNARY,
503
- modal_proto.api_pb2.AppSetObjectsRequest,
504
- google.protobuf.empty_pb2.Empty,
505
- ),
506
604
  '/modal.client.ModalClient/AppGetObjects': grpclib.const.Handler(
507
605
  self.AppGetObjects,
508
606
  grpclib.const.Cardinality.UNARY_UNARY,
509
607
  modal_proto.api_pb2.AppGetObjectsRequest,
510
608
  modal_proto.api_pb2.AppGetObjectsResponse,
511
609
  ),
610
+ '/modal.client.ModalClient/AppGetOrCreate': grpclib.const.Handler(
611
+ self.AppGetOrCreate,
612
+ grpclib.const.Cardinality.UNARY_UNARY,
613
+ modal_proto.api_pb2.AppGetOrCreateRequest,
614
+ modal_proto.api_pb2.AppGetOrCreateResponse,
615
+ ),
616
+ '/modal.client.ModalClient/AppHeartbeat': grpclib.const.Handler(
617
+ self.AppHeartbeat,
618
+ grpclib.const.Cardinality.UNARY_UNARY,
619
+ modal_proto.api_pb2.AppHeartbeatRequest,
620
+ google.protobuf.empty_pb2.Empty,
621
+ ),
512
622
  '/modal.client.ModalClient/AppList': grpclib.const.Handler(
513
623
  self.AppList,
514
624
  grpclib.const.Cardinality.UNARY_UNARY,
515
625
  modal_proto.api_pb2.AppListRequest,
516
626
  modal_proto.api_pb2.AppListResponse,
517
627
  ),
518
- '/modal.client.ModalClient/AppLookupObject': grpclib.const.Handler(
519
- self.AppLookupObject,
628
+ '/modal.client.ModalClient/AppLookup': grpclib.const.Handler(
629
+ self.AppLookup,
520
630
  grpclib.const.Cardinality.UNARY_UNARY,
521
- modal_proto.api_pb2.AppLookupObjectRequest,
522
- modal_proto.api_pb2.AppLookupObjectResponse,
631
+ modal_proto.api_pb2.AppLookupRequest,
632
+ modal_proto.api_pb2.AppLookupResponse,
523
633
  ),
524
- '/modal.client.ModalClient/AppDeploy': grpclib.const.Handler(
525
- self.AppDeploy,
634
+ '/modal.client.ModalClient/AppPublish': grpclib.const.Handler(
635
+ self.AppPublish,
526
636
  grpclib.const.Cardinality.UNARY_UNARY,
527
- modal_proto.api_pb2.AppDeployRequest,
528
- modal_proto.api_pb2.AppDeployResponse,
637
+ modal_proto.api_pb2.AppPublishRequest,
638
+ modal_proto.api_pb2.AppPublishResponse,
529
639
  ),
530
- '/modal.client.ModalClient/AppDeploySingleObject': grpclib.const.Handler(
531
- self.AppDeploySingleObject,
640
+ '/modal.client.ModalClient/AppRollback': grpclib.const.Handler(
641
+ self.AppRollback,
532
642
  grpclib.const.Cardinality.UNARY_UNARY,
533
- modal_proto.api_pb2.AppDeploySingleObjectRequest,
534
- modal_proto.api_pb2.AppDeploySingleObjectResponse,
643
+ modal_proto.api_pb2.AppRollbackRequest,
644
+ google.protobuf.empty_pb2.Empty,
535
645
  ),
536
- '/modal.client.ModalClient/AppGetByDeploymentName': grpclib.const.Handler(
537
- self.AppGetByDeploymentName,
646
+ '/modal.client.ModalClient/AppSetObjects': grpclib.const.Handler(
647
+ self.AppSetObjects,
538
648
  grpclib.const.Cardinality.UNARY_UNARY,
539
- modal_proto.api_pb2.AppGetByDeploymentNameRequest,
540
- modal_proto.api_pb2.AppGetByDeploymentNameResponse,
649
+ modal_proto.api_pb2.AppSetObjectsRequest,
650
+ google.protobuf.empty_pb2.Empty,
541
651
  ),
542
652
  '/modal.client.ModalClient/AppStop': grpclib.const.Handler(
543
653
  self.AppStop,
@@ -545,12 +655,6 @@ class ModalClientBase(abc.ABC):
545
655
  modal_proto.api_pb2.AppStopRequest,
546
656
  google.protobuf.empty_pb2.Empty,
547
657
  ),
548
- '/modal.client.ModalClient/AppHeartbeat': grpclib.const.Handler(
549
- self.AppHeartbeat,
550
- grpclib.const.Cardinality.UNARY_UNARY,
551
- modal_proto.api_pb2.AppHeartbeatRequest,
552
- google.protobuf.empty_pb2.Empty,
553
- ),
554
658
  '/modal.client.ModalClient/BlobCreate': grpclib.const.Handler(
555
659
  self.BlobCreate,
556
660
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -575,30 +679,18 @@ class ModalClientBase(abc.ABC):
575
679
  modal_proto.api_pb2.ClassGetRequest,
576
680
  modal_proto.api_pb2.ClassGetResponse,
577
681
  ),
578
- '/modal.client.ModalClient/ClientCreate': grpclib.const.Handler(
579
- self.ClientCreate,
580
- grpclib.const.Cardinality.UNARY_UNARY,
581
- modal_proto.api_pb2.ClientCreateRequest,
582
- modal_proto.api_pb2.ClientCreateResponse,
583
- ),
584
682
  '/modal.client.ModalClient/ClientHello': grpclib.const.Handler(
585
683
  self.ClientHello,
586
684
  grpclib.const.Cardinality.UNARY_UNARY,
587
685
  google.protobuf.empty_pb2.Empty,
588
686
  modal_proto.api_pb2.ClientHelloResponse,
589
687
  ),
590
- '/modal.client.ModalClient/ClientHeartbeat': grpclib.const.Handler(
591
- self.ClientHeartbeat,
688
+ '/modal.client.ModalClient/ContainerCheckpoint': grpclib.const.Handler(
689
+ self.ContainerCheckpoint,
592
690
  grpclib.const.Cardinality.UNARY_UNARY,
593
- modal_proto.api_pb2.ClientHeartbeatRequest,
691
+ modal_proto.api_pb2.ContainerCheckpointRequest,
594
692
  google.protobuf.empty_pb2.Empty,
595
693
  ),
596
- '/modal.client.ModalClient/ContainerHeartbeat': grpclib.const.Handler(
597
- self.ContainerHeartbeat,
598
- grpclib.const.Cardinality.UNARY_UNARY,
599
- modal_proto.api_pb2.ContainerHeartbeatRequest,
600
- modal_proto.api_pb2.ContainerHeartbeatResponse,
601
- ),
602
694
  '/modal.client.ModalClient/ContainerExec': grpclib.const.Handler(
603
695
  self.ContainerExec,
604
696
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -617,12 +709,48 @@ class ModalClientBase(abc.ABC):
617
709
  modal_proto.api_pb2.ContainerExecPutInputRequest,
618
710
  google.protobuf.empty_pb2.Empty,
619
711
  ),
620
- '/modal.client.ModalClient/ContainerCheckpoint': grpclib.const.Handler(
621
- self.ContainerCheckpoint,
712
+ '/modal.client.ModalClient/ContainerExecWait': grpclib.const.Handler(
713
+ self.ContainerExecWait,
622
714
  grpclib.const.Cardinality.UNARY_UNARY,
623
- modal_proto.api_pb2.ContainerCheckpointRequest,
715
+ modal_proto.api_pb2.ContainerExecWaitRequest,
716
+ modal_proto.api_pb2.ContainerExecWaitResponse,
717
+ ),
718
+ '/modal.client.ModalClient/ContainerFilesystemExec': grpclib.const.Handler(
719
+ self.ContainerFilesystemExec,
720
+ grpclib.const.Cardinality.UNARY_UNARY,
721
+ modal_proto.api_pb2.ContainerFilesystemExecRequest,
722
+ modal_proto.api_pb2.ContainerFilesystemExecResponse,
723
+ ),
724
+ '/modal.client.ModalClient/ContainerFilesystemExecGetOutput': grpclib.const.Handler(
725
+ self.ContainerFilesystemExecGetOutput,
726
+ grpclib.const.Cardinality.UNARY_STREAM,
727
+ modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest,
728
+ modal_proto.api_pb2.FilesystemRuntimeOutputBatch,
729
+ ),
730
+ '/modal.client.ModalClient/ContainerHeartbeat': grpclib.const.Handler(
731
+ self.ContainerHeartbeat,
732
+ grpclib.const.Cardinality.UNARY_UNARY,
733
+ modal_proto.api_pb2.ContainerHeartbeatRequest,
734
+ modal_proto.api_pb2.ContainerHeartbeatResponse,
735
+ ),
736
+ '/modal.client.ModalClient/ContainerHello': grpclib.const.Handler(
737
+ self.ContainerHello,
738
+ grpclib.const.Cardinality.UNARY_UNARY,
739
+ google.protobuf.empty_pb2.Empty,
624
740
  google.protobuf.empty_pb2.Empty,
625
741
  ),
742
+ '/modal.client.ModalClient/ContainerLog': grpclib.const.Handler(
743
+ self.ContainerLog,
744
+ grpclib.const.Cardinality.UNARY_UNARY,
745
+ modal_proto.api_pb2.ContainerLogRequest,
746
+ google.protobuf.empty_pb2.Empty,
747
+ ),
748
+ '/modal.client.ModalClient/ContainerStop': grpclib.const.Handler(
749
+ self.ContainerStop,
750
+ grpclib.const.Cardinality.UNARY_UNARY,
751
+ modal_proto.api_pb2.ContainerStopRequest,
752
+ modal_proto.api_pb2.ContainerStopResponse,
753
+ ),
626
754
  '/modal.client.ModalClient/DictClear': grpclib.const.Handler(
627
755
  self.DictClear,
628
756
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -641,12 +769,6 @@ class ModalClientBase(abc.ABC):
641
769
  modal_proto.api_pb2.DictContentsRequest,
642
770
  modal_proto.api_pb2.DictEntry,
643
771
  ),
644
- '/modal.client.ModalClient/DictCreate': grpclib.const.Handler(
645
- self.DictCreate,
646
- grpclib.const.Cardinality.UNARY_UNARY,
647
- modal_proto.api_pb2.DictCreateRequest,
648
- modal_proto.api_pb2.DictCreateResponse,
649
- ),
650
772
  '/modal.client.ModalClient/DictDelete': grpclib.const.Handler(
651
773
  self.DictDelete,
652
774
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -695,7 +817,13 @@ class ModalClientBase(abc.ABC):
695
817
  modal_proto.api_pb2.DictUpdateRequest,
696
818
  modal_proto.api_pb2.DictUpdateResponse,
697
819
  ),
698
- '/modal.client.ModalClient/DomainCreate': grpclib.const.Handler(
820
+ '/modal.client.ModalClient/DomainCertificateVerify': grpclib.const.Handler(
821
+ self.DomainCertificateVerify,
822
+ grpclib.const.Cardinality.UNARY_UNARY,
823
+ modal_proto.api_pb2.DomainCertificateVerifyRequest,
824
+ modal_proto.api_pb2.DomainCertificateVerifyResponse,
825
+ ),
826
+ '/modal.client.ModalClient/DomainCreate': grpclib.const.Handler(
699
827
  self.DomainCreate,
700
828
  grpclib.const.Cardinality.UNARY_UNARY,
701
829
  modal_proto.api_pb2.DomainCreateRequest,
@@ -707,42 +835,78 @@ class ModalClientBase(abc.ABC):
707
835
  modal_proto.api_pb2.DomainListRequest,
708
836
  modal_proto.api_pb2.DomainListResponse,
709
837
  ),
710
- '/modal.client.ModalClient/DomainCertificateVerify': grpclib.const.Handler(
711
- self.DomainCertificateVerify,
712
- grpclib.const.Cardinality.UNARY_UNARY,
713
- modal_proto.api_pb2.DomainCertificateVerifyRequest,
714
- modal_proto.api_pb2.DomainCertificateVerifyResponse,
715
- ),
716
838
  '/modal.client.ModalClient/EnvironmentCreate': grpclib.const.Handler(
717
839
  self.EnvironmentCreate,
718
840
  grpclib.const.Cardinality.UNARY_UNARY,
719
841
  modal_proto.api_pb2.EnvironmentCreateRequest,
720
842
  google.protobuf.empty_pb2.Empty,
721
843
  ),
722
- '/modal.client.ModalClient/EnvironmentList': grpclib.const.Handler(
723
- self.EnvironmentList,
724
- grpclib.const.Cardinality.UNARY_UNARY,
725
- google.protobuf.empty_pb2.Empty,
726
- modal_proto.api_pb2.EnvironmentListResponse,
727
- ),
728
844
  '/modal.client.ModalClient/EnvironmentDelete': grpclib.const.Handler(
729
845
  self.EnvironmentDelete,
730
846
  grpclib.const.Cardinality.UNARY_UNARY,
731
847
  modal_proto.api_pb2.EnvironmentDeleteRequest,
732
848
  google.protobuf.empty_pb2.Empty,
733
849
  ),
850
+ '/modal.client.ModalClient/EnvironmentGetOrCreate': grpclib.const.Handler(
851
+ self.EnvironmentGetOrCreate,
852
+ grpclib.const.Cardinality.UNARY_UNARY,
853
+ modal_proto.api_pb2.EnvironmentGetOrCreateRequest,
854
+ modal_proto.api_pb2.EnvironmentGetOrCreateResponse,
855
+ ),
856
+ '/modal.client.ModalClient/EnvironmentList': grpclib.const.Handler(
857
+ self.EnvironmentList,
858
+ grpclib.const.Cardinality.UNARY_UNARY,
859
+ google.protobuf.empty_pb2.Empty,
860
+ modal_proto.api_pb2.EnvironmentListResponse,
861
+ ),
734
862
  '/modal.client.ModalClient/EnvironmentUpdate': grpclib.const.Handler(
735
863
  self.EnvironmentUpdate,
736
864
  grpclib.const.Cardinality.UNARY_UNARY,
737
865
  modal_proto.api_pb2.EnvironmentUpdateRequest,
738
866
  modal_proto.api_pb2.EnvironmentListItem,
739
867
  ),
868
+ '/modal.client.ModalClient/FunctionAsyncInvoke': grpclib.const.Handler(
869
+ self.FunctionAsyncInvoke,
870
+ grpclib.const.Cardinality.UNARY_UNARY,
871
+ modal_proto.api_pb2.FunctionAsyncInvokeRequest,
872
+ modal_proto.api_pb2.FunctionAsyncInvokeResponse,
873
+ ),
740
874
  '/modal.client.ModalClient/FunctionBindParams': grpclib.const.Handler(
741
875
  self.FunctionBindParams,
742
876
  grpclib.const.Cardinality.UNARY_UNARY,
743
877
  modal_proto.api_pb2.FunctionBindParamsRequest,
744
878
  modal_proto.api_pb2.FunctionBindParamsResponse,
745
879
  ),
880
+ '/modal.client.ModalClient/FunctionCallCancel': grpclib.const.Handler(
881
+ self.FunctionCallCancel,
882
+ grpclib.const.Cardinality.UNARY_UNARY,
883
+ modal_proto.api_pb2.FunctionCallCancelRequest,
884
+ google.protobuf.empty_pb2.Empty,
885
+ ),
886
+ '/modal.client.ModalClient/FunctionCallGetDataIn': grpclib.const.Handler(
887
+ self.FunctionCallGetDataIn,
888
+ grpclib.const.Cardinality.UNARY_STREAM,
889
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
890
+ modal_proto.api_pb2.DataChunk,
891
+ ),
892
+ '/modal.client.ModalClient/FunctionCallGetDataOut': grpclib.const.Handler(
893
+ self.FunctionCallGetDataOut,
894
+ grpclib.const.Cardinality.UNARY_STREAM,
895
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
896
+ modal_proto.api_pb2.DataChunk,
897
+ ),
898
+ '/modal.client.ModalClient/FunctionCallList': grpclib.const.Handler(
899
+ self.FunctionCallList,
900
+ grpclib.const.Cardinality.UNARY_UNARY,
901
+ modal_proto.api_pb2.FunctionCallListRequest,
902
+ modal_proto.api_pb2.FunctionCallListResponse,
903
+ ),
904
+ '/modal.client.ModalClient/FunctionCallPutDataOut': grpclib.const.Handler(
905
+ self.FunctionCallPutDataOut,
906
+ grpclib.const.Cardinality.UNARY_UNARY,
907
+ modal_proto.api_pb2.FunctionCallPutDataRequest,
908
+ google.protobuf.empty_pb2.Empty,
909
+ ),
746
910
  '/modal.client.ModalClient/FunctionCreate': grpclib.const.Handler(
747
911
  self.FunctionCreate,
748
912
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -767,6 +931,12 @@ class ModalClientBase(abc.ABC):
767
931
  modal_proto.api_pb2.FunctionGetCurrentStatsRequest,
768
932
  modal_proto.api_pb2.FunctionStats,
769
933
  ),
934
+ '/modal.client.ModalClient/FunctionGetDynamicConcurrency': grpclib.const.Handler(
935
+ self.FunctionGetDynamicConcurrency,
936
+ grpclib.const.Cardinality.UNARY_UNARY,
937
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest,
938
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse,
939
+ ),
770
940
  '/modal.client.ModalClient/FunctionGetInputs': grpclib.const.Handler(
771
941
  self.FunctionGetInputs,
772
942
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -809,47 +979,29 @@ class ModalClientBase(abc.ABC):
809
979
  modal_proto.api_pb2.FunctionPutOutputsRequest,
810
980
  google.protobuf.empty_pb2.Empty,
811
981
  ),
812
- '/modal.client.ModalClient/FunctionUpdateSchedulingParams': grpclib.const.Handler(
813
- self.FunctionUpdateSchedulingParams,
982
+ '/modal.client.ModalClient/FunctionRetryInputs': grpclib.const.Handler(
983
+ self.FunctionRetryInputs,
814
984
  grpclib.const.Cardinality.UNARY_UNARY,
815
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
816
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
985
+ modal_proto.api_pb2.FunctionRetryInputsRequest,
986
+ modal_proto.api_pb2.FunctionRetryInputsResponse,
817
987
  ),
818
- '/modal.client.ModalClient/FunctionCallCancel': grpclib.const.Handler(
819
- self.FunctionCallCancel,
988
+ '/modal.client.ModalClient/FunctionStartPtyShell': grpclib.const.Handler(
989
+ self.FunctionStartPtyShell,
820
990
  grpclib.const.Cardinality.UNARY_UNARY,
821
- modal_proto.api_pb2.FunctionCallCancelRequest,
991
+ google.protobuf.empty_pb2.Empty,
822
992
  google.protobuf.empty_pb2.Empty,
823
993
  ),
824
- '/modal.client.ModalClient/FunctionCallList': grpclib.const.Handler(
825
- self.FunctionCallList,
826
- grpclib.const.Cardinality.UNARY_UNARY,
827
- modal_proto.api_pb2.FunctionCallListRequest,
828
- modal_proto.api_pb2.FunctionCallListResponse,
829
- ),
830
- '/modal.client.ModalClient/FunctionCallGetDataIn': grpclib.const.Handler(
831
- self.FunctionCallGetDataIn,
832
- grpclib.const.Cardinality.UNARY_STREAM,
833
- modal_proto.api_pb2.FunctionCallGetDataRequest,
834
- modal_proto.api_pb2.DataChunk,
835
- ),
836
- '/modal.client.ModalClient/FunctionCallGetDataOut': grpclib.const.Handler(
837
- self.FunctionCallGetDataOut,
838
- grpclib.const.Cardinality.UNARY_STREAM,
839
- modal_proto.api_pb2.FunctionCallGetDataRequest,
840
- modal_proto.api_pb2.DataChunk,
841
- ),
842
- '/modal.client.ModalClient/FunctionCallPutDataOut': grpclib.const.Handler(
843
- self.FunctionCallPutDataOut,
994
+ '/modal.client.ModalClient/FunctionUpdateSchedulingParams': grpclib.const.Handler(
995
+ self.FunctionUpdateSchedulingParams,
844
996
  grpclib.const.Cardinality.UNARY_UNARY,
845
- modal_proto.api_pb2.FunctionCallPutDataRequest,
846
- google.protobuf.empty_pb2.Empty,
997
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
998
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
847
999
  ),
848
- '/modal.client.ModalClient/FunctionStartPtyShell': grpclib.const.Handler(
849
- self.FunctionStartPtyShell,
1000
+ '/modal.client.ModalClient/ImageFromId': grpclib.const.Handler(
1001
+ self.ImageFromId,
850
1002
  grpclib.const.Cardinality.UNARY_UNARY,
851
- google.protobuf.empty_pb2.Empty,
852
- google.protobuf.empty_pb2.Empty,
1003
+ modal_proto.api_pb2.ImageFromIdRequest,
1004
+ modal_proto.api_pb2.ImageFromIdResponse,
853
1005
  ),
854
1006
  '/modal.client.ModalClient/ImageGetOrCreate': grpclib.const.Handler(
855
1007
  self.ImageGetOrCreate,
@@ -863,23 +1015,35 @@ class ModalClientBase(abc.ABC):
863
1015
  modal_proto.api_pb2.ImageJoinStreamingRequest,
864
1016
  modal_proto.api_pb2.ImageJoinStreamingResponse,
865
1017
  ),
1018
+ '/modal.client.ModalClient/MountGetOrCreate': grpclib.const.Handler(
1019
+ self.MountGetOrCreate,
1020
+ grpclib.const.Cardinality.UNARY_UNARY,
1021
+ modal_proto.api_pb2.MountGetOrCreateRequest,
1022
+ modal_proto.api_pb2.MountGetOrCreateResponse,
1023
+ ),
866
1024
  '/modal.client.ModalClient/MountPutFile': grpclib.const.Handler(
867
1025
  self.MountPutFile,
868
1026
  grpclib.const.Cardinality.UNARY_UNARY,
869
1027
  modal_proto.api_pb2.MountPutFileRequest,
870
1028
  modal_proto.api_pb2.MountPutFileResponse,
871
1029
  ),
872
- '/modal.client.ModalClient/MountBuild': grpclib.const.Handler(
873
- self.MountBuild,
1030
+ '/modal.client.ModalClient/ProxyCreate': grpclib.const.Handler(
1031
+ self.ProxyCreate,
874
1032
  grpclib.const.Cardinality.UNARY_UNARY,
875
- modal_proto.api_pb2.MountBuildRequest,
876
- modal_proto.api_pb2.MountBuildResponse,
1033
+ modal_proto.api_pb2.ProxyCreateRequest,
1034
+ modal_proto.api_pb2.ProxyCreateResponse,
877
1035
  ),
878
- '/modal.client.ModalClient/MountGetOrCreate': grpclib.const.Handler(
879
- self.MountGetOrCreate,
1036
+ '/modal.client.ModalClient/ProxyDelete': grpclib.const.Handler(
1037
+ self.ProxyDelete,
880
1038
  grpclib.const.Cardinality.UNARY_UNARY,
881
- modal_proto.api_pb2.MountGetOrCreateRequest,
882
- modal_proto.api_pb2.MountGetOrCreateResponse,
1039
+ modal_proto.api_pb2.ProxyDeleteRequest,
1040
+ google.protobuf.empty_pb2.Empty,
1041
+ ),
1042
+ '/modal.client.ModalClient/ProxyGet': grpclib.const.Handler(
1043
+ self.ProxyGet,
1044
+ grpclib.const.Cardinality.UNARY_UNARY,
1045
+ modal_proto.api_pb2.ProxyGetRequest,
1046
+ modal_proto.api_pb2.ProxyGetResponse,
883
1047
  ),
884
1048
  '/modal.client.ModalClient/ProxyGetOrCreate': grpclib.const.Handler(
885
1049
  self.ProxyGetOrCreate,
@@ -887,11 +1051,17 @@ class ModalClientBase(abc.ABC):
887
1051
  modal_proto.api_pb2.ProxyGetOrCreateRequest,
888
1052
  modal_proto.api_pb2.ProxyGetOrCreateResponse,
889
1053
  ),
890
- '/modal.client.ModalClient/QueueCreate': grpclib.const.Handler(
891
- self.QueueCreate,
1054
+ '/modal.client.ModalClient/ProxyList': grpclib.const.Handler(
1055
+ self.ProxyList,
892
1056
  grpclib.const.Cardinality.UNARY_UNARY,
893
- modal_proto.api_pb2.QueueCreateRequest,
894
- modal_proto.api_pb2.QueueCreateResponse,
1057
+ google.protobuf.empty_pb2.Empty,
1058
+ modal_proto.api_pb2.ProxyListResponse,
1059
+ ),
1060
+ '/modal.client.ModalClient/QueueClear': grpclib.const.Handler(
1061
+ self.QueueClear,
1062
+ grpclib.const.Cardinality.UNARY_UNARY,
1063
+ modal_proto.api_pb2.QueueClearRequest,
1064
+ google.protobuf.empty_pb2.Empty,
895
1065
  ),
896
1066
  '/modal.client.ModalClient/QueueDelete': grpclib.const.Handler(
897
1067
  self.QueueDelete,
@@ -899,65 +1069,71 @@ class ModalClientBase(abc.ABC):
899
1069
  modal_proto.api_pb2.QueueDeleteRequest,
900
1070
  google.protobuf.empty_pb2.Empty,
901
1071
  ),
902
- '/modal.client.ModalClient/QueueGetOrCreate': grpclib.const.Handler(
903
- self.QueueGetOrCreate,
904
- grpclib.const.Cardinality.UNARY_UNARY,
905
- modal_proto.api_pb2.QueueGetOrCreateRequest,
906
- modal_proto.api_pb2.QueueGetOrCreateResponse,
907
- ),
908
1072
  '/modal.client.ModalClient/QueueGet': grpclib.const.Handler(
909
1073
  self.QueueGet,
910
1074
  grpclib.const.Cardinality.UNARY_UNARY,
911
1075
  modal_proto.api_pb2.QueueGetRequest,
912
1076
  modal_proto.api_pb2.QueueGetResponse,
913
1077
  ),
1078
+ '/modal.client.ModalClient/QueueGetOrCreate': grpclib.const.Handler(
1079
+ self.QueueGetOrCreate,
1080
+ grpclib.const.Cardinality.UNARY_UNARY,
1081
+ modal_proto.api_pb2.QueueGetOrCreateRequest,
1082
+ modal_proto.api_pb2.QueueGetOrCreateResponse,
1083
+ ),
914
1084
  '/modal.client.ModalClient/QueueHeartbeat': grpclib.const.Handler(
915
1085
  self.QueueHeartbeat,
916
1086
  grpclib.const.Cardinality.UNARY_UNARY,
917
1087
  modal_proto.api_pb2.QueueHeartbeatRequest,
918
1088
  google.protobuf.empty_pb2.Empty,
919
1089
  ),
920
- '/modal.client.ModalClient/QueuePut': grpclib.const.Handler(
921
- self.QueuePut,
922
- grpclib.const.Cardinality.UNARY_UNARY,
923
- modal_proto.api_pb2.QueuePutRequest,
924
- google.protobuf.empty_pb2.Empty,
925
- ),
926
1090
  '/modal.client.ModalClient/QueueLen': grpclib.const.Handler(
927
1091
  self.QueueLen,
928
1092
  grpclib.const.Cardinality.UNARY_UNARY,
929
1093
  modal_proto.api_pb2.QueueLenRequest,
930
1094
  modal_proto.api_pb2.QueueLenResponse,
931
1095
  ),
1096
+ '/modal.client.ModalClient/QueueList': grpclib.const.Handler(
1097
+ self.QueueList,
1098
+ grpclib.const.Cardinality.UNARY_UNARY,
1099
+ modal_proto.api_pb2.QueueListRequest,
1100
+ modal_proto.api_pb2.QueueListResponse,
1101
+ ),
932
1102
  '/modal.client.ModalClient/QueueNextItems': grpclib.const.Handler(
933
1103
  self.QueueNextItems,
934
1104
  grpclib.const.Cardinality.UNARY_UNARY,
935
1105
  modal_proto.api_pb2.QueueNextItemsRequest,
936
1106
  modal_proto.api_pb2.QueueNextItemsResponse,
937
1107
  ),
1108
+ '/modal.client.ModalClient/QueuePut': grpclib.const.Handler(
1109
+ self.QueuePut,
1110
+ grpclib.const.Cardinality.UNARY_UNARY,
1111
+ modal_proto.api_pb2.QueuePutRequest,
1112
+ google.protobuf.empty_pb2.Empty,
1113
+ ),
938
1114
  '/modal.client.ModalClient/SandboxCreate': grpclib.const.Handler(
939
1115
  self.SandboxCreate,
940
1116
  grpclib.const.Cardinality.UNARY_UNARY,
941
1117
  modal_proto.api_pb2.SandboxCreateRequest,
942
1118
  modal_proto.api_pb2.SandboxCreateResponse,
943
1119
  ),
944
- '/modal.client.ModalClient/SandboxGetTaskId': grpclib.const.Handler(
945
- self.SandboxGetTaskId,
946
- grpclib.const.Cardinality.UNARY_UNARY,
947
- modal_proto.api_pb2.SandboxGetTaskIdRequest,
948
- modal_proto.api_pb2.SandboxGetTaskIdResponse,
949
- ),
950
1120
  '/modal.client.ModalClient/SandboxGetLogs': grpclib.const.Handler(
951
1121
  self.SandboxGetLogs,
952
1122
  grpclib.const.Cardinality.UNARY_STREAM,
953
1123
  modal_proto.api_pb2.SandboxGetLogsRequest,
954
1124
  modal_proto.api_pb2.TaskLogsBatch,
955
1125
  ),
956
- '/modal.client.ModalClient/SandboxWait': grpclib.const.Handler(
957
- self.SandboxWait,
1126
+ '/modal.client.ModalClient/SandboxGetTaskId': grpclib.const.Handler(
1127
+ self.SandboxGetTaskId,
958
1128
  grpclib.const.Cardinality.UNARY_UNARY,
959
- modal_proto.api_pb2.SandboxWaitRequest,
960
- modal_proto.api_pb2.SandboxWaitResponse,
1129
+ modal_proto.api_pb2.SandboxGetTaskIdRequest,
1130
+ modal_proto.api_pb2.SandboxGetTaskIdResponse,
1131
+ ),
1132
+ '/modal.client.ModalClient/SandboxGetTunnels': grpclib.const.Handler(
1133
+ self.SandboxGetTunnels,
1134
+ grpclib.const.Cardinality.UNARY_UNARY,
1135
+ modal_proto.api_pb2.SandboxGetTunnelsRequest,
1136
+ modal_proto.api_pb2.SandboxGetTunnelsResponse,
961
1137
  ),
962
1138
  '/modal.client.ModalClient/SandboxList': grpclib.const.Handler(
963
1139
  self.SandboxList,
@@ -965,11 +1141,11 @@ class ModalClientBase(abc.ABC):
965
1141
  modal_proto.api_pb2.SandboxListRequest,
966
1142
  modal_proto.api_pb2.SandboxListResponse,
967
1143
  ),
968
- '/modal.client.ModalClient/SandboxTerminate': grpclib.const.Handler(
969
- self.SandboxTerminate,
1144
+ '/modal.client.ModalClient/SandboxSnapshotFs': grpclib.const.Handler(
1145
+ self.SandboxSnapshotFs,
970
1146
  grpclib.const.Cardinality.UNARY_UNARY,
971
- modal_proto.api_pb2.SandboxTerminateRequest,
972
- modal_proto.api_pb2.SandboxTerminateResponse,
1147
+ modal_proto.api_pb2.SandboxSnapshotFsRequest,
1148
+ modal_proto.api_pb2.SandboxSnapshotFsResponse,
973
1149
  ),
974
1150
  '/modal.client.ModalClient/SandboxStdinWrite': grpclib.const.Handler(
975
1151
  self.SandboxStdinWrite,
@@ -977,11 +1153,29 @@ class ModalClientBase(abc.ABC):
977
1153
  modal_proto.api_pb2.SandboxStdinWriteRequest,
978
1154
  modal_proto.api_pb2.SandboxStdinWriteResponse,
979
1155
  ),
980
- '/modal.client.ModalClient/SecretCreate': grpclib.const.Handler(
981
- self.SecretCreate,
1156
+ '/modal.client.ModalClient/SandboxTagsSet': grpclib.const.Handler(
1157
+ self.SandboxTagsSet,
1158
+ grpclib.const.Cardinality.UNARY_UNARY,
1159
+ modal_proto.api_pb2.SandboxTagsSetRequest,
1160
+ google.protobuf.empty_pb2.Empty,
1161
+ ),
1162
+ '/modal.client.ModalClient/SandboxTerminate': grpclib.const.Handler(
1163
+ self.SandboxTerminate,
982
1164
  grpclib.const.Cardinality.UNARY_UNARY,
983
- modal_proto.api_pb2.SecretCreateRequest,
984
- modal_proto.api_pb2.SecretCreateResponse,
1165
+ modal_proto.api_pb2.SandboxTerminateRequest,
1166
+ modal_proto.api_pb2.SandboxTerminateResponse,
1167
+ ),
1168
+ '/modal.client.ModalClient/SandboxWait': grpclib.const.Handler(
1169
+ self.SandboxWait,
1170
+ grpclib.const.Cardinality.UNARY_UNARY,
1171
+ modal_proto.api_pb2.SandboxWaitRequest,
1172
+ modal_proto.api_pb2.SandboxWaitResponse,
1173
+ ),
1174
+ '/modal.client.ModalClient/SecretDelete': grpclib.const.Handler(
1175
+ self.SecretDelete,
1176
+ grpclib.const.Cardinality.UNARY_UNARY,
1177
+ modal_proto.api_pb2.SecretDeleteRequest,
1178
+ google.protobuf.empty_pb2.Empty,
985
1179
  ),
986
1180
  '/modal.client.ModalClient/SecretGetOrCreate': grpclib.const.Handler(
987
1181
  self.SecretGetOrCreate,
@@ -995,18 +1189,24 @@ class ModalClientBase(abc.ABC):
995
1189
  modal_proto.api_pb2.SecretListRequest,
996
1190
  modal_proto.api_pb2.SecretListResponse,
997
1191
  ),
1192
+ '/modal.client.ModalClient/SharedVolumeDelete': grpclib.const.Handler(
1193
+ self.SharedVolumeDelete,
1194
+ grpclib.const.Cardinality.UNARY_UNARY,
1195
+ modal_proto.api_pb2.SharedVolumeDeleteRequest,
1196
+ google.protobuf.empty_pb2.Empty,
1197
+ ),
1198
+ '/modal.client.ModalClient/SharedVolumeGetFile': grpclib.const.Handler(
1199
+ self.SharedVolumeGetFile,
1200
+ grpclib.const.Cardinality.UNARY_UNARY,
1201
+ modal_proto.api_pb2.SharedVolumeGetFileRequest,
1202
+ modal_proto.api_pb2.SharedVolumeGetFileResponse,
1203
+ ),
998
1204
  '/modal.client.ModalClient/SharedVolumeGetOrCreate': grpclib.const.Handler(
999
1205
  self.SharedVolumeGetOrCreate,
1000
1206
  grpclib.const.Cardinality.UNARY_UNARY,
1001
1207
  modal_proto.api_pb2.SharedVolumeGetOrCreateRequest,
1002
1208
  modal_proto.api_pb2.SharedVolumeGetOrCreateResponse,
1003
1209
  ),
1004
- '/modal.client.ModalClient/SharedVolumeCreate': grpclib.const.Handler(
1005
- self.SharedVolumeCreate,
1006
- grpclib.const.Cardinality.UNARY_UNARY,
1007
- modal_proto.api_pb2.SharedVolumeCreateRequest,
1008
- modal_proto.api_pb2.SharedVolumeCreateResponse,
1009
- ),
1010
1210
  '/modal.client.ModalClient/SharedVolumeHeartbeat': grpclib.const.Handler(
1011
1211
  self.SharedVolumeHeartbeat,
1012
1212
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1037,23 +1237,23 @@ class ModalClientBase(abc.ABC):
1037
1237
  modal_proto.api_pb2.SharedVolumePutFileRequest,
1038
1238
  modal_proto.api_pb2.SharedVolumePutFileResponse,
1039
1239
  ),
1040
- '/modal.client.ModalClient/SharedVolumeGetFile': grpclib.const.Handler(
1041
- self.SharedVolumeGetFile,
1042
- grpclib.const.Cardinality.UNARY_UNARY,
1043
- modal_proto.api_pb2.SharedVolumeGetFileRequest,
1044
- modal_proto.api_pb2.SharedVolumeGetFileResponse,
1045
- ),
1046
1240
  '/modal.client.ModalClient/SharedVolumeRemoveFile': grpclib.const.Handler(
1047
1241
  self.SharedVolumeRemoveFile,
1048
1242
  grpclib.const.Cardinality.UNARY_UNARY,
1049
1243
  modal_proto.api_pb2.SharedVolumeRemoveFileRequest,
1050
1244
  google.protobuf.empty_pb2.Empty,
1051
1245
  ),
1052
- '/modal.client.ModalClient/TaskResult': grpclib.const.Handler(
1053
- self.TaskResult,
1246
+ '/modal.client.ModalClient/TaskClusterHello': grpclib.const.Handler(
1247
+ self.TaskClusterHello,
1248
+ grpclib.const.Cardinality.UNARY_UNARY,
1249
+ modal_proto.api_pb2.TaskClusterHelloRequest,
1250
+ modal_proto.api_pb2.TaskClusterHelloResponse,
1251
+ ),
1252
+ '/modal.client.ModalClient/TaskCurrentInputs': grpclib.const.Handler(
1253
+ self.TaskCurrentInputs,
1054
1254
  grpclib.const.Cardinality.UNARY_UNARY,
1055
- modal_proto.api_pb2.TaskResultRequest,
1056
1255
  google.protobuf.empty_pb2.Empty,
1256
+ modal_proto.api_pb2.TaskCurrentInputsResponse,
1057
1257
  ),
1058
1258
  '/modal.client.ModalClient/TaskList': grpclib.const.Handler(
1059
1259
  self.TaskList,
@@ -1061,11 +1261,11 @@ class ModalClientBase(abc.ABC):
1061
1261
  modal_proto.api_pb2.TaskListRequest,
1062
1262
  modal_proto.api_pb2.TaskListResponse,
1063
1263
  ),
1064
- '/modal.client.ModalClient/TaskCurrentInputs': grpclib.const.Handler(
1065
- self.TaskCurrentInputs,
1264
+ '/modal.client.ModalClient/TaskResult': grpclib.const.Handler(
1265
+ self.TaskResult,
1066
1266
  grpclib.const.Cardinality.UNARY_UNARY,
1267
+ modal_proto.api_pb2.TaskResultRequest,
1067
1268
  google.protobuf.empty_pb2.Empty,
1068
- modal_proto.api_pb2.TaskCurrentInputsResponse,
1069
1269
  ),
1070
1270
  '/modal.client.ModalClient/TokenFlowCreate': grpclib.const.Handler(
1071
1271
  self.TokenFlowCreate,
@@ -1091,30 +1291,18 @@ class ModalClientBase(abc.ABC):
1091
1291
  modal_proto.api_pb2.TunnelStopRequest,
1092
1292
  modal_proto.api_pb2.TunnelStopResponse,
1093
1293
  ),
1094
- '/modal.client.ModalClient/VolumeGetOrCreate': grpclib.const.Handler(
1095
- self.VolumeGetOrCreate,
1096
- grpclib.const.Cardinality.UNARY_UNARY,
1097
- modal_proto.api_pb2.VolumeGetOrCreateRequest,
1098
- modal_proto.api_pb2.VolumeGetOrCreateResponse,
1099
- ),
1100
- '/modal.client.ModalClient/VolumeCreate': grpclib.const.Handler(
1101
- self.VolumeCreate,
1102
- grpclib.const.Cardinality.UNARY_UNARY,
1103
- modal_proto.api_pb2.VolumeCreateRequest,
1104
- modal_proto.api_pb2.VolumeCreateResponse,
1105
- ),
1106
- '/modal.client.ModalClient/VolumeHeartbeat': grpclib.const.Handler(
1107
- self.VolumeHeartbeat,
1108
- grpclib.const.Cardinality.UNARY_UNARY,
1109
- modal_proto.api_pb2.VolumeHeartbeatRequest,
1110
- google.protobuf.empty_pb2.Empty,
1111
- ),
1112
1294
  '/modal.client.ModalClient/VolumeCommit': grpclib.const.Handler(
1113
1295
  self.VolumeCommit,
1114
1296
  grpclib.const.Cardinality.UNARY_UNARY,
1115
1297
  modal_proto.api_pb2.VolumeCommitRequest,
1116
1298
  modal_proto.api_pb2.VolumeCommitResponse,
1117
1299
  ),
1300
+ '/modal.client.ModalClient/VolumeCopyFiles': grpclib.const.Handler(
1301
+ self.VolumeCopyFiles,
1302
+ grpclib.const.Cardinality.UNARY_UNARY,
1303
+ modal_proto.api_pb2.VolumeCopyFilesRequest,
1304
+ google.protobuf.empty_pb2.Empty,
1305
+ ),
1118
1306
  '/modal.client.ModalClient/VolumeDelete': grpclib.const.Handler(
1119
1307
  self.VolumeDelete,
1120
1308
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1127,6 +1315,18 @@ class ModalClientBase(abc.ABC):
1127
1315
  modal_proto.api_pb2.VolumeGetFileRequest,
1128
1316
  modal_proto.api_pb2.VolumeGetFileResponse,
1129
1317
  ),
1318
+ '/modal.client.ModalClient/VolumeGetOrCreate': grpclib.const.Handler(
1319
+ self.VolumeGetOrCreate,
1320
+ grpclib.const.Cardinality.UNARY_UNARY,
1321
+ modal_proto.api_pb2.VolumeGetOrCreateRequest,
1322
+ modal_proto.api_pb2.VolumeGetOrCreateResponse,
1323
+ ),
1324
+ '/modal.client.ModalClient/VolumeHeartbeat': grpclib.const.Handler(
1325
+ self.VolumeHeartbeat,
1326
+ grpclib.const.Cardinality.UNARY_UNARY,
1327
+ modal_proto.api_pb2.VolumeHeartbeatRequest,
1328
+ google.protobuf.empty_pb2.Empty,
1329
+ ),
1130
1330
  '/modal.client.ModalClient/VolumeList': grpclib.const.Handler(
1131
1331
  self.VolumeList,
1132
1332
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1157,10 +1357,10 @@ class ModalClientBase(abc.ABC):
1157
1357
  modal_proto.api_pb2.VolumeRemoveFileRequest,
1158
1358
  google.protobuf.empty_pb2.Empty,
1159
1359
  ),
1160
- '/modal.client.ModalClient/VolumeCopyFiles': grpclib.const.Handler(
1161
- self.VolumeCopyFiles,
1360
+ '/modal.client.ModalClient/VolumeRename': grpclib.const.Handler(
1361
+ self.VolumeRename,
1162
1362
  grpclib.const.Cardinality.UNARY_UNARY,
1163
- modal_proto.api_pb2.VolumeCopyFilesRequest,
1363
+ modal_proto.api_pb2.VolumeRenameRequest,
1164
1364
  google.protobuf.empty_pb2.Empty,
1165
1365
  ),
1166
1366
  '/modal.client.ModalClient/WorkspaceNameLookup': grpclib.const.Handler(
@@ -1175,17 +1375,41 @@ class ModalClientBase(abc.ABC):
1175
1375
  class ModalClientStub:
1176
1376
 
1177
1377
  def __init__(self, channel: grpclib.client.Channel) -> None:
1378
+ self.AppClientDisconnect = grpclib.client.UnaryUnaryMethod(
1379
+ channel,
1380
+ '/modal.client.ModalClient/AppClientDisconnect',
1381
+ modal_proto.api_pb2.AppClientDisconnectRequest,
1382
+ google.protobuf.empty_pb2.Empty,
1383
+ )
1178
1384
  self.AppCreate = grpclib.client.UnaryUnaryMethod(
1179
1385
  channel,
1180
1386
  '/modal.client.ModalClient/AppCreate',
1181
1387
  modal_proto.api_pb2.AppCreateRequest,
1182
1388
  modal_proto.api_pb2.AppCreateResponse,
1183
1389
  )
1184
- self.AppClientDisconnect = grpclib.client.UnaryUnaryMethod(
1390
+ self.AppDeploy = grpclib.client.UnaryUnaryMethod(
1185
1391
  channel,
1186
- '/modal.client.ModalClient/AppClientDisconnect',
1187
- modal_proto.api_pb2.AppClientDisconnectRequest,
1188
- google.protobuf.empty_pb2.Empty,
1392
+ '/modal.client.ModalClient/AppDeploy',
1393
+ modal_proto.api_pb2.AppDeployRequest,
1394
+ modal_proto.api_pb2.AppDeployResponse,
1395
+ )
1396
+ self.AppDeploymentHistory = grpclib.client.UnaryUnaryMethod(
1397
+ channel,
1398
+ '/modal.client.ModalClient/AppDeploymentHistory',
1399
+ modal_proto.api_pb2.AppDeploymentHistoryRequest,
1400
+ modal_proto.api_pb2.AppDeploymentHistoryResponse,
1401
+ )
1402
+ self.AppGetByDeploymentName = grpclib.client.UnaryUnaryMethod(
1403
+ channel,
1404
+ '/modal.client.ModalClient/AppGetByDeploymentName',
1405
+ modal_proto.api_pb2.AppGetByDeploymentNameRequest,
1406
+ modal_proto.api_pb2.AppGetByDeploymentNameResponse,
1407
+ )
1408
+ self.AppGetLayout = grpclib.client.UnaryUnaryMethod(
1409
+ channel,
1410
+ '/modal.client.ModalClient/AppGetLayout',
1411
+ modal_proto.api_pb2.AppGetLayoutRequest,
1412
+ modal_proto.api_pb2.AppGetLayoutResponse,
1189
1413
  )
1190
1414
  self.AppGetLogs = grpclib.client.UnaryStreamMethod(
1191
1415
  channel,
@@ -1193,47 +1417,53 @@ class ModalClientStub:
1193
1417
  modal_proto.api_pb2.AppGetLogsRequest,
1194
1418
  modal_proto.api_pb2.TaskLogsBatch,
1195
1419
  )
1196
- self.AppSetObjects = grpclib.client.UnaryUnaryMethod(
1197
- channel,
1198
- '/modal.client.ModalClient/AppSetObjects',
1199
- modal_proto.api_pb2.AppSetObjectsRequest,
1200
- google.protobuf.empty_pb2.Empty,
1201
- )
1202
1420
  self.AppGetObjects = grpclib.client.UnaryUnaryMethod(
1203
1421
  channel,
1204
1422
  '/modal.client.ModalClient/AppGetObjects',
1205
1423
  modal_proto.api_pb2.AppGetObjectsRequest,
1206
1424
  modal_proto.api_pb2.AppGetObjectsResponse,
1207
1425
  )
1426
+ self.AppGetOrCreate = grpclib.client.UnaryUnaryMethod(
1427
+ channel,
1428
+ '/modal.client.ModalClient/AppGetOrCreate',
1429
+ modal_proto.api_pb2.AppGetOrCreateRequest,
1430
+ modal_proto.api_pb2.AppGetOrCreateResponse,
1431
+ )
1432
+ self.AppHeartbeat = grpclib.client.UnaryUnaryMethod(
1433
+ channel,
1434
+ '/modal.client.ModalClient/AppHeartbeat',
1435
+ modal_proto.api_pb2.AppHeartbeatRequest,
1436
+ google.protobuf.empty_pb2.Empty,
1437
+ )
1208
1438
  self.AppList = grpclib.client.UnaryUnaryMethod(
1209
1439
  channel,
1210
1440
  '/modal.client.ModalClient/AppList',
1211
1441
  modal_proto.api_pb2.AppListRequest,
1212
1442
  modal_proto.api_pb2.AppListResponse,
1213
1443
  )
1214
- self.AppLookupObject = grpclib.client.UnaryUnaryMethod(
1444
+ self.AppLookup = grpclib.client.UnaryUnaryMethod(
1215
1445
  channel,
1216
- '/modal.client.ModalClient/AppLookupObject',
1217
- modal_proto.api_pb2.AppLookupObjectRequest,
1218
- modal_proto.api_pb2.AppLookupObjectResponse,
1446
+ '/modal.client.ModalClient/AppLookup',
1447
+ modal_proto.api_pb2.AppLookupRequest,
1448
+ modal_proto.api_pb2.AppLookupResponse,
1219
1449
  )
1220
- self.AppDeploy = grpclib.client.UnaryUnaryMethod(
1450
+ self.AppPublish = grpclib.client.UnaryUnaryMethod(
1221
1451
  channel,
1222
- '/modal.client.ModalClient/AppDeploy',
1223
- modal_proto.api_pb2.AppDeployRequest,
1224
- modal_proto.api_pb2.AppDeployResponse,
1452
+ '/modal.client.ModalClient/AppPublish',
1453
+ modal_proto.api_pb2.AppPublishRequest,
1454
+ modal_proto.api_pb2.AppPublishResponse,
1225
1455
  )
1226
- self.AppDeploySingleObject = grpclib.client.UnaryUnaryMethod(
1456
+ self.AppRollback = grpclib.client.UnaryUnaryMethod(
1227
1457
  channel,
1228
- '/modal.client.ModalClient/AppDeploySingleObject',
1229
- modal_proto.api_pb2.AppDeploySingleObjectRequest,
1230
- modal_proto.api_pb2.AppDeploySingleObjectResponse,
1458
+ '/modal.client.ModalClient/AppRollback',
1459
+ modal_proto.api_pb2.AppRollbackRequest,
1460
+ google.protobuf.empty_pb2.Empty,
1231
1461
  )
1232
- self.AppGetByDeploymentName = grpclib.client.UnaryUnaryMethod(
1462
+ self.AppSetObjects = grpclib.client.UnaryUnaryMethod(
1233
1463
  channel,
1234
- '/modal.client.ModalClient/AppGetByDeploymentName',
1235
- modal_proto.api_pb2.AppGetByDeploymentNameRequest,
1236
- modal_proto.api_pb2.AppGetByDeploymentNameResponse,
1464
+ '/modal.client.ModalClient/AppSetObjects',
1465
+ modal_proto.api_pb2.AppSetObjectsRequest,
1466
+ google.protobuf.empty_pb2.Empty,
1237
1467
  )
1238
1468
  self.AppStop = grpclib.client.UnaryUnaryMethod(
1239
1469
  channel,
@@ -1241,12 +1471,6 @@ class ModalClientStub:
1241
1471
  modal_proto.api_pb2.AppStopRequest,
1242
1472
  google.protobuf.empty_pb2.Empty,
1243
1473
  )
1244
- self.AppHeartbeat = grpclib.client.UnaryUnaryMethod(
1245
- channel,
1246
- '/modal.client.ModalClient/AppHeartbeat',
1247
- modal_proto.api_pb2.AppHeartbeatRequest,
1248
- google.protobuf.empty_pb2.Empty,
1249
- )
1250
1474
  self.BlobCreate = grpclib.client.UnaryUnaryMethod(
1251
1475
  channel,
1252
1476
  '/modal.client.ModalClient/BlobCreate',
@@ -1271,30 +1495,18 @@ class ModalClientStub:
1271
1495
  modal_proto.api_pb2.ClassGetRequest,
1272
1496
  modal_proto.api_pb2.ClassGetResponse,
1273
1497
  )
1274
- self.ClientCreate = grpclib.client.UnaryUnaryMethod(
1275
- channel,
1276
- '/modal.client.ModalClient/ClientCreate',
1277
- modal_proto.api_pb2.ClientCreateRequest,
1278
- modal_proto.api_pb2.ClientCreateResponse,
1279
- )
1280
1498
  self.ClientHello = grpclib.client.UnaryUnaryMethod(
1281
1499
  channel,
1282
1500
  '/modal.client.ModalClient/ClientHello',
1283
1501
  google.protobuf.empty_pb2.Empty,
1284
1502
  modal_proto.api_pb2.ClientHelloResponse,
1285
1503
  )
1286
- self.ClientHeartbeat = grpclib.client.UnaryUnaryMethod(
1504
+ self.ContainerCheckpoint = grpclib.client.UnaryUnaryMethod(
1287
1505
  channel,
1288
- '/modal.client.ModalClient/ClientHeartbeat',
1289
- modal_proto.api_pb2.ClientHeartbeatRequest,
1506
+ '/modal.client.ModalClient/ContainerCheckpoint',
1507
+ modal_proto.api_pb2.ContainerCheckpointRequest,
1290
1508
  google.protobuf.empty_pb2.Empty,
1291
1509
  )
1292
- self.ContainerHeartbeat = grpclib.client.UnaryUnaryMethod(
1293
- channel,
1294
- '/modal.client.ModalClient/ContainerHeartbeat',
1295
- modal_proto.api_pb2.ContainerHeartbeatRequest,
1296
- modal_proto.api_pb2.ContainerHeartbeatResponse,
1297
- )
1298
1510
  self.ContainerExec = grpclib.client.UnaryUnaryMethod(
1299
1511
  channel,
1300
1512
  '/modal.client.ModalClient/ContainerExec',
@@ -1307,18 +1519,54 @@ class ModalClientStub:
1307
1519
  modal_proto.api_pb2.ContainerExecGetOutputRequest,
1308
1520
  modal_proto.api_pb2.RuntimeOutputBatch,
1309
1521
  )
1310
- self.ContainerExecPutInput = grpclib.client.UnaryUnaryMethod(
1522
+ self.ContainerExecPutInput = grpclib.client.UnaryUnaryMethod(
1523
+ channel,
1524
+ '/modal.client.ModalClient/ContainerExecPutInput',
1525
+ modal_proto.api_pb2.ContainerExecPutInputRequest,
1526
+ google.protobuf.empty_pb2.Empty,
1527
+ )
1528
+ self.ContainerExecWait = grpclib.client.UnaryUnaryMethod(
1529
+ channel,
1530
+ '/modal.client.ModalClient/ContainerExecWait',
1531
+ modal_proto.api_pb2.ContainerExecWaitRequest,
1532
+ modal_proto.api_pb2.ContainerExecWaitResponse,
1533
+ )
1534
+ self.ContainerFilesystemExec = grpclib.client.UnaryUnaryMethod(
1535
+ channel,
1536
+ '/modal.client.ModalClient/ContainerFilesystemExec',
1537
+ modal_proto.api_pb2.ContainerFilesystemExecRequest,
1538
+ modal_proto.api_pb2.ContainerFilesystemExecResponse,
1539
+ )
1540
+ self.ContainerFilesystemExecGetOutput = grpclib.client.UnaryStreamMethod(
1541
+ channel,
1542
+ '/modal.client.ModalClient/ContainerFilesystemExecGetOutput',
1543
+ modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest,
1544
+ modal_proto.api_pb2.FilesystemRuntimeOutputBatch,
1545
+ )
1546
+ self.ContainerHeartbeat = grpclib.client.UnaryUnaryMethod(
1547
+ channel,
1548
+ '/modal.client.ModalClient/ContainerHeartbeat',
1549
+ modal_proto.api_pb2.ContainerHeartbeatRequest,
1550
+ modal_proto.api_pb2.ContainerHeartbeatResponse,
1551
+ )
1552
+ self.ContainerHello = grpclib.client.UnaryUnaryMethod(
1311
1553
  channel,
1312
- '/modal.client.ModalClient/ContainerExecPutInput',
1313
- modal_proto.api_pb2.ContainerExecPutInputRequest,
1554
+ '/modal.client.ModalClient/ContainerHello',
1555
+ google.protobuf.empty_pb2.Empty,
1314
1556
  google.protobuf.empty_pb2.Empty,
1315
1557
  )
1316
- self.ContainerCheckpoint = grpclib.client.UnaryUnaryMethod(
1558
+ self.ContainerLog = grpclib.client.UnaryUnaryMethod(
1317
1559
  channel,
1318
- '/modal.client.ModalClient/ContainerCheckpoint',
1319
- modal_proto.api_pb2.ContainerCheckpointRequest,
1560
+ '/modal.client.ModalClient/ContainerLog',
1561
+ modal_proto.api_pb2.ContainerLogRequest,
1320
1562
  google.protobuf.empty_pb2.Empty,
1321
1563
  )
1564
+ self.ContainerStop = grpclib.client.UnaryUnaryMethod(
1565
+ channel,
1566
+ '/modal.client.ModalClient/ContainerStop',
1567
+ modal_proto.api_pb2.ContainerStopRequest,
1568
+ modal_proto.api_pb2.ContainerStopResponse,
1569
+ )
1322
1570
  self.DictClear = grpclib.client.UnaryUnaryMethod(
1323
1571
  channel,
1324
1572
  '/modal.client.ModalClient/DictClear',
@@ -1337,12 +1585,6 @@ class ModalClientStub:
1337
1585
  modal_proto.api_pb2.DictContentsRequest,
1338
1586
  modal_proto.api_pb2.DictEntry,
1339
1587
  )
1340
- self.DictCreate = grpclib.client.UnaryUnaryMethod(
1341
- channel,
1342
- '/modal.client.ModalClient/DictCreate',
1343
- modal_proto.api_pb2.DictCreateRequest,
1344
- modal_proto.api_pb2.DictCreateResponse,
1345
- )
1346
1588
  self.DictDelete = grpclib.client.UnaryUnaryMethod(
1347
1589
  channel,
1348
1590
  '/modal.client.ModalClient/DictDelete',
@@ -1391,6 +1633,12 @@ class ModalClientStub:
1391
1633
  modal_proto.api_pb2.DictUpdateRequest,
1392
1634
  modal_proto.api_pb2.DictUpdateResponse,
1393
1635
  )
1636
+ self.DomainCertificateVerify = grpclib.client.UnaryUnaryMethod(
1637
+ channel,
1638
+ '/modal.client.ModalClient/DomainCertificateVerify',
1639
+ modal_proto.api_pb2.DomainCertificateVerifyRequest,
1640
+ modal_proto.api_pb2.DomainCertificateVerifyResponse,
1641
+ )
1394
1642
  self.DomainCreate = grpclib.client.UnaryUnaryMethod(
1395
1643
  channel,
1396
1644
  '/modal.client.ModalClient/DomainCreate',
@@ -1403,42 +1651,78 @@ class ModalClientStub:
1403
1651
  modal_proto.api_pb2.DomainListRequest,
1404
1652
  modal_proto.api_pb2.DomainListResponse,
1405
1653
  )
1406
- self.DomainCertificateVerify = grpclib.client.UnaryUnaryMethod(
1407
- channel,
1408
- '/modal.client.ModalClient/DomainCertificateVerify',
1409
- modal_proto.api_pb2.DomainCertificateVerifyRequest,
1410
- modal_proto.api_pb2.DomainCertificateVerifyResponse,
1411
- )
1412
1654
  self.EnvironmentCreate = grpclib.client.UnaryUnaryMethod(
1413
1655
  channel,
1414
1656
  '/modal.client.ModalClient/EnvironmentCreate',
1415
1657
  modal_proto.api_pb2.EnvironmentCreateRequest,
1416
1658
  google.protobuf.empty_pb2.Empty,
1417
1659
  )
1418
- self.EnvironmentList = grpclib.client.UnaryUnaryMethod(
1419
- channel,
1420
- '/modal.client.ModalClient/EnvironmentList',
1421
- google.protobuf.empty_pb2.Empty,
1422
- modal_proto.api_pb2.EnvironmentListResponse,
1423
- )
1424
1660
  self.EnvironmentDelete = grpclib.client.UnaryUnaryMethod(
1425
1661
  channel,
1426
1662
  '/modal.client.ModalClient/EnvironmentDelete',
1427
1663
  modal_proto.api_pb2.EnvironmentDeleteRequest,
1428
1664
  google.protobuf.empty_pb2.Empty,
1429
1665
  )
1666
+ self.EnvironmentGetOrCreate = grpclib.client.UnaryUnaryMethod(
1667
+ channel,
1668
+ '/modal.client.ModalClient/EnvironmentGetOrCreate',
1669
+ modal_proto.api_pb2.EnvironmentGetOrCreateRequest,
1670
+ modal_proto.api_pb2.EnvironmentGetOrCreateResponse,
1671
+ )
1672
+ self.EnvironmentList = grpclib.client.UnaryUnaryMethod(
1673
+ channel,
1674
+ '/modal.client.ModalClient/EnvironmentList',
1675
+ google.protobuf.empty_pb2.Empty,
1676
+ modal_proto.api_pb2.EnvironmentListResponse,
1677
+ )
1430
1678
  self.EnvironmentUpdate = grpclib.client.UnaryUnaryMethod(
1431
1679
  channel,
1432
1680
  '/modal.client.ModalClient/EnvironmentUpdate',
1433
1681
  modal_proto.api_pb2.EnvironmentUpdateRequest,
1434
1682
  modal_proto.api_pb2.EnvironmentListItem,
1435
1683
  )
1684
+ self.FunctionAsyncInvoke = grpclib.client.UnaryUnaryMethod(
1685
+ channel,
1686
+ '/modal.client.ModalClient/FunctionAsyncInvoke',
1687
+ modal_proto.api_pb2.FunctionAsyncInvokeRequest,
1688
+ modal_proto.api_pb2.FunctionAsyncInvokeResponse,
1689
+ )
1436
1690
  self.FunctionBindParams = grpclib.client.UnaryUnaryMethod(
1437
1691
  channel,
1438
1692
  '/modal.client.ModalClient/FunctionBindParams',
1439
1693
  modal_proto.api_pb2.FunctionBindParamsRequest,
1440
1694
  modal_proto.api_pb2.FunctionBindParamsResponse,
1441
1695
  )
1696
+ self.FunctionCallCancel = grpclib.client.UnaryUnaryMethod(
1697
+ channel,
1698
+ '/modal.client.ModalClient/FunctionCallCancel',
1699
+ modal_proto.api_pb2.FunctionCallCancelRequest,
1700
+ google.protobuf.empty_pb2.Empty,
1701
+ )
1702
+ self.FunctionCallGetDataIn = grpclib.client.UnaryStreamMethod(
1703
+ channel,
1704
+ '/modal.client.ModalClient/FunctionCallGetDataIn',
1705
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
1706
+ modal_proto.api_pb2.DataChunk,
1707
+ )
1708
+ self.FunctionCallGetDataOut = grpclib.client.UnaryStreamMethod(
1709
+ channel,
1710
+ '/modal.client.ModalClient/FunctionCallGetDataOut',
1711
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
1712
+ modal_proto.api_pb2.DataChunk,
1713
+ )
1714
+ self.FunctionCallList = grpclib.client.UnaryUnaryMethod(
1715
+ channel,
1716
+ '/modal.client.ModalClient/FunctionCallList',
1717
+ modal_proto.api_pb2.FunctionCallListRequest,
1718
+ modal_proto.api_pb2.FunctionCallListResponse,
1719
+ )
1720
+ self.FunctionCallPutDataOut = grpclib.client.UnaryUnaryMethod(
1721
+ channel,
1722
+ '/modal.client.ModalClient/FunctionCallPutDataOut',
1723
+ modal_proto.api_pb2.FunctionCallPutDataRequest,
1724
+ google.protobuf.empty_pb2.Empty,
1725
+ )
1442
1726
  self.FunctionCreate = grpclib.client.UnaryUnaryMethod(
1443
1727
  channel,
1444
1728
  '/modal.client.ModalClient/FunctionCreate',
@@ -1463,6 +1747,12 @@ class ModalClientStub:
1463
1747
  modal_proto.api_pb2.FunctionGetCurrentStatsRequest,
1464
1748
  modal_proto.api_pb2.FunctionStats,
1465
1749
  )
1750
+ self.FunctionGetDynamicConcurrency = grpclib.client.UnaryUnaryMethod(
1751
+ channel,
1752
+ '/modal.client.ModalClient/FunctionGetDynamicConcurrency',
1753
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest,
1754
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse,
1755
+ )
1466
1756
  self.FunctionGetInputs = grpclib.client.UnaryUnaryMethod(
1467
1757
  channel,
1468
1758
  '/modal.client.ModalClient/FunctionGetInputs',
@@ -1505,47 +1795,29 @@ class ModalClientStub:
1505
1795
  modal_proto.api_pb2.FunctionPutOutputsRequest,
1506
1796
  google.protobuf.empty_pb2.Empty,
1507
1797
  )
1508
- self.FunctionUpdateSchedulingParams = grpclib.client.UnaryUnaryMethod(
1798
+ self.FunctionRetryInputs = grpclib.client.UnaryUnaryMethod(
1509
1799
  channel,
1510
- '/modal.client.ModalClient/FunctionUpdateSchedulingParams',
1511
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
1512
- modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
1800
+ '/modal.client.ModalClient/FunctionRetryInputs',
1801
+ modal_proto.api_pb2.FunctionRetryInputsRequest,
1802
+ modal_proto.api_pb2.FunctionRetryInputsResponse,
1513
1803
  )
1514
- self.FunctionCallCancel = grpclib.client.UnaryUnaryMethod(
1804
+ self.FunctionStartPtyShell = grpclib.client.UnaryUnaryMethod(
1515
1805
  channel,
1516
- '/modal.client.ModalClient/FunctionCallCancel',
1517
- modal_proto.api_pb2.FunctionCallCancelRequest,
1806
+ '/modal.client.ModalClient/FunctionStartPtyShell',
1807
+ google.protobuf.empty_pb2.Empty,
1518
1808
  google.protobuf.empty_pb2.Empty,
1519
1809
  )
1520
- self.FunctionCallList = grpclib.client.UnaryUnaryMethod(
1521
- channel,
1522
- '/modal.client.ModalClient/FunctionCallList',
1523
- modal_proto.api_pb2.FunctionCallListRequest,
1524
- modal_proto.api_pb2.FunctionCallListResponse,
1525
- )
1526
- self.FunctionCallGetDataIn = grpclib.client.UnaryStreamMethod(
1527
- channel,
1528
- '/modal.client.ModalClient/FunctionCallGetDataIn',
1529
- modal_proto.api_pb2.FunctionCallGetDataRequest,
1530
- modal_proto.api_pb2.DataChunk,
1531
- )
1532
- self.FunctionCallGetDataOut = grpclib.client.UnaryStreamMethod(
1533
- channel,
1534
- '/modal.client.ModalClient/FunctionCallGetDataOut',
1535
- modal_proto.api_pb2.FunctionCallGetDataRequest,
1536
- modal_proto.api_pb2.DataChunk,
1537
- )
1538
- self.FunctionCallPutDataOut = grpclib.client.UnaryUnaryMethod(
1810
+ self.FunctionUpdateSchedulingParams = grpclib.client.UnaryUnaryMethod(
1539
1811
  channel,
1540
- '/modal.client.ModalClient/FunctionCallPutDataOut',
1541
- modal_proto.api_pb2.FunctionCallPutDataRequest,
1542
- google.protobuf.empty_pb2.Empty,
1812
+ '/modal.client.ModalClient/FunctionUpdateSchedulingParams',
1813
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
1814
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
1543
1815
  )
1544
- self.FunctionStartPtyShell = grpclib.client.UnaryUnaryMethod(
1816
+ self.ImageFromId = grpclib.client.UnaryUnaryMethod(
1545
1817
  channel,
1546
- '/modal.client.ModalClient/FunctionStartPtyShell',
1547
- google.protobuf.empty_pb2.Empty,
1548
- google.protobuf.empty_pb2.Empty,
1818
+ '/modal.client.ModalClient/ImageFromId',
1819
+ modal_proto.api_pb2.ImageFromIdRequest,
1820
+ modal_proto.api_pb2.ImageFromIdResponse,
1549
1821
  )
1550
1822
  self.ImageGetOrCreate = grpclib.client.UnaryUnaryMethod(
1551
1823
  channel,
@@ -1559,23 +1831,35 @@ class ModalClientStub:
1559
1831
  modal_proto.api_pb2.ImageJoinStreamingRequest,
1560
1832
  modal_proto.api_pb2.ImageJoinStreamingResponse,
1561
1833
  )
1834
+ self.MountGetOrCreate = grpclib.client.UnaryUnaryMethod(
1835
+ channel,
1836
+ '/modal.client.ModalClient/MountGetOrCreate',
1837
+ modal_proto.api_pb2.MountGetOrCreateRequest,
1838
+ modal_proto.api_pb2.MountGetOrCreateResponse,
1839
+ )
1562
1840
  self.MountPutFile = grpclib.client.UnaryUnaryMethod(
1563
1841
  channel,
1564
1842
  '/modal.client.ModalClient/MountPutFile',
1565
1843
  modal_proto.api_pb2.MountPutFileRequest,
1566
1844
  modal_proto.api_pb2.MountPutFileResponse,
1567
1845
  )
1568
- self.MountBuild = grpclib.client.UnaryUnaryMethod(
1846
+ self.ProxyCreate = grpclib.client.UnaryUnaryMethod(
1569
1847
  channel,
1570
- '/modal.client.ModalClient/MountBuild',
1571
- modal_proto.api_pb2.MountBuildRequest,
1572
- modal_proto.api_pb2.MountBuildResponse,
1848
+ '/modal.client.ModalClient/ProxyCreate',
1849
+ modal_proto.api_pb2.ProxyCreateRequest,
1850
+ modal_proto.api_pb2.ProxyCreateResponse,
1573
1851
  )
1574
- self.MountGetOrCreate = grpclib.client.UnaryUnaryMethod(
1852
+ self.ProxyDelete = grpclib.client.UnaryUnaryMethod(
1575
1853
  channel,
1576
- '/modal.client.ModalClient/MountGetOrCreate',
1577
- modal_proto.api_pb2.MountGetOrCreateRequest,
1578
- modal_proto.api_pb2.MountGetOrCreateResponse,
1854
+ '/modal.client.ModalClient/ProxyDelete',
1855
+ modal_proto.api_pb2.ProxyDeleteRequest,
1856
+ google.protobuf.empty_pb2.Empty,
1857
+ )
1858
+ self.ProxyGet = grpclib.client.UnaryUnaryMethod(
1859
+ channel,
1860
+ '/modal.client.ModalClient/ProxyGet',
1861
+ modal_proto.api_pb2.ProxyGetRequest,
1862
+ modal_proto.api_pb2.ProxyGetResponse,
1579
1863
  )
1580
1864
  self.ProxyGetOrCreate = grpclib.client.UnaryUnaryMethod(
1581
1865
  channel,
@@ -1583,11 +1867,17 @@ class ModalClientStub:
1583
1867
  modal_proto.api_pb2.ProxyGetOrCreateRequest,
1584
1868
  modal_proto.api_pb2.ProxyGetOrCreateResponse,
1585
1869
  )
1586
- self.QueueCreate = grpclib.client.UnaryUnaryMethod(
1870
+ self.ProxyList = grpclib.client.UnaryUnaryMethod(
1587
1871
  channel,
1588
- '/modal.client.ModalClient/QueueCreate',
1589
- modal_proto.api_pb2.QueueCreateRequest,
1590
- modal_proto.api_pb2.QueueCreateResponse,
1872
+ '/modal.client.ModalClient/ProxyList',
1873
+ google.protobuf.empty_pb2.Empty,
1874
+ modal_proto.api_pb2.ProxyListResponse,
1875
+ )
1876
+ self.QueueClear = grpclib.client.UnaryUnaryMethod(
1877
+ channel,
1878
+ '/modal.client.ModalClient/QueueClear',
1879
+ modal_proto.api_pb2.QueueClearRequest,
1880
+ google.protobuf.empty_pb2.Empty,
1591
1881
  )
1592
1882
  self.QueueDelete = grpclib.client.UnaryUnaryMethod(
1593
1883
  channel,
@@ -1595,65 +1885,71 @@ class ModalClientStub:
1595
1885
  modal_proto.api_pb2.QueueDeleteRequest,
1596
1886
  google.protobuf.empty_pb2.Empty,
1597
1887
  )
1598
- self.QueueGetOrCreate = grpclib.client.UnaryUnaryMethod(
1599
- channel,
1600
- '/modal.client.ModalClient/QueueGetOrCreate',
1601
- modal_proto.api_pb2.QueueGetOrCreateRequest,
1602
- modal_proto.api_pb2.QueueGetOrCreateResponse,
1603
- )
1604
1888
  self.QueueGet = grpclib.client.UnaryUnaryMethod(
1605
1889
  channel,
1606
1890
  '/modal.client.ModalClient/QueueGet',
1607
1891
  modal_proto.api_pb2.QueueGetRequest,
1608
1892
  modal_proto.api_pb2.QueueGetResponse,
1609
1893
  )
1894
+ self.QueueGetOrCreate = grpclib.client.UnaryUnaryMethod(
1895
+ channel,
1896
+ '/modal.client.ModalClient/QueueGetOrCreate',
1897
+ modal_proto.api_pb2.QueueGetOrCreateRequest,
1898
+ modal_proto.api_pb2.QueueGetOrCreateResponse,
1899
+ )
1610
1900
  self.QueueHeartbeat = grpclib.client.UnaryUnaryMethod(
1611
1901
  channel,
1612
1902
  '/modal.client.ModalClient/QueueHeartbeat',
1613
1903
  modal_proto.api_pb2.QueueHeartbeatRequest,
1614
1904
  google.protobuf.empty_pb2.Empty,
1615
1905
  )
1616
- self.QueuePut = grpclib.client.UnaryUnaryMethod(
1617
- channel,
1618
- '/modal.client.ModalClient/QueuePut',
1619
- modal_proto.api_pb2.QueuePutRequest,
1620
- google.protobuf.empty_pb2.Empty,
1621
- )
1622
1906
  self.QueueLen = grpclib.client.UnaryUnaryMethod(
1623
1907
  channel,
1624
1908
  '/modal.client.ModalClient/QueueLen',
1625
1909
  modal_proto.api_pb2.QueueLenRequest,
1626
1910
  modal_proto.api_pb2.QueueLenResponse,
1627
1911
  )
1912
+ self.QueueList = grpclib.client.UnaryUnaryMethod(
1913
+ channel,
1914
+ '/modal.client.ModalClient/QueueList',
1915
+ modal_proto.api_pb2.QueueListRequest,
1916
+ modal_proto.api_pb2.QueueListResponse,
1917
+ )
1628
1918
  self.QueueNextItems = grpclib.client.UnaryUnaryMethod(
1629
1919
  channel,
1630
1920
  '/modal.client.ModalClient/QueueNextItems',
1631
1921
  modal_proto.api_pb2.QueueNextItemsRequest,
1632
1922
  modal_proto.api_pb2.QueueNextItemsResponse,
1633
1923
  )
1924
+ self.QueuePut = grpclib.client.UnaryUnaryMethod(
1925
+ channel,
1926
+ '/modal.client.ModalClient/QueuePut',
1927
+ modal_proto.api_pb2.QueuePutRequest,
1928
+ google.protobuf.empty_pb2.Empty,
1929
+ )
1634
1930
  self.SandboxCreate = grpclib.client.UnaryUnaryMethod(
1635
1931
  channel,
1636
1932
  '/modal.client.ModalClient/SandboxCreate',
1637
1933
  modal_proto.api_pb2.SandboxCreateRequest,
1638
1934
  modal_proto.api_pb2.SandboxCreateResponse,
1639
1935
  )
1640
- self.SandboxGetTaskId = grpclib.client.UnaryUnaryMethod(
1641
- channel,
1642
- '/modal.client.ModalClient/SandboxGetTaskId',
1643
- modal_proto.api_pb2.SandboxGetTaskIdRequest,
1644
- modal_proto.api_pb2.SandboxGetTaskIdResponse,
1645
- )
1646
1936
  self.SandboxGetLogs = grpclib.client.UnaryStreamMethod(
1647
1937
  channel,
1648
1938
  '/modal.client.ModalClient/SandboxGetLogs',
1649
1939
  modal_proto.api_pb2.SandboxGetLogsRequest,
1650
1940
  modal_proto.api_pb2.TaskLogsBatch,
1651
1941
  )
1652
- self.SandboxWait = grpclib.client.UnaryUnaryMethod(
1942
+ self.SandboxGetTaskId = grpclib.client.UnaryUnaryMethod(
1653
1943
  channel,
1654
- '/modal.client.ModalClient/SandboxWait',
1655
- modal_proto.api_pb2.SandboxWaitRequest,
1656
- modal_proto.api_pb2.SandboxWaitResponse,
1944
+ '/modal.client.ModalClient/SandboxGetTaskId',
1945
+ modal_proto.api_pb2.SandboxGetTaskIdRequest,
1946
+ modal_proto.api_pb2.SandboxGetTaskIdResponse,
1947
+ )
1948
+ self.SandboxGetTunnels = grpclib.client.UnaryUnaryMethod(
1949
+ channel,
1950
+ '/modal.client.ModalClient/SandboxGetTunnels',
1951
+ modal_proto.api_pb2.SandboxGetTunnelsRequest,
1952
+ modal_proto.api_pb2.SandboxGetTunnelsResponse,
1657
1953
  )
1658
1954
  self.SandboxList = grpclib.client.UnaryUnaryMethod(
1659
1955
  channel,
@@ -1661,11 +1957,11 @@ class ModalClientStub:
1661
1957
  modal_proto.api_pb2.SandboxListRequest,
1662
1958
  modal_proto.api_pb2.SandboxListResponse,
1663
1959
  )
1664
- self.SandboxTerminate = grpclib.client.UnaryUnaryMethod(
1960
+ self.SandboxSnapshotFs = grpclib.client.UnaryUnaryMethod(
1665
1961
  channel,
1666
- '/modal.client.ModalClient/SandboxTerminate',
1667
- modal_proto.api_pb2.SandboxTerminateRequest,
1668
- modal_proto.api_pb2.SandboxTerminateResponse,
1962
+ '/modal.client.ModalClient/SandboxSnapshotFs',
1963
+ modal_proto.api_pb2.SandboxSnapshotFsRequest,
1964
+ modal_proto.api_pb2.SandboxSnapshotFsResponse,
1669
1965
  )
1670
1966
  self.SandboxStdinWrite = grpclib.client.UnaryUnaryMethod(
1671
1967
  channel,
@@ -1673,11 +1969,29 @@ class ModalClientStub:
1673
1969
  modal_proto.api_pb2.SandboxStdinWriteRequest,
1674
1970
  modal_proto.api_pb2.SandboxStdinWriteResponse,
1675
1971
  )
1676
- self.SecretCreate = grpclib.client.UnaryUnaryMethod(
1972
+ self.SandboxTagsSet = grpclib.client.UnaryUnaryMethod(
1973
+ channel,
1974
+ '/modal.client.ModalClient/SandboxTagsSet',
1975
+ modal_proto.api_pb2.SandboxTagsSetRequest,
1976
+ google.protobuf.empty_pb2.Empty,
1977
+ )
1978
+ self.SandboxTerminate = grpclib.client.UnaryUnaryMethod(
1979
+ channel,
1980
+ '/modal.client.ModalClient/SandboxTerminate',
1981
+ modal_proto.api_pb2.SandboxTerminateRequest,
1982
+ modal_proto.api_pb2.SandboxTerminateResponse,
1983
+ )
1984
+ self.SandboxWait = grpclib.client.UnaryUnaryMethod(
1985
+ channel,
1986
+ '/modal.client.ModalClient/SandboxWait',
1987
+ modal_proto.api_pb2.SandboxWaitRequest,
1988
+ modal_proto.api_pb2.SandboxWaitResponse,
1989
+ )
1990
+ self.SecretDelete = grpclib.client.UnaryUnaryMethod(
1677
1991
  channel,
1678
- '/modal.client.ModalClient/SecretCreate',
1679
- modal_proto.api_pb2.SecretCreateRequest,
1680
- modal_proto.api_pb2.SecretCreateResponse,
1992
+ '/modal.client.ModalClient/SecretDelete',
1993
+ modal_proto.api_pb2.SecretDeleteRequest,
1994
+ google.protobuf.empty_pb2.Empty,
1681
1995
  )
1682
1996
  self.SecretGetOrCreate = grpclib.client.UnaryUnaryMethod(
1683
1997
  channel,
@@ -1691,18 +2005,24 @@ class ModalClientStub:
1691
2005
  modal_proto.api_pb2.SecretListRequest,
1692
2006
  modal_proto.api_pb2.SecretListResponse,
1693
2007
  )
2008
+ self.SharedVolumeDelete = grpclib.client.UnaryUnaryMethod(
2009
+ channel,
2010
+ '/modal.client.ModalClient/SharedVolumeDelete',
2011
+ modal_proto.api_pb2.SharedVolumeDeleteRequest,
2012
+ google.protobuf.empty_pb2.Empty,
2013
+ )
2014
+ self.SharedVolumeGetFile = grpclib.client.UnaryUnaryMethod(
2015
+ channel,
2016
+ '/modal.client.ModalClient/SharedVolumeGetFile',
2017
+ modal_proto.api_pb2.SharedVolumeGetFileRequest,
2018
+ modal_proto.api_pb2.SharedVolumeGetFileResponse,
2019
+ )
1694
2020
  self.SharedVolumeGetOrCreate = grpclib.client.UnaryUnaryMethod(
1695
2021
  channel,
1696
2022
  '/modal.client.ModalClient/SharedVolumeGetOrCreate',
1697
2023
  modal_proto.api_pb2.SharedVolumeGetOrCreateRequest,
1698
2024
  modal_proto.api_pb2.SharedVolumeGetOrCreateResponse,
1699
2025
  )
1700
- self.SharedVolumeCreate = grpclib.client.UnaryUnaryMethod(
1701
- channel,
1702
- '/modal.client.ModalClient/SharedVolumeCreate',
1703
- modal_proto.api_pb2.SharedVolumeCreateRequest,
1704
- modal_proto.api_pb2.SharedVolumeCreateResponse,
1705
- )
1706
2026
  self.SharedVolumeHeartbeat = grpclib.client.UnaryUnaryMethod(
1707
2027
  channel,
1708
2028
  '/modal.client.ModalClient/SharedVolumeHeartbeat',
@@ -1733,23 +2053,23 @@ class ModalClientStub:
1733
2053
  modal_proto.api_pb2.SharedVolumePutFileRequest,
1734
2054
  modal_proto.api_pb2.SharedVolumePutFileResponse,
1735
2055
  )
1736
- self.SharedVolumeGetFile = grpclib.client.UnaryUnaryMethod(
1737
- channel,
1738
- '/modal.client.ModalClient/SharedVolumeGetFile',
1739
- modal_proto.api_pb2.SharedVolumeGetFileRequest,
1740
- modal_proto.api_pb2.SharedVolumeGetFileResponse,
1741
- )
1742
2056
  self.SharedVolumeRemoveFile = grpclib.client.UnaryUnaryMethod(
1743
2057
  channel,
1744
2058
  '/modal.client.ModalClient/SharedVolumeRemoveFile',
1745
2059
  modal_proto.api_pb2.SharedVolumeRemoveFileRequest,
1746
2060
  google.protobuf.empty_pb2.Empty,
1747
2061
  )
1748
- self.TaskResult = grpclib.client.UnaryUnaryMethod(
2062
+ self.TaskClusterHello = grpclib.client.UnaryUnaryMethod(
1749
2063
  channel,
1750
- '/modal.client.ModalClient/TaskResult',
1751
- modal_proto.api_pb2.TaskResultRequest,
2064
+ '/modal.client.ModalClient/TaskClusterHello',
2065
+ modal_proto.api_pb2.TaskClusterHelloRequest,
2066
+ modal_proto.api_pb2.TaskClusterHelloResponse,
2067
+ )
2068
+ self.TaskCurrentInputs = grpclib.client.UnaryUnaryMethod(
2069
+ channel,
2070
+ '/modal.client.ModalClient/TaskCurrentInputs',
1752
2071
  google.protobuf.empty_pb2.Empty,
2072
+ modal_proto.api_pb2.TaskCurrentInputsResponse,
1753
2073
  )
1754
2074
  self.TaskList = grpclib.client.UnaryUnaryMethod(
1755
2075
  channel,
@@ -1757,11 +2077,11 @@ class ModalClientStub:
1757
2077
  modal_proto.api_pb2.TaskListRequest,
1758
2078
  modal_proto.api_pb2.TaskListResponse,
1759
2079
  )
1760
- self.TaskCurrentInputs = grpclib.client.UnaryUnaryMethod(
2080
+ self.TaskResult = grpclib.client.UnaryUnaryMethod(
1761
2081
  channel,
1762
- '/modal.client.ModalClient/TaskCurrentInputs',
2082
+ '/modal.client.ModalClient/TaskResult',
2083
+ modal_proto.api_pb2.TaskResultRequest,
1763
2084
  google.protobuf.empty_pb2.Empty,
1764
- modal_proto.api_pb2.TaskCurrentInputsResponse,
1765
2085
  )
1766
2086
  self.TokenFlowCreate = grpclib.client.UnaryUnaryMethod(
1767
2087
  channel,
@@ -1787,30 +2107,18 @@ class ModalClientStub:
1787
2107
  modal_proto.api_pb2.TunnelStopRequest,
1788
2108
  modal_proto.api_pb2.TunnelStopResponse,
1789
2109
  )
1790
- self.VolumeGetOrCreate = grpclib.client.UnaryUnaryMethod(
1791
- channel,
1792
- '/modal.client.ModalClient/VolumeGetOrCreate',
1793
- modal_proto.api_pb2.VolumeGetOrCreateRequest,
1794
- modal_proto.api_pb2.VolumeGetOrCreateResponse,
1795
- )
1796
- self.VolumeCreate = grpclib.client.UnaryUnaryMethod(
1797
- channel,
1798
- '/modal.client.ModalClient/VolumeCreate',
1799
- modal_proto.api_pb2.VolumeCreateRequest,
1800
- modal_proto.api_pb2.VolumeCreateResponse,
1801
- )
1802
- self.VolumeHeartbeat = grpclib.client.UnaryUnaryMethod(
1803
- channel,
1804
- '/modal.client.ModalClient/VolumeHeartbeat',
1805
- modal_proto.api_pb2.VolumeHeartbeatRequest,
1806
- google.protobuf.empty_pb2.Empty,
1807
- )
1808
2110
  self.VolumeCommit = grpclib.client.UnaryUnaryMethod(
1809
2111
  channel,
1810
2112
  '/modal.client.ModalClient/VolumeCommit',
1811
2113
  modal_proto.api_pb2.VolumeCommitRequest,
1812
2114
  modal_proto.api_pb2.VolumeCommitResponse,
1813
2115
  )
2116
+ self.VolumeCopyFiles = grpclib.client.UnaryUnaryMethod(
2117
+ channel,
2118
+ '/modal.client.ModalClient/VolumeCopyFiles',
2119
+ modal_proto.api_pb2.VolumeCopyFilesRequest,
2120
+ google.protobuf.empty_pb2.Empty,
2121
+ )
1814
2122
  self.VolumeDelete = grpclib.client.UnaryUnaryMethod(
1815
2123
  channel,
1816
2124
  '/modal.client.ModalClient/VolumeDelete',
@@ -1823,6 +2131,18 @@ class ModalClientStub:
1823
2131
  modal_proto.api_pb2.VolumeGetFileRequest,
1824
2132
  modal_proto.api_pb2.VolumeGetFileResponse,
1825
2133
  )
2134
+ self.VolumeGetOrCreate = grpclib.client.UnaryUnaryMethod(
2135
+ channel,
2136
+ '/modal.client.ModalClient/VolumeGetOrCreate',
2137
+ modal_proto.api_pb2.VolumeGetOrCreateRequest,
2138
+ modal_proto.api_pb2.VolumeGetOrCreateResponse,
2139
+ )
2140
+ self.VolumeHeartbeat = grpclib.client.UnaryUnaryMethod(
2141
+ channel,
2142
+ '/modal.client.ModalClient/VolumeHeartbeat',
2143
+ modal_proto.api_pb2.VolumeHeartbeatRequest,
2144
+ google.protobuf.empty_pb2.Empty,
2145
+ )
1826
2146
  self.VolumeList = grpclib.client.UnaryUnaryMethod(
1827
2147
  channel,
1828
2148
  '/modal.client.ModalClient/VolumeList',
@@ -1853,10 +2173,10 @@ class ModalClientStub:
1853
2173
  modal_proto.api_pb2.VolumeRemoveFileRequest,
1854
2174
  google.protobuf.empty_pb2.Empty,
1855
2175
  )
1856
- self.VolumeCopyFiles = grpclib.client.UnaryUnaryMethod(
2176
+ self.VolumeRename = grpclib.client.UnaryUnaryMethod(
1857
2177
  channel,
1858
- '/modal.client.ModalClient/VolumeCopyFiles',
1859
- modal_proto.api_pb2.VolumeCopyFilesRequest,
2178
+ '/modal.client.ModalClient/VolumeRename',
2179
+ modal_proto.api_pb2.VolumeRenameRequest,
1860
2180
  google.protobuf.empty_pb2.Empty,
1861
2181
  )
1862
2182
  self.WorkspaceNameLookup = grpclib.client.UnaryUnaryMethod(