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
@@ -0,0 +1,1416 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import abc
6
+ import collections.abc
7
+ import google.protobuf.empty_pb2
8
+ import grpc
9
+ import modal_proto.api_pb2
10
+
11
+ class ModalClientStub:
12
+ def __init__(self, channel: grpc.Channel) -> None: ...
13
+ AppClientDisconnect: grpc.UnaryUnaryMultiCallable[
14
+ modal_proto.api_pb2.AppClientDisconnectRequest,
15
+ google.protobuf.empty_pb2.Empty,
16
+ ]
17
+ """Apps"""
18
+ AppCreate: grpc.UnaryUnaryMultiCallable[
19
+ modal_proto.api_pb2.AppCreateRequest,
20
+ modal_proto.api_pb2.AppCreateResponse,
21
+ ]
22
+ AppDeploy: grpc.UnaryUnaryMultiCallable[
23
+ modal_proto.api_pb2.AppDeployRequest,
24
+ modal_proto.api_pb2.AppDeployResponse,
25
+ ]
26
+ AppDeploymentHistory: grpc.UnaryUnaryMultiCallable[
27
+ modal_proto.api_pb2.AppDeploymentHistoryRequest,
28
+ modal_proto.api_pb2.AppDeploymentHistoryResponse,
29
+ ]
30
+ AppGetByDeploymentName: grpc.UnaryUnaryMultiCallable[
31
+ modal_proto.api_pb2.AppGetByDeploymentNameRequest,
32
+ modal_proto.api_pb2.AppGetByDeploymentNameResponse,
33
+ ]
34
+ AppGetLayout: grpc.UnaryUnaryMultiCallable[
35
+ modal_proto.api_pb2.AppGetLayoutRequest,
36
+ modal_proto.api_pb2.AppGetLayoutResponse,
37
+ ]
38
+ AppGetLogs: grpc.UnaryStreamMultiCallable[
39
+ modal_proto.api_pb2.AppGetLogsRequest,
40
+ modal_proto.api_pb2.TaskLogsBatch,
41
+ ]
42
+ AppGetObjects: grpc.UnaryUnaryMultiCallable[
43
+ modal_proto.api_pb2.AppGetObjectsRequest,
44
+ modal_proto.api_pb2.AppGetObjectsResponse,
45
+ ]
46
+ AppGetOrCreate: grpc.UnaryUnaryMultiCallable[
47
+ modal_proto.api_pb2.AppGetOrCreateRequest,
48
+ modal_proto.api_pb2.AppGetOrCreateResponse,
49
+ ]
50
+ AppHeartbeat: grpc.UnaryUnaryMultiCallable[
51
+ modal_proto.api_pb2.AppHeartbeatRequest,
52
+ google.protobuf.empty_pb2.Empty,
53
+ ]
54
+ AppList: grpc.UnaryUnaryMultiCallable[
55
+ modal_proto.api_pb2.AppListRequest,
56
+ modal_proto.api_pb2.AppListResponse,
57
+ ]
58
+ AppLookup: grpc.UnaryUnaryMultiCallable[
59
+ modal_proto.api_pb2.AppLookupRequest,
60
+ modal_proto.api_pb2.AppLookupResponse,
61
+ ]
62
+ AppPublish: grpc.UnaryUnaryMultiCallable[
63
+ modal_proto.api_pb2.AppPublishRequest,
64
+ modal_proto.api_pb2.AppPublishResponse,
65
+ ]
66
+ AppRollback: grpc.UnaryUnaryMultiCallable[
67
+ modal_proto.api_pb2.AppRollbackRequest,
68
+ google.protobuf.empty_pb2.Empty,
69
+ ]
70
+ AppSetObjects: grpc.UnaryUnaryMultiCallable[
71
+ modal_proto.api_pb2.AppSetObjectsRequest,
72
+ google.protobuf.empty_pb2.Empty,
73
+ ]
74
+ AppStop: grpc.UnaryUnaryMultiCallable[
75
+ modal_proto.api_pb2.AppStopRequest,
76
+ google.protobuf.empty_pb2.Empty,
77
+ ]
78
+ BlobCreate: grpc.UnaryUnaryMultiCallable[
79
+ modal_proto.api_pb2.BlobCreateRequest,
80
+ modal_proto.api_pb2.BlobCreateResponse,
81
+ ]
82
+ """Blobs"""
83
+ BlobGet: grpc.UnaryUnaryMultiCallable[
84
+ modal_proto.api_pb2.BlobGetRequest,
85
+ modal_proto.api_pb2.BlobGetResponse,
86
+ ]
87
+ ClassCreate: grpc.UnaryUnaryMultiCallable[
88
+ modal_proto.api_pb2.ClassCreateRequest,
89
+ modal_proto.api_pb2.ClassCreateResponse,
90
+ ]
91
+ """Classes"""
92
+ ClassGet: grpc.UnaryUnaryMultiCallable[
93
+ modal_proto.api_pb2.ClassGetRequest,
94
+ modal_proto.api_pb2.ClassGetResponse,
95
+ ]
96
+ ClientHello: grpc.UnaryUnaryMultiCallable[
97
+ google.protobuf.empty_pb2.Empty,
98
+ modal_proto.api_pb2.ClientHelloResponse,
99
+ ]
100
+ """Clients"""
101
+ ContainerCheckpoint: grpc.UnaryUnaryMultiCallable[
102
+ modal_proto.api_pb2.ContainerCheckpointRequest,
103
+ google.protobuf.empty_pb2.Empty,
104
+ ]
105
+ """Container"""
106
+ ContainerExec: grpc.UnaryUnaryMultiCallable[
107
+ modal_proto.api_pb2.ContainerExecRequest,
108
+ modal_proto.api_pb2.ContainerExecResponse,
109
+ ]
110
+ ContainerExecGetOutput: grpc.UnaryStreamMultiCallable[
111
+ modal_proto.api_pb2.ContainerExecGetOutputRequest,
112
+ modal_proto.api_pb2.RuntimeOutputBatch,
113
+ ]
114
+ ContainerExecPutInput: grpc.UnaryUnaryMultiCallable[
115
+ modal_proto.api_pb2.ContainerExecPutInputRequest,
116
+ google.protobuf.empty_pb2.Empty,
117
+ ]
118
+ ContainerExecWait: grpc.UnaryUnaryMultiCallable[
119
+ modal_proto.api_pb2.ContainerExecWaitRequest,
120
+ modal_proto.api_pb2.ContainerExecWaitResponse,
121
+ ]
122
+ ContainerFilesystemExec: grpc.UnaryUnaryMultiCallable[
123
+ modal_proto.api_pb2.ContainerFilesystemExecRequest,
124
+ modal_proto.api_pb2.ContainerFilesystemExecResponse,
125
+ ]
126
+ ContainerFilesystemExecGetOutput: grpc.UnaryStreamMultiCallable[
127
+ modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest,
128
+ modal_proto.api_pb2.FilesystemRuntimeOutputBatch,
129
+ ]
130
+ ContainerHeartbeat: grpc.UnaryUnaryMultiCallable[
131
+ modal_proto.api_pb2.ContainerHeartbeatRequest,
132
+ modal_proto.api_pb2.ContainerHeartbeatResponse,
133
+ ]
134
+ ContainerHello: grpc.UnaryUnaryMultiCallable[
135
+ google.protobuf.empty_pb2.Empty,
136
+ google.protobuf.empty_pb2.Empty,
137
+ ]
138
+ ContainerLog: grpc.UnaryUnaryMultiCallable[
139
+ modal_proto.api_pb2.ContainerLogRequest,
140
+ google.protobuf.empty_pb2.Empty,
141
+ ]
142
+ ContainerStop: grpc.UnaryUnaryMultiCallable[
143
+ modal_proto.api_pb2.ContainerStopRequest,
144
+ modal_proto.api_pb2.ContainerStopResponse,
145
+ ]
146
+ DictClear: grpc.UnaryUnaryMultiCallable[
147
+ modal_proto.api_pb2.DictClearRequest,
148
+ google.protobuf.empty_pb2.Empty,
149
+ ]
150
+ """Dicts"""
151
+ DictContains: grpc.UnaryUnaryMultiCallable[
152
+ modal_proto.api_pb2.DictContainsRequest,
153
+ modal_proto.api_pb2.DictContainsResponse,
154
+ ]
155
+ DictContents: grpc.UnaryStreamMultiCallable[
156
+ modal_proto.api_pb2.DictContentsRequest,
157
+ modal_proto.api_pb2.DictEntry,
158
+ ]
159
+ DictDelete: grpc.UnaryUnaryMultiCallable[
160
+ modal_proto.api_pb2.DictDeleteRequest,
161
+ google.protobuf.empty_pb2.Empty,
162
+ ]
163
+ DictGet: grpc.UnaryUnaryMultiCallable[
164
+ modal_proto.api_pb2.DictGetRequest,
165
+ modal_proto.api_pb2.DictGetResponse,
166
+ ]
167
+ DictGetOrCreate: grpc.UnaryUnaryMultiCallable[
168
+ modal_proto.api_pb2.DictGetOrCreateRequest,
169
+ modal_proto.api_pb2.DictGetOrCreateResponse,
170
+ ]
171
+ DictHeartbeat: grpc.UnaryUnaryMultiCallable[
172
+ modal_proto.api_pb2.DictHeartbeatRequest,
173
+ google.protobuf.empty_pb2.Empty,
174
+ ]
175
+ DictLen: grpc.UnaryUnaryMultiCallable[
176
+ modal_proto.api_pb2.DictLenRequest,
177
+ modal_proto.api_pb2.DictLenResponse,
178
+ ]
179
+ DictList: grpc.UnaryUnaryMultiCallable[
180
+ modal_proto.api_pb2.DictListRequest,
181
+ modal_proto.api_pb2.DictListResponse,
182
+ ]
183
+ DictPop: grpc.UnaryUnaryMultiCallable[
184
+ modal_proto.api_pb2.DictPopRequest,
185
+ modal_proto.api_pb2.DictPopResponse,
186
+ ]
187
+ DictUpdate: grpc.UnaryUnaryMultiCallable[
188
+ modal_proto.api_pb2.DictUpdateRequest,
189
+ modal_proto.api_pb2.DictUpdateResponse,
190
+ ]
191
+ DomainCertificateVerify: grpc.UnaryUnaryMultiCallable[
192
+ modal_proto.api_pb2.DomainCertificateVerifyRequest,
193
+ modal_proto.api_pb2.DomainCertificateVerifyResponse,
194
+ ]
195
+ """Domains"""
196
+ DomainCreate: grpc.UnaryUnaryMultiCallable[
197
+ modal_proto.api_pb2.DomainCreateRequest,
198
+ modal_proto.api_pb2.DomainCreateResponse,
199
+ ]
200
+ DomainList: grpc.UnaryUnaryMultiCallable[
201
+ modal_proto.api_pb2.DomainListRequest,
202
+ modal_proto.api_pb2.DomainListResponse,
203
+ ]
204
+ EnvironmentCreate: grpc.UnaryUnaryMultiCallable[
205
+ modal_proto.api_pb2.EnvironmentCreateRequest,
206
+ google.protobuf.empty_pb2.Empty,
207
+ ]
208
+ """Environments"""
209
+ EnvironmentDelete: grpc.UnaryUnaryMultiCallable[
210
+ modal_proto.api_pb2.EnvironmentDeleteRequest,
211
+ google.protobuf.empty_pb2.Empty,
212
+ ]
213
+ EnvironmentGetOrCreate: grpc.UnaryUnaryMultiCallable[
214
+ modal_proto.api_pb2.EnvironmentGetOrCreateRequest,
215
+ modal_proto.api_pb2.EnvironmentGetOrCreateResponse,
216
+ ]
217
+ EnvironmentList: grpc.UnaryUnaryMultiCallable[
218
+ google.protobuf.empty_pb2.Empty,
219
+ modal_proto.api_pb2.EnvironmentListResponse,
220
+ ]
221
+ EnvironmentUpdate: grpc.UnaryUnaryMultiCallable[
222
+ modal_proto.api_pb2.EnvironmentUpdateRequest,
223
+ modal_proto.api_pb2.EnvironmentListItem,
224
+ ]
225
+ FunctionAsyncInvoke: grpc.UnaryUnaryMultiCallable[
226
+ modal_proto.api_pb2.FunctionAsyncInvokeRequest,
227
+ modal_proto.api_pb2.FunctionAsyncInvokeResponse,
228
+ ]
229
+ """Functions"""
230
+ FunctionBindParams: grpc.UnaryUnaryMultiCallable[
231
+ modal_proto.api_pb2.FunctionBindParamsRequest,
232
+ modal_proto.api_pb2.FunctionBindParamsResponse,
233
+ ]
234
+ FunctionCallCancel: grpc.UnaryUnaryMultiCallable[
235
+ modal_proto.api_pb2.FunctionCallCancelRequest,
236
+ google.protobuf.empty_pb2.Empty,
237
+ ]
238
+ FunctionCallGetDataIn: grpc.UnaryStreamMultiCallable[
239
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
240
+ modal_proto.api_pb2.DataChunk,
241
+ ]
242
+ FunctionCallGetDataOut: grpc.UnaryStreamMultiCallable[
243
+ modal_proto.api_pb2.FunctionCallGetDataRequest,
244
+ modal_proto.api_pb2.DataChunk,
245
+ ]
246
+ FunctionCallList: grpc.UnaryUnaryMultiCallable[
247
+ modal_proto.api_pb2.FunctionCallListRequest,
248
+ modal_proto.api_pb2.FunctionCallListResponse,
249
+ ]
250
+ FunctionCallPutDataOut: grpc.UnaryUnaryMultiCallable[
251
+ modal_proto.api_pb2.FunctionCallPutDataRequest,
252
+ google.protobuf.empty_pb2.Empty,
253
+ ]
254
+ FunctionCreate: grpc.UnaryUnaryMultiCallable[
255
+ modal_proto.api_pb2.FunctionCreateRequest,
256
+ modal_proto.api_pb2.FunctionCreateResponse,
257
+ ]
258
+ FunctionGet: grpc.UnaryUnaryMultiCallable[
259
+ modal_proto.api_pb2.FunctionGetRequest,
260
+ modal_proto.api_pb2.FunctionGetResponse,
261
+ ]
262
+ FunctionGetCallGraph: grpc.UnaryUnaryMultiCallable[
263
+ modal_proto.api_pb2.FunctionGetCallGraphRequest,
264
+ modal_proto.api_pb2.FunctionGetCallGraphResponse,
265
+ ]
266
+ FunctionGetCurrentStats: grpc.UnaryUnaryMultiCallable[
267
+ modal_proto.api_pb2.FunctionGetCurrentStatsRequest,
268
+ modal_proto.api_pb2.FunctionStats,
269
+ ]
270
+ FunctionGetDynamicConcurrency: grpc.UnaryUnaryMultiCallable[
271
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest,
272
+ modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse,
273
+ ]
274
+ FunctionGetInputs: grpc.UnaryUnaryMultiCallable[
275
+ modal_proto.api_pb2.FunctionGetInputsRequest,
276
+ modal_proto.api_pb2.FunctionGetInputsResponse,
277
+ ]
278
+ """For containers to request next call"""
279
+ FunctionGetOutputs: grpc.UnaryUnaryMultiCallable[
280
+ modal_proto.api_pb2.FunctionGetOutputsRequest,
281
+ modal_proto.api_pb2.FunctionGetOutputsResponse,
282
+ ]
283
+ """Returns the next result(s) for an entire function call (FunctionMap)"""
284
+ FunctionGetSerialized: grpc.UnaryUnaryMultiCallable[
285
+ modal_proto.api_pb2.FunctionGetSerializedRequest,
286
+ modal_proto.api_pb2.FunctionGetSerializedResponse,
287
+ ]
288
+ FunctionMap: grpc.UnaryUnaryMultiCallable[
289
+ modal_proto.api_pb2.FunctionMapRequest,
290
+ modal_proto.api_pb2.FunctionMapResponse,
291
+ ]
292
+ FunctionPrecreate: grpc.UnaryUnaryMultiCallable[
293
+ modal_proto.api_pb2.FunctionPrecreateRequest,
294
+ modal_proto.api_pb2.FunctionPrecreateResponse,
295
+ ]
296
+ FunctionPutInputs: grpc.UnaryUnaryMultiCallable[
297
+ modal_proto.api_pb2.FunctionPutInputsRequest,
298
+ modal_proto.api_pb2.FunctionPutInputsResponse,
299
+ ]
300
+ FunctionPutOutputs: grpc.UnaryUnaryMultiCallable[
301
+ modal_proto.api_pb2.FunctionPutOutputsRequest,
302
+ google.protobuf.empty_pb2.Empty,
303
+ ]
304
+ """For containers to return result"""
305
+ FunctionRetryInputs: grpc.UnaryUnaryMultiCallable[
306
+ modal_proto.api_pb2.FunctionRetryInputsRequest,
307
+ modal_proto.api_pb2.FunctionRetryInputsResponse,
308
+ ]
309
+ FunctionStartPtyShell: grpc.UnaryUnaryMultiCallable[
310
+ google.protobuf.empty_pb2.Empty,
311
+ google.protobuf.empty_pb2.Empty,
312
+ ]
313
+ FunctionUpdateSchedulingParams: grpc.UnaryUnaryMultiCallable[
314
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
315
+ modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
316
+ ]
317
+ ImageFromId: grpc.UnaryUnaryMultiCallable[
318
+ modal_proto.api_pb2.ImageFromIdRequest,
319
+ modal_proto.api_pb2.ImageFromIdResponse,
320
+ ]
321
+ """Images"""
322
+ ImageGetOrCreate: grpc.UnaryUnaryMultiCallable[
323
+ modal_proto.api_pb2.ImageGetOrCreateRequest,
324
+ modal_proto.api_pb2.ImageGetOrCreateResponse,
325
+ ]
326
+ ImageJoinStreaming: grpc.UnaryStreamMultiCallable[
327
+ modal_proto.api_pb2.ImageJoinStreamingRequest,
328
+ modal_proto.api_pb2.ImageJoinStreamingResponse,
329
+ ]
330
+ MountGetOrCreate: grpc.UnaryUnaryMultiCallable[
331
+ modal_proto.api_pb2.MountGetOrCreateRequest,
332
+ modal_proto.api_pb2.MountGetOrCreateResponse,
333
+ ]
334
+ """Mounts"""
335
+ MountPutFile: grpc.UnaryUnaryMultiCallable[
336
+ modal_proto.api_pb2.MountPutFileRequest,
337
+ modal_proto.api_pb2.MountPutFileResponse,
338
+ ]
339
+ ProxyCreate: grpc.UnaryUnaryMultiCallable[
340
+ modal_proto.api_pb2.ProxyCreateRequest,
341
+ modal_proto.api_pb2.ProxyCreateResponse,
342
+ ]
343
+ """Proxies"""
344
+ ProxyDelete: grpc.UnaryUnaryMultiCallable[
345
+ modal_proto.api_pb2.ProxyDeleteRequest,
346
+ google.protobuf.empty_pb2.Empty,
347
+ ]
348
+ ProxyGet: grpc.UnaryUnaryMultiCallable[
349
+ modal_proto.api_pb2.ProxyGetRequest,
350
+ modal_proto.api_pb2.ProxyGetResponse,
351
+ ]
352
+ ProxyGetOrCreate: grpc.UnaryUnaryMultiCallable[
353
+ modal_proto.api_pb2.ProxyGetOrCreateRequest,
354
+ modal_proto.api_pb2.ProxyGetOrCreateResponse,
355
+ ]
356
+ ProxyList: grpc.UnaryUnaryMultiCallable[
357
+ google.protobuf.empty_pb2.Empty,
358
+ modal_proto.api_pb2.ProxyListResponse,
359
+ ]
360
+ QueueClear: grpc.UnaryUnaryMultiCallable[
361
+ modal_proto.api_pb2.QueueClearRequest,
362
+ google.protobuf.empty_pb2.Empty,
363
+ ]
364
+ """Queues"""
365
+ QueueDelete: grpc.UnaryUnaryMultiCallable[
366
+ modal_proto.api_pb2.QueueDeleteRequest,
367
+ google.protobuf.empty_pb2.Empty,
368
+ ]
369
+ QueueGet: grpc.UnaryUnaryMultiCallable[
370
+ modal_proto.api_pb2.QueueGetRequest,
371
+ modal_proto.api_pb2.QueueGetResponse,
372
+ ]
373
+ QueueGetOrCreate: grpc.UnaryUnaryMultiCallable[
374
+ modal_proto.api_pb2.QueueGetOrCreateRequest,
375
+ modal_proto.api_pb2.QueueGetOrCreateResponse,
376
+ ]
377
+ QueueHeartbeat: grpc.UnaryUnaryMultiCallable[
378
+ modal_proto.api_pb2.QueueHeartbeatRequest,
379
+ google.protobuf.empty_pb2.Empty,
380
+ ]
381
+ QueueLen: grpc.UnaryUnaryMultiCallable[
382
+ modal_proto.api_pb2.QueueLenRequest,
383
+ modal_proto.api_pb2.QueueLenResponse,
384
+ ]
385
+ QueueList: grpc.UnaryUnaryMultiCallable[
386
+ modal_proto.api_pb2.QueueListRequest,
387
+ modal_proto.api_pb2.QueueListResponse,
388
+ ]
389
+ QueueNextItems: grpc.UnaryUnaryMultiCallable[
390
+ modal_proto.api_pb2.QueueNextItemsRequest,
391
+ modal_proto.api_pb2.QueueNextItemsResponse,
392
+ ]
393
+ QueuePut: grpc.UnaryUnaryMultiCallable[
394
+ modal_proto.api_pb2.QueuePutRequest,
395
+ google.protobuf.empty_pb2.Empty,
396
+ ]
397
+ SandboxCreate: grpc.UnaryUnaryMultiCallable[
398
+ modal_proto.api_pb2.SandboxCreateRequest,
399
+ modal_proto.api_pb2.SandboxCreateResponse,
400
+ ]
401
+ """Sandboxes"""
402
+ SandboxGetLogs: grpc.UnaryStreamMultiCallable[
403
+ modal_proto.api_pb2.SandboxGetLogsRequest,
404
+ modal_proto.api_pb2.TaskLogsBatch,
405
+ ]
406
+ SandboxGetTaskId: grpc.UnaryUnaryMultiCallable[
407
+ modal_proto.api_pb2.SandboxGetTaskIdRequest,
408
+ modal_proto.api_pb2.SandboxGetTaskIdResponse,
409
+ ]
410
+ """needed for modal container exec"""
411
+ SandboxGetTunnels: grpc.UnaryUnaryMultiCallable[
412
+ modal_proto.api_pb2.SandboxGetTunnelsRequest,
413
+ modal_proto.api_pb2.SandboxGetTunnelsResponse,
414
+ ]
415
+ SandboxList: grpc.UnaryUnaryMultiCallable[
416
+ modal_proto.api_pb2.SandboxListRequest,
417
+ modal_proto.api_pb2.SandboxListResponse,
418
+ ]
419
+ SandboxSnapshotFs: grpc.UnaryUnaryMultiCallable[
420
+ modal_proto.api_pb2.SandboxSnapshotFsRequest,
421
+ modal_proto.api_pb2.SandboxSnapshotFsResponse,
422
+ ]
423
+ SandboxStdinWrite: grpc.UnaryUnaryMultiCallable[
424
+ modal_proto.api_pb2.SandboxStdinWriteRequest,
425
+ modal_proto.api_pb2.SandboxStdinWriteResponse,
426
+ ]
427
+ SandboxTagsSet: grpc.UnaryUnaryMultiCallable[
428
+ modal_proto.api_pb2.SandboxTagsSetRequest,
429
+ google.protobuf.empty_pb2.Empty,
430
+ ]
431
+ SandboxTerminate: grpc.UnaryUnaryMultiCallable[
432
+ modal_proto.api_pb2.SandboxTerminateRequest,
433
+ modal_proto.api_pb2.SandboxTerminateResponse,
434
+ ]
435
+ SandboxWait: grpc.UnaryUnaryMultiCallable[
436
+ modal_proto.api_pb2.SandboxWaitRequest,
437
+ modal_proto.api_pb2.SandboxWaitResponse,
438
+ ]
439
+ SecretDelete: grpc.UnaryUnaryMultiCallable[
440
+ modal_proto.api_pb2.SecretDeleteRequest,
441
+ google.protobuf.empty_pb2.Empty,
442
+ ]
443
+ """Secrets"""
444
+ SecretGetOrCreate: grpc.UnaryUnaryMultiCallable[
445
+ modal_proto.api_pb2.SecretGetOrCreateRequest,
446
+ modal_proto.api_pb2.SecretGetOrCreateResponse,
447
+ ]
448
+ SecretList: grpc.UnaryUnaryMultiCallable[
449
+ modal_proto.api_pb2.SecretListRequest,
450
+ modal_proto.api_pb2.SecretListResponse,
451
+ ]
452
+ SharedVolumeDelete: grpc.UnaryUnaryMultiCallable[
453
+ modal_proto.api_pb2.SharedVolumeDeleteRequest,
454
+ google.protobuf.empty_pb2.Empty,
455
+ ]
456
+ """SharedVolumes"""
457
+ SharedVolumeGetFile: grpc.UnaryUnaryMultiCallable[
458
+ modal_proto.api_pb2.SharedVolumeGetFileRequest,
459
+ modal_proto.api_pb2.SharedVolumeGetFileResponse,
460
+ ]
461
+ SharedVolumeGetOrCreate: grpc.UnaryUnaryMultiCallable[
462
+ modal_proto.api_pb2.SharedVolumeGetOrCreateRequest,
463
+ modal_proto.api_pb2.SharedVolumeGetOrCreateResponse,
464
+ ]
465
+ SharedVolumeHeartbeat: grpc.UnaryUnaryMultiCallable[
466
+ modal_proto.api_pb2.SharedVolumeHeartbeatRequest,
467
+ google.protobuf.empty_pb2.Empty,
468
+ ]
469
+ SharedVolumeList: grpc.UnaryUnaryMultiCallable[
470
+ modal_proto.api_pb2.SharedVolumeListRequest,
471
+ modal_proto.api_pb2.SharedVolumeListResponse,
472
+ ]
473
+ SharedVolumeListFiles: grpc.UnaryUnaryMultiCallable[
474
+ modal_proto.api_pb2.SharedVolumeListFilesRequest,
475
+ modal_proto.api_pb2.SharedVolumeListFilesResponse,
476
+ ]
477
+ SharedVolumeListFilesStream: grpc.UnaryStreamMultiCallable[
478
+ modal_proto.api_pb2.SharedVolumeListFilesRequest,
479
+ modal_proto.api_pb2.SharedVolumeListFilesResponse,
480
+ ]
481
+ SharedVolumePutFile: grpc.UnaryUnaryMultiCallable[
482
+ modal_proto.api_pb2.SharedVolumePutFileRequest,
483
+ modal_proto.api_pb2.SharedVolumePutFileResponse,
484
+ ]
485
+ SharedVolumeRemoveFile: grpc.UnaryUnaryMultiCallable[
486
+ modal_proto.api_pb2.SharedVolumeRemoveFileRequest,
487
+ google.protobuf.empty_pb2.Empty,
488
+ ]
489
+ TaskClusterHello: grpc.UnaryUnaryMultiCallable[
490
+ modal_proto.api_pb2.TaskClusterHelloRequest,
491
+ modal_proto.api_pb2.TaskClusterHelloResponse,
492
+ ]
493
+ """Tasks"""
494
+ TaskCurrentInputs: grpc.UnaryUnaryMultiCallable[
495
+ google.protobuf.empty_pb2.Empty,
496
+ modal_proto.api_pb2.TaskCurrentInputsResponse,
497
+ ]
498
+ TaskList: grpc.UnaryUnaryMultiCallable[
499
+ modal_proto.api_pb2.TaskListRequest,
500
+ modal_proto.api_pb2.TaskListResponse,
501
+ ]
502
+ TaskResult: grpc.UnaryUnaryMultiCallable[
503
+ modal_proto.api_pb2.TaskResultRequest,
504
+ google.protobuf.empty_pb2.Empty,
505
+ ]
506
+ TokenFlowCreate: grpc.UnaryUnaryMultiCallable[
507
+ modal_proto.api_pb2.TokenFlowCreateRequest,
508
+ modal_proto.api_pb2.TokenFlowCreateResponse,
509
+ ]
510
+ """Tokens (web auth flow)"""
511
+ TokenFlowWait: grpc.UnaryUnaryMultiCallable[
512
+ modal_proto.api_pb2.TokenFlowWaitRequest,
513
+ modal_proto.api_pb2.TokenFlowWaitResponse,
514
+ ]
515
+ TunnelStart: grpc.UnaryUnaryMultiCallable[
516
+ modal_proto.api_pb2.TunnelStartRequest,
517
+ modal_proto.api_pb2.TunnelStartResponse,
518
+ ]
519
+ """Tunnels"""
520
+ TunnelStop: grpc.UnaryUnaryMultiCallable[
521
+ modal_proto.api_pb2.TunnelStopRequest,
522
+ modal_proto.api_pb2.TunnelStopResponse,
523
+ ]
524
+ VolumeCommit: grpc.UnaryUnaryMultiCallable[
525
+ modal_proto.api_pb2.VolumeCommitRequest,
526
+ modal_proto.api_pb2.VolumeCommitResponse,
527
+ ]
528
+ """Volumes"""
529
+ VolumeCopyFiles: grpc.UnaryUnaryMultiCallable[
530
+ modal_proto.api_pb2.VolumeCopyFilesRequest,
531
+ google.protobuf.empty_pb2.Empty,
532
+ ]
533
+ VolumeDelete: grpc.UnaryUnaryMultiCallable[
534
+ modal_proto.api_pb2.VolumeDeleteRequest,
535
+ google.protobuf.empty_pb2.Empty,
536
+ ]
537
+ VolumeGetFile: grpc.UnaryUnaryMultiCallable[
538
+ modal_proto.api_pb2.VolumeGetFileRequest,
539
+ modal_proto.api_pb2.VolumeGetFileResponse,
540
+ ]
541
+ VolumeGetOrCreate: grpc.UnaryUnaryMultiCallable[
542
+ modal_proto.api_pb2.VolumeGetOrCreateRequest,
543
+ modal_proto.api_pb2.VolumeGetOrCreateResponse,
544
+ ]
545
+ VolumeHeartbeat: grpc.UnaryUnaryMultiCallable[
546
+ modal_proto.api_pb2.VolumeHeartbeatRequest,
547
+ google.protobuf.empty_pb2.Empty,
548
+ ]
549
+ VolumeList: grpc.UnaryUnaryMultiCallable[
550
+ modal_proto.api_pb2.VolumeListRequest,
551
+ modal_proto.api_pb2.VolumeListResponse,
552
+ ]
553
+ VolumeListFiles: grpc.UnaryStreamMultiCallable[
554
+ modal_proto.api_pb2.VolumeListFilesRequest,
555
+ modal_proto.api_pb2.VolumeListFilesResponse,
556
+ ]
557
+ VolumePutFiles: grpc.UnaryUnaryMultiCallable[
558
+ modal_proto.api_pb2.VolumePutFilesRequest,
559
+ google.protobuf.empty_pb2.Empty,
560
+ ]
561
+ VolumeReload: grpc.UnaryUnaryMultiCallable[
562
+ modal_proto.api_pb2.VolumeReloadRequest,
563
+ google.protobuf.empty_pb2.Empty,
564
+ ]
565
+ VolumeRemoveFile: grpc.UnaryUnaryMultiCallable[
566
+ modal_proto.api_pb2.VolumeRemoveFileRequest,
567
+ google.protobuf.empty_pb2.Empty,
568
+ ]
569
+ VolumeRename: grpc.UnaryUnaryMultiCallable[
570
+ modal_proto.api_pb2.VolumeRenameRequest,
571
+ google.protobuf.empty_pb2.Empty,
572
+ ]
573
+ WorkspaceNameLookup: grpc.UnaryUnaryMultiCallable[
574
+ google.protobuf.empty_pb2.Empty,
575
+ modal_proto.api_pb2.WorkspaceNameLookupResponse,
576
+ ]
577
+ """Workspaces"""
578
+
579
+ class ModalClientServicer(metaclass=abc.ABCMeta):
580
+ @abc.abstractmethod
581
+ def AppClientDisconnect(
582
+ self,
583
+ request: modal_proto.api_pb2.AppClientDisconnectRequest,
584
+ context: grpc.ServicerContext,
585
+ ) -> google.protobuf.empty_pb2.Empty:
586
+ """Apps"""
587
+ @abc.abstractmethod
588
+ def AppCreate(
589
+ self,
590
+ request: modal_proto.api_pb2.AppCreateRequest,
591
+ context: grpc.ServicerContext,
592
+ ) -> modal_proto.api_pb2.AppCreateResponse: ...
593
+ @abc.abstractmethod
594
+ def AppDeploy(
595
+ self,
596
+ request: modal_proto.api_pb2.AppDeployRequest,
597
+ context: grpc.ServicerContext,
598
+ ) -> modal_proto.api_pb2.AppDeployResponse: ...
599
+ @abc.abstractmethod
600
+ def AppDeploymentHistory(
601
+ self,
602
+ request: modal_proto.api_pb2.AppDeploymentHistoryRequest,
603
+ context: grpc.ServicerContext,
604
+ ) -> modal_proto.api_pb2.AppDeploymentHistoryResponse: ...
605
+ @abc.abstractmethod
606
+ def AppGetByDeploymentName(
607
+ self,
608
+ request: modal_proto.api_pb2.AppGetByDeploymentNameRequest,
609
+ context: grpc.ServicerContext,
610
+ ) -> modal_proto.api_pb2.AppGetByDeploymentNameResponse: ...
611
+ @abc.abstractmethod
612
+ def AppGetLayout(
613
+ self,
614
+ request: modal_proto.api_pb2.AppGetLayoutRequest,
615
+ context: grpc.ServicerContext,
616
+ ) -> modal_proto.api_pb2.AppGetLayoutResponse: ...
617
+ @abc.abstractmethod
618
+ def AppGetLogs(
619
+ self,
620
+ request: modal_proto.api_pb2.AppGetLogsRequest,
621
+ context: grpc.ServicerContext,
622
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.TaskLogsBatch]: ...
623
+ @abc.abstractmethod
624
+ def AppGetObjects(
625
+ self,
626
+ request: modal_proto.api_pb2.AppGetObjectsRequest,
627
+ context: grpc.ServicerContext,
628
+ ) -> modal_proto.api_pb2.AppGetObjectsResponse: ...
629
+ @abc.abstractmethod
630
+ def AppGetOrCreate(
631
+ self,
632
+ request: modal_proto.api_pb2.AppGetOrCreateRequest,
633
+ context: grpc.ServicerContext,
634
+ ) -> modal_proto.api_pb2.AppGetOrCreateResponse: ...
635
+ @abc.abstractmethod
636
+ def AppHeartbeat(
637
+ self,
638
+ request: modal_proto.api_pb2.AppHeartbeatRequest,
639
+ context: grpc.ServicerContext,
640
+ ) -> google.protobuf.empty_pb2.Empty: ...
641
+ @abc.abstractmethod
642
+ def AppList(
643
+ self,
644
+ request: modal_proto.api_pb2.AppListRequest,
645
+ context: grpc.ServicerContext,
646
+ ) -> modal_proto.api_pb2.AppListResponse: ...
647
+ @abc.abstractmethod
648
+ def AppLookup(
649
+ self,
650
+ request: modal_proto.api_pb2.AppLookupRequest,
651
+ context: grpc.ServicerContext,
652
+ ) -> modal_proto.api_pb2.AppLookupResponse: ...
653
+ @abc.abstractmethod
654
+ def AppPublish(
655
+ self,
656
+ request: modal_proto.api_pb2.AppPublishRequest,
657
+ context: grpc.ServicerContext,
658
+ ) -> modal_proto.api_pb2.AppPublishResponse: ...
659
+ @abc.abstractmethod
660
+ def AppRollback(
661
+ self,
662
+ request: modal_proto.api_pb2.AppRollbackRequest,
663
+ context: grpc.ServicerContext,
664
+ ) -> google.protobuf.empty_pb2.Empty: ...
665
+ @abc.abstractmethod
666
+ def AppSetObjects(
667
+ self,
668
+ request: modal_proto.api_pb2.AppSetObjectsRequest,
669
+ context: grpc.ServicerContext,
670
+ ) -> google.protobuf.empty_pb2.Empty: ...
671
+ @abc.abstractmethod
672
+ def AppStop(
673
+ self,
674
+ request: modal_proto.api_pb2.AppStopRequest,
675
+ context: grpc.ServicerContext,
676
+ ) -> google.protobuf.empty_pb2.Empty: ...
677
+ @abc.abstractmethod
678
+ def BlobCreate(
679
+ self,
680
+ request: modal_proto.api_pb2.BlobCreateRequest,
681
+ context: grpc.ServicerContext,
682
+ ) -> modal_proto.api_pb2.BlobCreateResponse:
683
+ """Blobs"""
684
+ @abc.abstractmethod
685
+ def BlobGet(
686
+ self,
687
+ request: modal_proto.api_pb2.BlobGetRequest,
688
+ context: grpc.ServicerContext,
689
+ ) -> modal_proto.api_pb2.BlobGetResponse: ...
690
+ @abc.abstractmethod
691
+ def ClassCreate(
692
+ self,
693
+ request: modal_proto.api_pb2.ClassCreateRequest,
694
+ context: grpc.ServicerContext,
695
+ ) -> modal_proto.api_pb2.ClassCreateResponse:
696
+ """Classes"""
697
+ @abc.abstractmethod
698
+ def ClassGet(
699
+ self,
700
+ request: modal_proto.api_pb2.ClassGetRequest,
701
+ context: grpc.ServicerContext,
702
+ ) -> modal_proto.api_pb2.ClassGetResponse: ...
703
+ @abc.abstractmethod
704
+ def ClientHello(
705
+ self,
706
+ request: google.protobuf.empty_pb2.Empty,
707
+ context: grpc.ServicerContext,
708
+ ) -> modal_proto.api_pb2.ClientHelloResponse:
709
+ """Clients"""
710
+ @abc.abstractmethod
711
+ def ContainerCheckpoint(
712
+ self,
713
+ request: modal_proto.api_pb2.ContainerCheckpointRequest,
714
+ context: grpc.ServicerContext,
715
+ ) -> google.protobuf.empty_pb2.Empty:
716
+ """Container"""
717
+ @abc.abstractmethod
718
+ def ContainerExec(
719
+ self,
720
+ request: modal_proto.api_pb2.ContainerExecRequest,
721
+ context: grpc.ServicerContext,
722
+ ) -> modal_proto.api_pb2.ContainerExecResponse: ...
723
+ @abc.abstractmethod
724
+ def ContainerExecGetOutput(
725
+ self,
726
+ request: modal_proto.api_pb2.ContainerExecGetOutputRequest,
727
+ context: grpc.ServicerContext,
728
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.RuntimeOutputBatch]: ...
729
+ @abc.abstractmethod
730
+ def ContainerExecPutInput(
731
+ self,
732
+ request: modal_proto.api_pb2.ContainerExecPutInputRequest,
733
+ context: grpc.ServicerContext,
734
+ ) -> google.protobuf.empty_pb2.Empty: ...
735
+ @abc.abstractmethod
736
+ def ContainerExecWait(
737
+ self,
738
+ request: modal_proto.api_pb2.ContainerExecWaitRequest,
739
+ context: grpc.ServicerContext,
740
+ ) -> modal_proto.api_pb2.ContainerExecWaitResponse: ...
741
+ @abc.abstractmethod
742
+ def ContainerFilesystemExec(
743
+ self,
744
+ request: modal_proto.api_pb2.ContainerFilesystemExecRequest,
745
+ context: grpc.ServicerContext,
746
+ ) -> modal_proto.api_pb2.ContainerFilesystemExecResponse: ...
747
+ @abc.abstractmethod
748
+ def ContainerFilesystemExecGetOutput(
749
+ self,
750
+ request: modal_proto.api_pb2.ContainerFilesystemExecGetOutputRequest,
751
+ context: grpc.ServicerContext,
752
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.FilesystemRuntimeOutputBatch]: ...
753
+ @abc.abstractmethod
754
+ def ContainerHeartbeat(
755
+ self,
756
+ request: modal_proto.api_pb2.ContainerHeartbeatRequest,
757
+ context: grpc.ServicerContext,
758
+ ) -> modal_proto.api_pb2.ContainerHeartbeatResponse: ...
759
+ @abc.abstractmethod
760
+ def ContainerHello(
761
+ self,
762
+ request: google.protobuf.empty_pb2.Empty,
763
+ context: grpc.ServicerContext,
764
+ ) -> google.protobuf.empty_pb2.Empty: ...
765
+ @abc.abstractmethod
766
+ def ContainerLog(
767
+ self,
768
+ request: modal_proto.api_pb2.ContainerLogRequest,
769
+ context: grpc.ServicerContext,
770
+ ) -> google.protobuf.empty_pb2.Empty: ...
771
+ @abc.abstractmethod
772
+ def ContainerStop(
773
+ self,
774
+ request: modal_proto.api_pb2.ContainerStopRequest,
775
+ context: grpc.ServicerContext,
776
+ ) -> modal_proto.api_pb2.ContainerStopResponse: ...
777
+ @abc.abstractmethod
778
+ def DictClear(
779
+ self,
780
+ request: modal_proto.api_pb2.DictClearRequest,
781
+ context: grpc.ServicerContext,
782
+ ) -> google.protobuf.empty_pb2.Empty:
783
+ """Dicts"""
784
+ @abc.abstractmethod
785
+ def DictContains(
786
+ self,
787
+ request: modal_proto.api_pb2.DictContainsRequest,
788
+ context: grpc.ServicerContext,
789
+ ) -> modal_proto.api_pb2.DictContainsResponse: ...
790
+ @abc.abstractmethod
791
+ def DictContents(
792
+ self,
793
+ request: modal_proto.api_pb2.DictContentsRequest,
794
+ context: grpc.ServicerContext,
795
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.DictEntry]: ...
796
+ @abc.abstractmethod
797
+ def DictDelete(
798
+ self,
799
+ request: modal_proto.api_pb2.DictDeleteRequest,
800
+ context: grpc.ServicerContext,
801
+ ) -> google.protobuf.empty_pb2.Empty: ...
802
+ @abc.abstractmethod
803
+ def DictGet(
804
+ self,
805
+ request: modal_proto.api_pb2.DictGetRequest,
806
+ context: grpc.ServicerContext,
807
+ ) -> modal_proto.api_pb2.DictGetResponse: ...
808
+ @abc.abstractmethod
809
+ def DictGetOrCreate(
810
+ self,
811
+ request: modal_proto.api_pb2.DictGetOrCreateRequest,
812
+ context: grpc.ServicerContext,
813
+ ) -> modal_proto.api_pb2.DictGetOrCreateResponse: ...
814
+ @abc.abstractmethod
815
+ def DictHeartbeat(
816
+ self,
817
+ request: modal_proto.api_pb2.DictHeartbeatRequest,
818
+ context: grpc.ServicerContext,
819
+ ) -> google.protobuf.empty_pb2.Empty: ...
820
+ @abc.abstractmethod
821
+ def DictLen(
822
+ self,
823
+ request: modal_proto.api_pb2.DictLenRequest,
824
+ context: grpc.ServicerContext,
825
+ ) -> modal_proto.api_pb2.DictLenResponse: ...
826
+ @abc.abstractmethod
827
+ def DictList(
828
+ self,
829
+ request: modal_proto.api_pb2.DictListRequest,
830
+ context: grpc.ServicerContext,
831
+ ) -> modal_proto.api_pb2.DictListResponse: ...
832
+ @abc.abstractmethod
833
+ def DictPop(
834
+ self,
835
+ request: modal_proto.api_pb2.DictPopRequest,
836
+ context: grpc.ServicerContext,
837
+ ) -> modal_proto.api_pb2.DictPopResponse: ...
838
+ @abc.abstractmethod
839
+ def DictUpdate(
840
+ self,
841
+ request: modal_proto.api_pb2.DictUpdateRequest,
842
+ context: grpc.ServicerContext,
843
+ ) -> modal_proto.api_pb2.DictUpdateResponse: ...
844
+ @abc.abstractmethod
845
+ def DomainCertificateVerify(
846
+ self,
847
+ request: modal_proto.api_pb2.DomainCertificateVerifyRequest,
848
+ context: grpc.ServicerContext,
849
+ ) -> modal_proto.api_pb2.DomainCertificateVerifyResponse:
850
+ """Domains"""
851
+ @abc.abstractmethod
852
+ def DomainCreate(
853
+ self,
854
+ request: modal_proto.api_pb2.DomainCreateRequest,
855
+ context: grpc.ServicerContext,
856
+ ) -> modal_proto.api_pb2.DomainCreateResponse: ...
857
+ @abc.abstractmethod
858
+ def DomainList(
859
+ self,
860
+ request: modal_proto.api_pb2.DomainListRequest,
861
+ context: grpc.ServicerContext,
862
+ ) -> modal_proto.api_pb2.DomainListResponse: ...
863
+ @abc.abstractmethod
864
+ def EnvironmentCreate(
865
+ self,
866
+ request: modal_proto.api_pb2.EnvironmentCreateRequest,
867
+ context: grpc.ServicerContext,
868
+ ) -> google.protobuf.empty_pb2.Empty:
869
+ """Environments"""
870
+ @abc.abstractmethod
871
+ def EnvironmentDelete(
872
+ self,
873
+ request: modal_proto.api_pb2.EnvironmentDeleteRequest,
874
+ context: grpc.ServicerContext,
875
+ ) -> google.protobuf.empty_pb2.Empty: ...
876
+ @abc.abstractmethod
877
+ def EnvironmentGetOrCreate(
878
+ self,
879
+ request: modal_proto.api_pb2.EnvironmentGetOrCreateRequest,
880
+ context: grpc.ServicerContext,
881
+ ) -> modal_proto.api_pb2.EnvironmentGetOrCreateResponse: ...
882
+ @abc.abstractmethod
883
+ def EnvironmentList(
884
+ self,
885
+ request: google.protobuf.empty_pb2.Empty,
886
+ context: grpc.ServicerContext,
887
+ ) -> modal_proto.api_pb2.EnvironmentListResponse: ...
888
+ @abc.abstractmethod
889
+ def EnvironmentUpdate(
890
+ self,
891
+ request: modal_proto.api_pb2.EnvironmentUpdateRequest,
892
+ context: grpc.ServicerContext,
893
+ ) -> modal_proto.api_pb2.EnvironmentListItem: ...
894
+ @abc.abstractmethod
895
+ def FunctionAsyncInvoke(
896
+ self,
897
+ request: modal_proto.api_pb2.FunctionAsyncInvokeRequest,
898
+ context: grpc.ServicerContext,
899
+ ) -> modal_proto.api_pb2.FunctionAsyncInvokeResponse:
900
+ """Functions"""
901
+ @abc.abstractmethod
902
+ def FunctionBindParams(
903
+ self,
904
+ request: modal_proto.api_pb2.FunctionBindParamsRequest,
905
+ context: grpc.ServicerContext,
906
+ ) -> modal_proto.api_pb2.FunctionBindParamsResponse: ...
907
+ @abc.abstractmethod
908
+ def FunctionCallCancel(
909
+ self,
910
+ request: modal_proto.api_pb2.FunctionCallCancelRequest,
911
+ context: grpc.ServicerContext,
912
+ ) -> google.protobuf.empty_pb2.Empty: ...
913
+ @abc.abstractmethod
914
+ def FunctionCallGetDataIn(
915
+ self,
916
+ request: modal_proto.api_pb2.FunctionCallGetDataRequest,
917
+ context: grpc.ServicerContext,
918
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.DataChunk]: ...
919
+ @abc.abstractmethod
920
+ def FunctionCallGetDataOut(
921
+ self,
922
+ request: modal_proto.api_pb2.FunctionCallGetDataRequest,
923
+ context: grpc.ServicerContext,
924
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.DataChunk]: ...
925
+ @abc.abstractmethod
926
+ def FunctionCallList(
927
+ self,
928
+ request: modal_proto.api_pb2.FunctionCallListRequest,
929
+ context: grpc.ServicerContext,
930
+ ) -> modal_proto.api_pb2.FunctionCallListResponse: ...
931
+ @abc.abstractmethod
932
+ def FunctionCallPutDataOut(
933
+ self,
934
+ request: modal_proto.api_pb2.FunctionCallPutDataRequest,
935
+ context: grpc.ServicerContext,
936
+ ) -> google.protobuf.empty_pb2.Empty: ...
937
+ @abc.abstractmethod
938
+ def FunctionCreate(
939
+ self,
940
+ request: modal_proto.api_pb2.FunctionCreateRequest,
941
+ context: grpc.ServicerContext,
942
+ ) -> modal_proto.api_pb2.FunctionCreateResponse: ...
943
+ @abc.abstractmethod
944
+ def FunctionGet(
945
+ self,
946
+ request: modal_proto.api_pb2.FunctionGetRequest,
947
+ context: grpc.ServicerContext,
948
+ ) -> modal_proto.api_pb2.FunctionGetResponse: ...
949
+ @abc.abstractmethod
950
+ def FunctionGetCallGraph(
951
+ self,
952
+ request: modal_proto.api_pb2.FunctionGetCallGraphRequest,
953
+ context: grpc.ServicerContext,
954
+ ) -> modal_proto.api_pb2.FunctionGetCallGraphResponse: ...
955
+ @abc.abstractmethod
956
+ def FunctionGetCurrentStats(
957
+ self,
958
+ request: modal_proto.api_pb2.FunctionGetCurrentStatsRequest,
959
+ context: grpc.ServicerContext,
960
+ ) -> modal_proto.api_pb2.FunctionStats: ...
961
+ @abc.abstractmethod
962
+ def FunctionGetDynamicConcurrency(
963
+ self,
964
+ request: modal_proto.api_pb2.FunctionGetDynamicConcurrencyRequest,
965
+ context: grpc.ServicerContext,
966
+ ) -> modal_proto.api_pb2.FunctionGetDynamicConcurrencyResponse: ...
967
+ @abc.abstractmethod
968
+ def FunctionGetInputs(
969
+ self,
970
+ request: modal_proto.api_pb2.FunctionGetInputsRequest,
971
+ context: grpc.ServicerContext,
972
+ ) -> modal_proto.api_pb2.FunctionGetInputsResponse:
973
+ """For containers to request next call"""
974
+ @abc.abstractmethod
975
+ def FunctionGetOutputs(
976
+ self,
977
+ request: modal_proto.api_pb2.FunctionGetOutputsRequest,
978
+ context: grpc.ServicerContext,
979
+ ) -> modal_proto.api_pb2.FunctionGetOutputsResponse:
980
+ """Returns the next result(s) for an entire function call (FunctionMap)"""
981
+ @abc.abstractmethod
982
+ def FunctionGetSerialized(
983
+ self,
984
+ request: modal_proto.api_pb2.FunctionGetSerializedRequest,
985
+ context: grpc.ServicerContext,
986
+ ) -> modal_proto.api_pb2.FunctionGetSerializedResponse: ...
987
+ @abc.abstractmethod
988
+ def FunctionMap(
989
+ self,
990
+ request: modal_proto.api_pb2.FunctionMapRequest,
991
+ context: grpc.ServicerContext,
992
+ ) -> modal_proto.api_pb2.FunctionMapResponse: ...
993
+ @abc.abstractmethod
994
+ def FunctionPrecreate(
995
+ self,
996
+ request: modal_proto.api_pb2.FunctionPrecreateRequest,
997
+ context: grpc.ServicerContext,
998
+ ) -> modal_proto.api_pb2.FunctionPrecreateResponse: ...
999
+ @abc.abstractmethod
1000
+ def FunctionPutInputs(
1001
+ self,
1002
+ request: modal_proto.api_pb2.FunctionPutInputsRequest,
1003
+ context: grpc.ServicerContext,
1004
+ ) -> modal_proto.api_pb2.FunctionPutInputsResponse: ...
1005
+ @abc.abstractmethod
1006
+ def FunctionPutOutputs(
1007
+ self,
1008
+ request: modal_proto.api_pb2.FunctionPutOutputsRequest,
1009
+ context: grpc.ServicerContext,
1010
+ ) -> google.protobuf.empty_pb2.Empty:
1011
+ """For containers to return result"""
1012
+ @abc.abstractmethod
1013
+ def FunctionRetryInputs(
1014
+ self,
1015
+ request: modal_proto.api_pb2.FunctionRetryInputsRequest,
1016
+ context: grpc.ServicerContext,
1017
+ ) -> modal_proto.api_pb2.FunctionRetryInputsResponse: ...
1018
+ @abc.abstractmethod
1019
+ def FunctionStartPtyShell(
1020
+ self,
1021
+ request: google.protobuf.empty_pb2.Empty,
1022
+ context: grpc.ServicerContext,
1023
+ ) -> google.protobuf.empty_pb2.Empty: ...
1024
+ @abc.abstractmethod
1025
+ def FunctionUpdateSchedulingParams(
1026
+ self,
1027
+ request: modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
1028
+ context: grpc.ServicerContext,
1029
+ ) -> modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse: ...
1030
+ @abc.abstractmethod
1031
+ def ImageFromId(
1032
+ self,
1033
+ request: modal_proto.api_pb2.ImageFromIdRequest,
1034
+ context: grpc.ServicerContext,
1035
+ ) -> modal_proto.api_pb2.ImageFromIdResponse:
1036
+ """Images"""
1037
+ @abc.abstractmethod
1038
+ def ImageGetOrCreate(
1039
+ self,
1040
+ request: modal_proto.api_pb2.ImageGetOrCreateRequest,
1041
+ context: grpc.ServicerContext,
1042
+ ) -> modal_proto.api_pb2.ImageGetOrCreateResponse: ...
1043
+ @abc.abstractmethod
1044
+ def ImageJoinStreaming(
1045
+ self,
1046
+ request: modal_proto.api_pb2.ImageJoinStreamingRequest,
1047
+ context: grpc.ServicerContext,
1048
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.ImageJoinStreamingResponse]: ...
1049
+ @abc.abstractmethod
1050
+ def MountGetOrCreate(
1051
+ self,
1052
+ request: modal_proto.api_pb2.MountGetOrCreateRequest,
1053
+ context: grpc.ServicerContext,
1054
+ ) -> modal_proto.api_pb2.MountGetOrCreateResponse:
1055
+ """Mounts"""
1056
+ @abc.abstractmethod
1057
+ def MountPutFile(
1058
+ self,
1059
+ request: modal_proto.api_pb2.MountPutFileRequest,
1060
+ context: grpc.ServicerContext,
1061
+ ) -> modal_proto.api_pb2.MountPutFileResponse: ...
1062
+ @abc.abstractmethod
1063
+ def ProxyCreate(
1064
+ self,
1065
+ request: modal_proto.api_pb2.ProxyCreateRequest,
1066
+ context: grpc.ServicerContext,
1067
+ ) -> modal_proto.api_pb2.ProxyCreateResponse:
1068
+ """Proxies"""
1069
+ @abc.abstractmethod
1070
+ def ProxyDelete(
1071
+ self,
1072
+ request: modal_proto.api_pb2.ProxyDeleteRequest,
1073
+ context: grpc.ServicerContext,
1074
+ ) -> google.protobuf.empty_pb2.Empty: ...
1075
+ @abc.abstractmethod
1076
+ def ProxyGet(
1077
+ self,
1078
+ request: modal_proto.api_pb2.ProxyGetRequest,
1079
+ context: grpc.ServicerContext,
1080
+ ) -> modal_proto.api_pb2.ProxyGetResponse: ...
1081
+ @abc.abstractmethod
1082
+ def ProxyGetOrCreate(
1083
+ self,
1084
+ request: modal_proto.api_pb2.ProxyGetOrCreateRequest,
1085
+ context: grpc.ServicerContext,
1086
+ ) -> modal_proto.api_pb2.ProxyGetOrCreateResponse: ...
1087
+ @abc.abstractmethod
1088
+ def ProxyList(
1089
+ self,
1090
+ request: google.protobuf.empty_pb2.Empty,
1091
+ context: grpc.ServicerContext,
1092
+ ) -> modal_proto.api_pb2.ProxyListResponse: ...
1093
+ @abc.abstractmethod
1094
+ def QueueClear(
1095
+ self,
1096
+ request: modal_proto.api_pb2.QueueClearRequest,
1097
+ context: grpc.ServicerContext,
1098
+ ) -> google.protobuf.empty_pb2.Empty:
1099
+ """Queues"""
1100
+ @abc.abstractmethod
1101
+ def QueueDelete(
1102
+ self,
1103
+ request: modal_proto.api_pb2.QueueDeleteRequest,
1104
+ context: grpc.ServicerContext,
1105
+ ) -> google.protobuf.empty_pb2.Empty: ...
1106
+ @abc.abstractmethod
1107
+ def QueueGet(
1108
+ self,
1109
+ request: modal_proto.api_pb2.QueueGetRequest,
1110
+ context: grpc.ServicerContext,
1111
+ ) -> modal_proto.api_pb2.QueueGetResponse: ...
1112
+ @abc.abstractmethod
1113
+ def QueueGetOrCreate(
1114
+ self,
1115
+ request: modal_proto.api_pb2.QueueGetOrCreateRequest,
1116
+ context: grpc.ServicerContext,
1117
+ ) -> modal_proto.api_pb2.QueueGetOrCreateResponse: ...
1118
+ @abc.abstractmethod
1119
+ def QueueHeartbeat(
1120
+ self,
1121
+ request: modal_proto.api_pb2.QueueHeartbeatRequest,
1122
+ context: grpc.ServicerContext,
1123
+ ) -> google.protobuf.empty_pb2.Empty: ...
1124
+ @abc.abstractmethod
1125
+ def QueueLen(
1126
+ self,
1127
+ request: modal_proto.api_pb2.QueueLenRequest,
1128
+ context: grpc.ServicerContext,
1129
+ ) -> modal_proto.api_pb2.QueueLenResponse: ...
1130
+ @abc.abstractmethod
1131
+ def QueueList(
1132
+ self,
1133
+ request: modal_proto.api_pb2.QueueListRequest,
1134
+ context: grpc.ServicerContext,
1135
+ ) -> modal_proto.api_pb2.QueueListResponse: ...
1136
+ @abc.abstractmethod
1137
+ def QueueNextItems(
1138
+ self,
1139
+ request: modal_proto.api_pb2.QueueNextItemsRequest,
1140
+ context: grpc.ServicerContext,
1141
+ ) -> modal_proto.api_pb2.QueueNextItemsResponse: ...
1142
+ @abc.abstractmethod
1143
+ def QueuePut(
1144
+ self,
1145
+ request: modal_proto.api_pb2.QueuePutRequest,
1146
+ context: grpc.ServicerContext,
1147
+ ) -> google.protobuf.empty_pb2.Empty: ...
1148
+ @abc.abstractmethod
1149
+ def SandboxCreate(
1150
+ self,
1151
+ request: modal_proto.api_pb2.SandboxCreateRequest,
1152
+ context: grpc.ServicerContext,
1153
+ ) -> modal_proto.api_pb2.SandboxCreateResponse:
1154
+ """Sandboxes"""
1155
+ @abc.abstractmethod
1156
+ def SandboxGetLogs(
1157
+ self,
1158
+ request: modal_proto.api_pb2.SandboxGetLogsRequest,
1159
+ context: grpc.ServicerContext,
1160
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.TaskLogsBatch]: ...
1161
+ @abc.abstractmethod
1162
+ def SandboxGetTaskId(
1163
+ self,
1164
+ request: modal_proto.api_pb2.SandboxGetTaskIdRequest,
1165
+ context: grpc.ServicerContext,
1166
+ ) -> modal_proto.api_pb2.SandboxGetTaskIdResponse:
1167
+ """needed for modal container exec"""
1168
+ @abc.abstractmethod
1169
+ def SandboxGetTunnels(
1170
+ self,
1171
+ request: modal_proto.api_pb2.SandboxGetTunnelsRequest,
1172
+ context: grpc.ServicerContext,
1173
+ ) -> modal_proto.api_pb2.SandboxGetTunnelsResponse: ...
1174
+ @abc.abstractmethod
1175
+ def SandboxList(
1176
+ self,
1177
+ request: modal_proto.api_pb2.SandboxListRequest,
1178
+ context: grpc.ServicerContext,
1179
+ ) -> modal_proto.api_pb2.SandboxListResponse: ...
1180
+ @abc.abstractmethod
1181
+ def SandboxSnapshotFs(
1182
+ self,
1183
+ request: modal_proto.api_pb2.SandboxSnapshotFsRequest,
1184
+ context: grpc.ServicerContext,
1185
+ ) -> modal_proto.api_pb2.SandboxSnapshotFsResponse: ...
1186
+ @abc.abstractmethod
1187
+ def SandboxStdinWrite(
1188
+ self,
1189
+ request: modal_proto.api_pb2.SandboxStdinWriteRequest,
1190
+ context: grpc.ServicerContext,
1191
+ ) -> modal_proto.api_pb2.SandboxStdinWriteResponse: ...
1192
+ @abc.abstractmethod
1193
+ def SandboxTagsSet(
1194
+ self,
1195
+ request: modal_proto.api_pb2.SandboxTagsSetRequest,
1196
+ context: grpc.ServicerContext,
1197
+ ) -> google.protobuf.empty_pb2.Empty: ...
1198
+ @abc.abstractmethod
1199
+ def SandboxTerminate(
1200
+ self,
1201
+ request: modal_proto.api_pb2.SandboxTerminateRequest,
1202
+ context: grpc.ServicerContext,
1203
+ ) -> modal_proto.api_pb2.SandboxTerminateResponse: ...
1204
+ @abc.abstractmethod
1205
+ def SandboxWait(
1206
+ self,
1207
+ request: modal_proto.api_pb2.SandboxWaitRequest,
1208
+ context: grpc.ServicerContext,
1209
+ ) -> modal_proto.api_pb2.SandboxWaitResponse: ...
1210
+ @abc.abstractmethod
1211
+ def SecretDelete(
1212
+ self,
1213
+ request: modal_proto.api_pb2.SecretDeleteRequest,
1214
+ context: grpc.ServicerContext,
1215
+ ) -> google.protobuf.empty_pb2.Empty:
1216
+ """Secrets"""
1217
+ @abc.abstractmethod
1218
+ def SecretGetOrCreate(
1219
+ self,
1220
+ request: modal_proto.api_pb2.SecretGetOrCreateRequest,
1221
+ context: grpc.ServicerContext,
1222
+ ) -> modal_proto.api_pb2.SecretGetOrCreateResponse: ...
1223
+ @abc.abstractmethod
1224
+ def SecretList(
1225
+ self,
1226
+ request: modal_proto.api_pb2.SecretListRequest,
1227
+ context: grpc.ServicerContext,
1228
+ ) -> modal_proto.api_pb2.SecretListResponse: ...
1229
+ @abc.abstractmethod
1230
+ def SharedVolumeDelete(
1231
+ self,
1232
+ request: modal_proto.api_pb2.SharedVolumeDeleteRequest,
1233
+ context: grpc.ServicerContext,
1234
+ ) -> google.protobuf.empty_pb2.Empty:
1235
+ """SharedVolumes"""
1236
+ @abc.abstractmethod
1237
+ def SharedVolumeGetFile(
1238
+ self,
1239
+ request: modal_proto.api_pb2.SharedVolumeGetFileRequest,
1240
+ context: grpc.ServicerContext,
1241
+ ) -> modal_proto.api_pb2.SharedVolumeGetFileResponse: ...
1242
+ @abc.abstractmethod
1243
+ def SharedVolumeGetOrCreate(
1244
+ self,
1245
+ request: modal_proto.api_pb2.SharedVolumeGetOrCreateRequest,
1246
+ context: grpc.ServicerContext,
1247
+ ) -> modal_proto.api_pb2.SharedVolumeGetOrCreateResponse: ...
1248
+ @abc.abstractmethod
1249
+ def SharedVolumeHeartbeat(
1250
+ self,
1251
+ request: modal_proto.api_pb2.SharedVolumeHeartbeatRequest,
1252
+ context: grpc.ServicerContext,
1253
+ ) -> google.protobuf.empty_pb2.Empty: ...
1254
+ @abc.abstractmethod
1255
+ def SharedVolumeList(
1256
+ self,
1257
+ request: modal_proto.api_pb2.SharedVolumeListRequest,
1258
+ context: grpc.ServicerContext,
1259
+ ) -> modal_proto.api_pb2.SharedVolumeListResponse: ...
1260
+ @abc.abstractmethod
1261
+ def SharedVolumeListFiles(
1262
+ self,
1263
+ request: modal_proto.api_pb2.SharedVolumeListFilesRequest,
1264
+ context: grpc.ServicerContext,
1265
+ ) -> modal_proto.api_pb2.SharedVolumeListFilesResponse: ...
1266
+ @abc.abstractmethod
1267
+ def SharedVolumeListFilesStream(
1268
+ self,
1269
+ request: modal_proto.api_pb2.SharedVolumeListFilesRequest,
1270
+ context: grpc.ServicerContext,
1271
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.SharedVolumeListFilesResponse]: ...
1272
+ @abc.abstractmethod
1273
+ def SharedVolumePutFile(
1274
+ self,
1275
+ request: modal_proto.api_pb2.SharedVolumePutFileRequest,
1276
+ context: grpc.ServicerContext,
1277
+ ) -> modal_proto.api_pb2.SharedVolumePutFileResponse: ...
1278
+ @abc.abstractmethod
1279
+ def SharedVolumeRemoveFile(
1280
+ self,
1281
+ request: modal_proto.api_pb2.SharedVolumeRemoveFileRequest,
1282
+ context: grpc.ServicerContext,
1283
+ ) -> google.protobuf.empty_pb2.Empty: ...
1284
+ @abc.abstractmethod
1285
+ def TaskClusterHello(
1286
+ self,
1287
+ request: modal_proto.api_pb2.TaskClusterHelloRequest,
1288
+ context: grpc.ServicerContext,
1289
+ ) -> modal_proto.api_pb2.TaskClusterHelloResponse:
1290
+ """Tasks"""
1291
+ @abc.abstractmethod
1292
+ def TaskCurrentInputs(
1293
+ self,
1294
+ request: google.protobuf.empty_pb2.Empty,
1295
+ context: grpc.ServicerContext,
1296
+ ) -> modal_proto.api_pb2.TaskCurrentInputsResponse: ...
1297
+ @abc.abstractmethod
1298
+ def TaskList(
1299
+ self,
1300
+ request: modal_proto.api_pb2.TaskListRequest,
1301
+ context: grpc.ServicerContext,
1302
+ ) -> modal_proto.api_pb2.TaskListResponse: ...
1303
+ @abc.abstractmethod
1304
+ def TaskResult(
1305
+ self,
1306
+ request: modal_proto.api_pb2.TaskResultRequest,
1307
+ context: grpc.ServicerContext,
1308
+ ) -> google.protobuf.empty_pb2.Empty: ...
1309
+ @abc.abstractmethod
1310
+ def TokenFlowCreate(
1311
+ self,
1312
+ request: modal_proto.api_pb2.TokenFlowCreateRequest,
1313
+ context: grpc.ServicerContext,
1314
+ ) -> modal_proto.api_pb2.TokenFlowCreateResponse:
1315
+ """Tokens (web auth flow)"""
1316
+ @abc.abstractmethod
1317
+ def TokenFlowWait(
1318
+ self,
1319
+ request: modal_proto.api_pb2.TokenFlowWaitRequest,
1320
+ context: grpc.ServicerContext,
1321
+ ) -> modal_proto.api_pb2.TokenFlowWaitResponse: ...
1322
+ @abc.abstractmethod
1323
+ def TunnelStart(
1324
+ self,
1325
+ request: modal_proto.api_pb2.TunnelStartRequest,
1326
+ context: grpc.ServicerContext,
1327
+ ) -> modal_proto.api_pb2.TunnelStartResponse:
1328
+ """Tunnels"""
1329
+ @abc.abstractmethod
1330
+ def TunnelStop(
1331
+ self,
1332
+ request: modal_proto.api_pb2.TunnelStopRequest,
1333
+ context: grpc.ServicerContext,
1334
+ ) -> modal_proto.api_pb2.TunnelStopResponse: ...
1335
+ @abc.abstractmethod
1336
+ def VolumeCommit(
1337
+ self,
1338
+ request: modal_proto.api_pb2.VolumeCommitRequest,
1339
+ context: grpc.ServicerContext,
1340
+ ) -> modal_proto.api_pb2.VolumeCommitResponse:
1341
+ """Volumes"""
1342
+ @abc.abstractmethod
1343
+ def VolumeCopyFiles(
1344
+ self,
1345
+ request: modal_proto.api_pb2.VolumeCopyFilesRequest,
1346
+ context: grpc.ServicerContext,
1347
+ ) -> google.protobuf.empty_pb2.Empty: ...
1348
+ @abc.abstractmethod
1349
+ def VolumeDelete(
1350
+ self,
1351
+ request: modal_proto.api_pb2.VolumeDeleteRequest,
1352
+ context: grpc.ServicerContext,
1353
+ ) -> google.protobuf.empty_pb2.Empty: ...
1354
+ @abc.abstractmethod
1355
+ def VolumeGetFile(
1356
+ self,
1357
+ request: modal_proto.api_pb2.VolumeGetFileRequest,
1358
+ context: grpc.ServicerContext,
1359
+ ) -> modal_proto.api_pb2.VolumeGetFileResponse: ...
1360
+ @abc.abstractmethod
1361
+ def VolumeGetOrCreate(
1362
+ self,
1363
+ request: modal_proto.api_pb2.VolumeGetOrCreateRequest,
1364
+ context: grpc.ServicerContext,
1365
+ ) -> modal_proto.api_pb2.VolumeGetOrCreateResponse: ...
1366
+ @abc.abstractmethod
1367
+ def VolumeHeartbeat(
1368
+ self,
1369
+ request: modal_proto.api_pb2.VolumeHeartbeatRequest,
1370
+ context: grpc.ServicerContext,
1371
+ ) -> google.protobuf.empty_pb2.Empty: ...
1372
+ @abc.abstractmethod
1373
+ def VolumeList(
1374
+ self,
1375
+ request: modal_proto.api_pb2.VolumeListRequest,
1376
+ context: grpc.ServicerContext,
1377
+ ) -> modal_proto.api_pb2.VolumeListResponse: ...
1378
+ @abc.abstractmethod
1379
+ def VolumeListFiles(
1380
+ self,
1381
+ request: modal_proto.api_pb2.VolumeListFilesRequest,
1382
+ context: grpc.ServicerContext,
1383
+ ) -> collections.abc.Iterator[modal_proto.api_pb2.VolumeListFilesResponse]: ...
1384
+ @abc.abstractmethod
1385
+ def VolumePutFiles(
1386
+ self,
1387
+ request: modal_proto.api_pb2.VolumePutFilesRequest,
1388
+ context: grpc.ServicerContext,
1389
+ ) -> google.protobuf.empty_pb2.Empty: ...
1390
+ @abc.abstractmethod
1391
+ def VolumeReload(
1392
+ self,
1393
+ request: modal_proto.api_pb2.VolumeReloadRequest,
1394
+ context: grpc.ServicerContext,
1395
+ ) -> google.protobuf.empty_pb2.Empty: ...
1396
+ @abc.abstractmethod
1397
+ def VolumeRemoveFile(
1398
+ self,
1399
+ request: modal_proto.api_pb2.VolumeRemoveFileRequest,
1400
+ context: grpc.ServicerContext,
1401
+ ) -> google.protobuf.empty_pb2.Empty: ...
1402
+ @abc.abstractmethod
1403
+ def VolumeRename(
1404
+ self,
1405
+ request: modal_proto.api_pb2.VolumeRenameRequest,
1406
+ context: grpc.ServicerContext,
1407
+ ) -> google.protobuf.empty_pb2.Empty: ...
1408
+ @abc.abstractmethod
1409
+ def WorkspaceNameLookup(
1410
+ self,
1411
+ request: google.protobuf.empty_pb2.Empty,
1412
+ context: grpc.ServicerContext,
1413
+ ) -> modal_proto.api_pb2.WorkspaceNameLookupResponse:
1414
+ """Workspaces"""
1415
+
1416
+ def add_ModalClientServicer_to_server(servicer: ModalClientServicer, server: grpc.Server) -> None: ...