modal 0.62.16__py3-none-any.whl → 0.72.11__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 +17 -13
  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 +420 -937
  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 -59
  11. modal/_resources.py +51 -0
  12. modal/_runtime/__init__.py +1 -0
  13. modal/_runtime/asgi.py +519 -0
  14. modal/_runtime/container_io_manager.py +1036 -0
  15. modal/_runtime/execution_context.py +89 -0
  16. modal/_runtime/telemetry.py +169 -0
  17. modal/_runtime/user_code_imports.py +356 -0
  18. modal/_serialization.py +134 -9
  19. modal/_traceback.py +47 -187
  20. modal/_tunnel.py +52 -16
  21. modal/_tunnel.pyi +19 -36
  22. modal/_utils/app_utils.py +3 -17
  23. modal/_utils/async_utils.py +479 -100
  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 +460 -171
  29. modal/_utils/grpc_testing.py +47 -31
  30. modal/_utils/grpc_utils.py +62 -109
  31. modal/_utils/hash_utils.py +61 -19
  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 +5 -7
  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 +14 -12
  43. modal/app.py +1003 -314
  44. modal/app.pyi +540 -264
  45. modal/call_graph.py +7 -6
  46. modal/cli/_download.py +63 -53
  47. modal/cli/_traceback.py +200 -0
  48. modal/cli/app.py +205 -45
  49. modal/cli/config.py +12 -5
  50. modal/cli/container.py +62 -14
  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 +64 -58
  55. modal/cli/launch.py +32 -18
  56. modal/cli/network_file_system.py +64 -83
  57. modal/cli/profile.py +1 -1
  58. modal/cli/programs/run_jupyter.py +35 -10
  59. modal/cli/programs/vscode.py +60 -10
  60. modal/cli/queues.py +131 -0
  61. modal/cli/run.py +234 -131
  62. modal/cli/secret.py +8 -7
  63. modal/cli/token.py +7 -2
  64. modal/cli/utils.py +79 -10
  65. modal/cli/volume.py +110 -109
  66. modal/client.py +250 -144
  67. modal/client.pyi +157 -118
  68. modal/cloud_bucket_mount.py +108 -34
  69. modal/cloud_bucket_mount.pyi +32 -38
  70. modal/cls.py +535 -148
  71. modal/cls.pyi +190 -146
  72. modal/config.py +41 -19
  73. modal/container_process.py +177 -0
  74. modal/container_process.pyi +82 -0
  75. modal/dict.py +111 -65
  76. modal/dict.pyi +136 -131
  77. modal/environments.py +106 -5
  78. modal/environments.pyi +77 -25
  79. modal/exception.py +34 -43
  80. modal/experimental.py +61 -2
  81. modal/extensions/ipython.py +5 -5
  82. modal/file_io.py +537 -0
  83. modal/file_io.pyi +235 -0
  84. modal/file_pattern_matcher.py +197 -0
  85. modal/functions.py +906 -911
  86. modal/functions.pyi +466 -430
  87. modal/gpu.py +57 -44
  88. modal/image.py +1089 -479
  89. modal/image.pyi +584 -228
  90. modal/io_streams.py +434 -0
  91. modal/io_streams.pyi +122 -0
  92. modal/mount.py +314 -101
  93. modal/mount.pyi +241 -235
  94. modal/network_file_system.py +92 -92
  95. modal/network_file_system.pyi +152 -110
  96. modal/object.py +67 -36
  97. modal/object.pyi +166 -143
  98. modal/output.py +63 -0
  99. modal/parallel_map.py +434 -0
  100. modal/parallel_map.pyi +75 -0
  101. modal/partial_function.py +282 -117
  102. modal/partial_function.pyi +222 -129
  103. modal/proxy.py +15 -12
  104. modal/proxy.pyi +3 -8
  105. modal/queue.py +182 -65
  106. modal/queue.pyi +218 -118
  107. modal/requirements/2024.04.txt +29 -0
  108. modal/requirements/2024.10.txt +16 -0
  109. modal/requirements/README.md +21 -0
  110. modal/requirements/base-images.json +22 -0
  111. modal/retries.py +48 -7
  112. modal/runner.py +459 -156
  113. modal/runner.pyi +135 -71
  114. modal/running_app.py +38 -0
  115. modal/sandbox.py +514 -236
  116. modal/sandbox.pyi +397 -169
  117. modal/schedule.py +4 -4
  118. modal/scheduler_placement.py +20 -3
  119. modal/secret.py +56 -31
  120. modal/secret.pyi +62 -42
  121. modal/serving.py +51 -56
  122. modal/serving.pyi +44 -36
  123. modal/stream_type.py +15 -0
  124. modal/token_flow.py +5 -3
  125. modal/token_flow.pyi +37 -32
  126. modal/volume.py +285 -157
  127. modal/volume.pyi +249 -184
  128. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/METADATA +7 -7
  129. modal-0.72.11.dist-info/RECORD +174 -0
  130. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/top_level.txt +0 -1
  131. modal_docs/gen_reference_docs.py +3 -1
  132. modal_docs/mdmd/mdmd.py +0 -1
  133. modal_docs/mdmd/signatures.py +5 -2
  134. modal_global_objects/images/base_images.py +28 -0
  135. modal_global_objects/mounts/python_standalone.py +2 -2
  136. modal_proto/__init__.py +1 -1
  137. modal_proto/api.proto +1288 -533
  138. modal_proto/api_grpc.py +856 -456
  139. modal_proto/api_pb2.py +2165 -1157
  140. modal_proto/api_pb2.pyi +8859 -0
  141. modal_proto/api_pb2_grpc.py +1674 -855
  142. modal_proto/api_pb2_grpc.pyi +1416 -0
  143. modal_proto/modal_api_grpc.py +149 -0
  144. modal_proto/modal_options_grpc.py +3 -0
  145. modal_proto/options_pb2.pyi +20 -0
  146. modal_proto/options_pb2_grpc.pyi +7 -0
  147. modal_proto/py.typed +0 -0
  148. modal_version/__init__.py +1 -1
  149. modal_version/_version_generated.py +2 -2
  150. modal/_asgi.py +0 -370
  151. modal/_container_entrypoint.pyi +0 -378
  152. modal/_container_exec.py +0 -128
  153. modal/_sandbox_shell.py +0 -49
  154. modal/shared_volume.py +0 -23
  155. modal/shared_volume.pyi +0 -24
  156. modal/stub.py +0 -783
  157. modal/stub.pyi +0 -332
  158. modal-0.62.16.dist-info/RECORD +0 -198
  159. modal_global_objects/images/conda.py +0 -15
  160. modal_global_objects/images/debian_slim.py +0 -15
  161. modal_global_objects/images/micromamba.py +0 -15
  162. test/__init__.py +0 -1
  163. test/aio_test.py +0 -12
  164. test/async_utils_test.py +0 -262
  165. test/blob_test.py +0 -67
  166. test/cli_imports_test.py +0 -149
  167. test/cli_test.py +0 -659
  168. test/client_test.py +0 -194
  169. test/cls_test.py +0 -630
  170. test/config_test.py +0 -137
  171. test/conftest.py +0 -1420
  172. test/container_app_test.py +0 -32
  173. test/container_test.py +0 -1389
  174. test/cpu_test.py +0 -23
  175. test/decorator_test.py +0 -85
  176. test/deprecation_test.py +0 -34
  177. test/dict_test.py +0 -33
  178. test/e2e_test.py +0 -68
  179. test/error_test.py +0 -7
  180. test/function_serialization_test.py +0 -32
  181. test/function_test.py +0 -653
  182. test/function_utils_test.py +0 -101
  183. test/gpu_test.py +0 -159
  184. test/grpc_utils_test.py +0 -141
  185. test/helpers.py +0 -42
  186. test/image_test.py +0 -669
  187. test/live_reload_test.py +0 -80
  188. test/lookup_test.py +0 -70
  189. test/mdmd_test.py +0 -329
  190. test/mount_test.py +0 -162
  191. test/mounted_files_test.py +0 -329
  192. test/network_file_system_test.py +0 -181
  193. test/notebook_test.py +0 -66
  194. test/object_test.py +0 -41
  195. test/package_utils_test.py +0 -25
  196. test/queue_test.py +0 -97
  197. test/resolver_test.py +0 -58
  198. test/retries_test.py +0 -67
  199. test/runner_test.py +0 -85
  200. test/sandbox_test.py +0 -191
  201. test/schedule_test.py +0 -15
  202. test/scheduler_placement_test.py +0 -29
  203. test/secret_test.py +0 -78
  204. test/serialization_test.py +0 -42
  205. test/stub_composition_test.py +0 -10
  206. test/stub_test.py +0 -360
  207. test/test_asgi_wrapper.py +0 -234
  208. test/token_flow_test.py +0 -18
  209. test/traceback_test.py +0 -135
  210. test/tunnel_test.py +0 -29
  211. test/utils_test.py +0 -88
  212. test/version_test.py +0 -14
  213. test/volume_test.py +0 -341
  214. test/watcher_test.py +0 -30
  215. test/webhook_test.py +0 -146
  216. /modal/{requirements.312.txt → requirements/2023.12.312.txt} +0 -0
  217. /modal/{requirements.txt → requirements/2023.12.txt} +0 -0
  218. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/LICENSE +0 -0
  219. {modal-0.62.16.dist-info → modal-0.72.11.dist-info}/WHEEL +0 -0
  220. {modal-0.62.16.dist-info → modal-0.72.11.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: ...