modal 0.73.165__tar.gz → 0.73.166__tar.gz

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 (184) hide show
  1. {modal-0.73.165 → modal-0.73.166}/PKG-INFO +1 -1
  2. {modal-0.73.165 → modal-0.73.166}/modal/client.pyi +2 -2
  3. {modal-0.73.165 → modal-0.73.166}/modal/functions.pyi +6 -6
  4. {modal-0.73.165 → modal-0.73.166}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-0.73.165 → modal-0.73.166}/modal_proto/api.proto +27 -0
  6. {modal-0.73.165 → modal-0.73.166}/modal_proto/api_grpc.py +32 -0
  7. {modal-0.73.165 → modal-0.73.166}/modal_proto/api_pb2.py +761 -711
  8. {modal-0.73.165 → modal-0.73.166}/modal_proto/api_pb2.pyi +84 -0
  9. {modal-0.73.165 → modal-0.73.166}/modal_proto/api_pb2_grpc.py +67 -0
  10. {modal-0.73.165 → modal-0.73.166}/modal_proto/api_pb2_grpc.pyi +22 -0
  11. {modal-0.73.165 → modal-0.73.166}/modal_proto/modal_api_grpc.py +2 -0
  12. {modal-0.73.165 → modal-0.73.166}/modal_version/_version_generated.py +1 -1
  13. {modal-0.73.165 → modal-0.73.166}/LICENSE +0 -0
  14. {modal-0.73.165 → modal-0.73.166}/README.md +0 -0
  15. {modal-0.73.165 → modal-0.73.166}/modal/__init__.py +0 -0
  16. {modal-0.73.165 → modal-0.73.166}/modal/__main__.py +0 -0
  17. {modal-0.73.165 → modal-0.73.166}/modal/_clustered_functions.py +0 -0
  18. {modal-0.73.165 → modal-0.73.166}/modal/_clustered_functions.pyi +0 -0
  19. {modal-0.73.165 → modal-0.73.166}/modal/_container_entrypoint.py +0 -0
  20. {modal-0.73.165 → modal-0.73.166}/modal/_functions.py +0 -0
  21. {modal-0.73.165 → modal-0.73.166}/modal/_ipython.py +0 -0
  22. {modal-0.73.165 → modal-0.73.166}/modal/_location.py +0 -0
  23. {modal-0.73.165 → modal-0.73.166}/modal/_object.py +0 -0
  24. {modal-0.73.165 → modal-0.73.166}/modal/_output.py +0 -0
  25. {modal-0.73.165 → modal-0.73.166}/modal/_partial_function.py +0 -0
  26. {modal-0.73.165 → modal-0.73.166}/modal/_proxy_tunnel.py +0 -0
  27. {modal-0.73.165 → modal-0.73.166}/modal/_pty.py +0 -0
  28. {modal-0.73.165 → modal-0.73.166}/modal/_resolver.py +0 -0
  29. {modal-0.73.165 → modal-0.73.166}/modal/_resources.py +0 -0
  30. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/__init__.py +0 -0
  31. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/asgi.py +0 -0
  32. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/container_io_manager.py +0 -0
  33. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/container_io_manager.pyi +0 -0
  34. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/execution_context.py +0 -0
  35. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/execution_context.pyi +0 -0
  36. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  37. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/telemetry.py +0 -0
  38. {modal-0.73.165 → modal-0.73.166}/modal/_runtime/user_code_imports.py +0 -0
  39. {modal-0.73.165 → modal-0.73.166}/modal/_serialization.py +0 -0
  40. {modal-0.73.165 → modal-0.73.166}/modal/_traceback.py +0 -0
  41. {modal-0.73.165 → modal-0.73.166}/modal/_tunnel.py +0 -0
  42. {modal-0.73.165 → modal-0.73.166}/modal/_tunnel.pyi +0 -0
  43. {modal-0.73.165 → modal-0.73.166}/modal/_type_manager.py +0 -0
  44. {modal-0.73.165 → modal-0.73.166}/modal/_utils/__init__.py +0 -0
  45. {modal-0.73.165 → modal-0.73.166}/modal/_utils/app_utils.py +0 -0
  46. {modal-0.73.165 → modal-0.73.166}/modal/_utils/async_utils.py +0 -0
  47. {modal-0.73.165 → modal-0.73.166}/modal/_utils/blob_utils.py +0 -0
  48. {modal-0.73.165 → modal-0.73.166}/modal/_utils/bytes_io_segment_payload.py +0 -0
  49. {modal-0.73.165 → modal-0.73.166}/modal/_utils/deprecation.py +0 -0
  50. {modal-0.73.165 → modal-0.73.166}/modal/_utils/docker_utils.py +0 -0
  51. {modal-0.73.165 → modal-0.73.166}/modal/_utils/function_utils.py +0 -0
  52. {modal-0.73.165 → modal-0.73.166}/modal/_utils/git_utils.py +0 -0
  53. {modal-0.73.165 → modal-0.73.166}/modal/_utils/grpc_testing.py +0 -0
  54. {modal-0.73.165 → modal-0.73.166}/modal/_utils/grpc_utils.py +0 -0
  55. {modal-0.73.165 → modal-0.73.166}/modal/_utils/hash_utils.py +0 -0
  56. {modal-0.73.165 → modal-0.73.166}/modal/_utils/http_utils.py +0 -0
  57. {modal-0.73.165 → modal-0.73.166}/modal/_utils/jwt_utils.py +0 -0
  58. {modal-0.73.165 → modal-0.73.166}/modal/_utils/logger.py +0 -0
  59. {modal-0.73.165 → modal-0.73.166}/modal/_utils/mount_utils.py +0 -0
  60. {modal-0.73.165 → modal-0.73.166}/modal/_utils/name_utils.py +0 -0
  61. {modal-0.73.165 → modal-0.73.166}/modal/_utils/package_utils.py +0 -0
  62. {modal-0.73.165 → modal-0.73.166}/modal/_utils/pattern_utils.py +0 -0
  63. {modal-0.73.165 → modal-0.73.166}/modal/_utils/rand_pb_testing.py +0 -0
  64. {modal-0.73.165 → modal-0.73.166}/modal/_utils/shell_utils.py +0 -0
  65. {modal-0.73.165 → modal-0.73.166}/modal/_vendor/__init__.py +0 -0
  66. {modal-0.73.165 → modal-0.73.166}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  67. {modal-0.73.165 → modal-0.73.166}/modal/_vendor/cloudpickle.py +0 -0
  68. {modal-0.73.165 → modal-0.73.166}/modal/_vendor/tblib.py +0 -0
  69. {modal-0.73.165 → modal-0.73.166}/modal/_watcher.py +0 -0
  70. {modal-0.73.165 → modal-0.73.166}/modal/app.py +0 -0
  71. {modal-0.73.165 → modal-0.73.166}/modal/app.pyi +0 -0
  72. {modal-0.73.165 → modal-0.73.166}/modal/call_graph.py +0 -0
  73. {modal-0.73.165 → modal-0.73.166}/modal/cli/__init__.py +0 -0
  74. {modal-0.73.165 → modal-0.73.166}/modal/cli/_download.py +0 -0
  75. {modal-0.73.165 → modal-0.73.166}/modal/cli/_traceback.py +0 -0
  76. {modal-0.73.165 → modal-0.73.166}/modal/cli/app.py +0 -0
  77. {modal-0.73.165 → modal-0.73.166}/modal/cli/config.py +0 -0
  78. {modal-0.73.165 → modal-0.73.166}/modal/cli/container.py +0 -0
  79. {modal-0.73.165 → modal-0.73.166}/modal/cli/dict.py +0 -0
  80. {modal-0.73.165 → modal-0.73.166}/modal/cli/entry_point.py +0 -0
  81. {modal-0.73.165 → modal-0.73.166}/modal/cli/environment.py +0 -0
  82. {modal-0.73.165 → modal-0.73.166}/modal/cli/import_refs.py +0 -0
  83. {modal-0.73.165 → modal-0.73.166}/modal/cli/launch.py +0 -0
  84. {modal-0.73.165 → modal-0.73.166}/modal/cli/network_file_system.py +0 -0
  85. {modal-0.73.165 → modal-0.73.166}/modal/cli/profile.py +0 -0
  86. {modal-0.73.165 → modal-0.73.166}/modal/cli/programs/__init__.py +0 -0
  87. {modal-0.73.165 → modal-0.73.166}/modal/cli/programs/run_jupyter.py +0 -0
  88. {modal-0.73.165 → modal-0.73.166}/modal/cli/programs/vscode.py +0 -0
  89. {modal-0.73.165 → modal-0.73.166}/modal/cli/queues.py +0 -0
  90. {modal-0.73.165 → modal-0.73.166}/modal/cli/run.py +0 -0
  91. {modal-0.73.165 → modal-0.73.166}/modal/cli/secret.py +0 -0
  92. {modal-0.73.165 → modal-0.73.166}/modal/cli/token.py +0 -0
  93. {modal-0.73.165 → modal-0.73.166}/modal/cli/utils.py +0 -0
  94. {modal-0.73.165 → modal-0.73.166}/modal/cli/volume.py +0 -0
  95. {modal-0.73.165 → modal-0.73.166}/modal/client.py +0 -0
  96. {modal-0.73.165 → modal-0.73.166}/modal/cloud_bucket_mount.py +0 -0
  97. {modal-0.73.165 → modal-0.73.166}/modal/cloud_bucket_mount.pyi +0 -0
  98. {modal-0.73.165 → modal-0.73.166}/modal/cls.py +0 -0
  99. {modal-0.73.165 → modal-0.73.166}/modal/cls.pyi +0 -0
  100. {modal-0.73.165 → modal-0.73.166}/modal/config.py +0 -0
  101. {modal-0.73.165 → modal-0.73.166}/modal/container_process.py +0 -0
  102. {modal-0.73.165 → modal-0.73.166}/modal/container_process.pyi +0 -0
  103. {modal-0.73.165 → modal-0.73.166}/modal/dict.py +0 -0
  104. {modal-0.73.165 → modal-0.73.166}/modal/dict.pyi +0 -0
  105. {modal-0.73.165 → modal-0.73.166}/modal/environments.py +0 -0
  106. {modal-0.73.165 → modal-0.73.166}/modal/environments.pyi +0 -0
  107. {modal-0.73.165 → modal-0.73.166}/modal/exception.py +0 -0
  108. {modal-0.73.165 → modal-0.73.166}/modal/experimental/__init__.py +0 -0
  109. {modal-0.73.165 → modal-0.73.166}/modal/experimental/ipython.py +0 -0
  110. {modal-0.73.165 → modal-0.73.166}/modal/file_io.py +0 -0
  111. {modal-0.73.165 → modal-0.73.166}/modal/file_io.pyi +0 -0
  112. {modal-0.73.165 → modal-0.73.166}/modal/file_pattern_matcher.py +0 -0
  113. {modal-0.73.165 → modal-0.73.166}/modal/functions.py +0 -0
  114. {modal-0.73.165 → modal-0.73.166}/modal/gpu.py +0 -0
  115. {modal-0.73.165 → modal-0.73.166}/modal/image.py +0 -0
  116. {modal-0.73.165 → modal-0.73.166}/modal/image.pyi +0 -0
  117. {modal-0.73.165 → modal-0.73.166}/modal/io_streams.py +0 -0
  118. {modal-0.73.165 → modal-0.73.166}/modal/io_streams.pyi +0 -0
  119. {modal-0.73.165 → modal-0.73.166}/modal/mount.py +0 -0
  120. {modal-0.73.165 → modal-0.73.166}/modal/mount.pyi +0 -0
  121. {modal-0.73.165 → modal-0.73.166}/modal/network_file_system.py +0 -0
  122. {modal-0.73.165 → modal-0.73.166}/modal/network_file_system.pyi +0 -0
  123. {modal-0.73.165 → modal-0.73.166}/modal/object.py +0 -0
  124. {modal-0.73.165 → modal-0.73.166}/modal/object.pyi +0 -0
  125. {modal-0.73.165 → modal-0.73.166}/modal/output.py +0 -0
  126. {modal-0.73.165 → modal-0.73.166}/modal/parallel_map.py +0 -0
  127. {modal-0.73.165 → modal-0.73.166}/modal/parallel_map.pyi +0 -0
  128. {modal-0.73.165 → modal-0.73.166}/modal/partial_function.py +0 -0
  129. {modal-0.73.165 → modal-0.73.166}/modal/partial_function.pyi +0 -0
  130. {modal-0.73.165 → modal-0.73.166}/modal/proxy.py +0 -0
  131. {modal-0.73.165 → modal-0.73.166}/modal/proxy.pyi +0 -0
  132. {modal-0.73.165 → modal-0.73.166}/modal/py.typed +0 -0
  133. {modal-0.73.165 → modal-0.73.166}/modal/queue.py +0 -0
  134. {modal-0.73.165 → modal-0.73.166}/modal/queue.pyi +0 -0
  135. {modal-0.73.165 → modal-0.73.166}/modal/requirements/2023.12.312.txt +0 -0
  136. {modal-0.73.165 → modal-0.73.166}/modal/requirements/2023.12.txt +0 -0
  137. {modal-0.73.165 → modal-0.73.166}/modal/requirements/2024.04.txt +0 -0
  138. {modal-0.73.165 → modal-0.73.166}/modal/requirements/2024.10.txt +0 -0
  139. {modal-0.73.165 → modal-0.73.166}/modal/requirements/PREVIEW.txt +0 -0
  140. {modal-0.73.165 → modal-0.73.166}/modal/requirements/README.md +0 -0
  141. {modal-0.73.165 → modal-0.73.166}/modal/requirements/base-images.json +0 -0
  142. {modal-0.73.165 → modal-0.73.166}/modal/retries.py +0 -0
  143. {modal-0.73.165 → modal-0.73.166}/modal/runner.py +0 -0
  144. {modal-0.73.165 → modal-0.73.166}/modal/runner.pyi +0 -0
  145. {modal-0.73.165 → modal-0.73.166}/modal/running_app.py +0 -0
  146. {modal-0.73.165 → modal-0.73.166}/modal/sandbox.py +0 -0
  147. {modal-0.73.165 → modal-0.73.166}/modal/sandbox.pyi +0 -0
  148. {modal-0.73.165 → modal-0.73.166}/modal/schedule.py +0 -0
  149. {modal-0.73.165 → modal-0.73.166}/modal/scheduler_placement.py +0 -0
  150. {modal-0.73.165 → modal-0.73.166}/modal/secret.py +0 -0
  151. {modal-0.73.165 → modal-0.73.166}/modal/secret.pyi +0 -0
  152. {modal-0.73.165 → modal-0.73.166}/modal/serving.py +0 -0
  153. {modal-0.73.165 → modal-0.73.166}/modal/serving.pyi +0 -0
  154. {modal-0.73.165 → modal-0.73.166}/modal/snapshot.py +0 -0
  155. {modal-0.73.165 → modal-0.73.166}/modal/snapshot.pyi +0 -0
  156. {modal-0.73.165 → modal-0.73.166}/modal/stream_type.py +0 -0
  157. {modal-0.73.165 → modal-0.73.166}/modal/token_flow.py +0 -0
  158. {modal-0.73.165 → modal-0.73.166}/modal/token_flow.pyi +0 -0
  159. {modal-0.73.165 → modal-0.73.166}/modal/volume.py +0 -0
  160. {modal-0.73.165 → modal-0.73.166}/modal/volume.pyi +0 -0
  161. {modal-0.73.165 → modal-0.73.166}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-0.73.165 → modal-0.73.166}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-0.73.165 → modal-0.73.166}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-0.73.165 → modal-0.73.166}/modal.egg-info/requires.txt +0 -0
  165. {modal-0.73.165 → modal-0.73.166}/modal.egg-info/top_level.txt +0 -0
  166. {modal-0.73.165 → modal-0.73.166}/modal_docs/__init__.py +0 -0
  167. {modal-0.73.165 → modal-0.73.166}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-0.73.165 → modal-0.73.166}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-0.73.165 → modal-0.73.166}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-0.73.165 → modal-0.73.166}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-0.73.165 → modal-0.73.166}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-0.73.165 → modal-0.73.166}/modal_proto/__init__.py +0 -0
  173. {modal-0.73.165 → modal-0.73.166}/modal_proto/modal_options_grpc.py +0 -0
  174. {modal-0.73.165 → modal-0.73.166}/modal_proto/options.proto +0 -0
  175. {modal-0.73.165 → modal-0.73.166}/modal_proto/options_grpc.py +0 -0
  176. {modal-0.73.165 → modal-0.73.166}/modal_proto/options_pb2.py +0 -0
  177. {modal-0.73.165 → modal-0.73.166}/modal_proto/options_pb2.pyi +0 -0
  178. {modal-0.73.165 → modal-0.73.166}/modal_proto/options_pb2_grpc.py +0 -0
  179. {modal-0.73.165 → modal-0.73.166}/modal_proto/options_pb2_grpc.pyi +0 -0
  180. {modal-0.73.165 → modal-0.73.166}/modal_proto/py.typed +0 -0
  181. {modal-0.73.165 → modal-0.73.166}/modal_version/__init__.py +0 -0
  182. {modal-0.73.165 → modal-0.73.166}/modal_version/__main__.py +0 -0
  183. {modal-0.73.165 → modal-0.73.166}/pyproject.toml +0 -0
  184. {modal-0.73.165 → modal-0.73.166}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.73.165
3
+ Version: 0.73.166
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -31,7 +31,7 @@ class _Client:
31
31
  server_url: str,
32
32
  client_type: int,
33
33
  credentials: typing.Optional[tuple[str, str]],
34
- version: str = "0.73.165",
34
+ version: str = "0.73.166",
35
35
  ): ...
36
36
  def is_closed(self) -> bool: ...
37
37
  @property
@@ -93,7 +93,7 @@ class Client:
93
93
  server_url: str,
94
94
  client_type: int,
95
95
  credentials: typing.Optional[tuple[str, str]],
96
- version: str = "0.73.165",
96
+ version: str = "0.73.166",
97
97
  ): ...
98
98
  def is_closed(self) -> bool: ...
99
99
  @property
@@ -200,11 +200,11 @@ class Function(
200
200
 
201
201
  _call_generator_nowait: ___call_generator_nowait_spec[typing_extensions.Self]
202
202
 
203
- class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
203
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
204
204
  def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
205
205
  async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER: ...
206
206
 
207
- remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
207
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
208
208
 
209
209
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
210
210
  def __call__(self, *args, **kwargs) -> typing.Generator[typing.Any, None, None]: ...
@@ -219,19 +219,19 @@ class Function(
219
219
  self, *args: modal._functions.P.args, **kwargs: modal._functions.P.kwargs
220
220
  ) -> modal._functions.OriginalReturnType: ...
221
221
 
222
- class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
222
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
223
223
  def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
224
224
  async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
225
225
 
226
226
  _experimental_spawn: ___experimental_spawn_spec[
227
- modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
227
+ modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
228
228
  ]
229
229
 
230
- class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
230
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
231
231
  def __call__(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
232
232
  async def aio(self, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]: ...
233
233
 
234
- spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
234
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
235
235
 
236
236
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]: ...
237
237
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.73.165
3
+ Version: 0.73.166
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -757,6 +757,29 @@ message CloudBucketMount {
757
757
  optional string oidc_auth_role_arn = 9;
758
758
  }
759
759
 
760
+ message ClusterGetRequest {
761
+ string cluster_id = 1;
762
+ }
763
+
764
+ message ClusterGetResponse {
765
+ ClusterStats cluster = 1;
766
+ }
767
+
768
+ message ClusterListRequest {
769
+ string environment_name = 1;
770
+ }
771
+
772
+ message ClusterListResponse {
773
+ repeated ClusterStats clusters = 1;
774
+ }
775
+
776
+ message ClusterStats {
777
+ string app_id = 1;
778
+ repeated string task_ids = 2;
779
+ string region = 3;
780
+ double started_at = 4; // Defined as start time of the first task in the cluster
781
+ }
782
+
760
783
  message CommitInfo {
761
784
  string vcs = 1; // Only git is supported for now
762
785
  string branch = 2;
@@ -3052,6 +3075,10 @@ service ModalClient {
3052
3075
  // Clients
3053
3076
  rpc ClientHello(google.protobuf.Empty) returns (ClientHelloResponse);
3054
3077
 
3078
+ // Clusters
3079
+ rpc ClusterGet(ClusterGetRequest) returns (ClusterGetResponse);
3080
+ rpc ClusterList(ClusterListRequest) returns (ClusterListResponse);
3081
+
3055
3082
  // Container
3056
3083
  rpc ContainerCheckpoint(ContainerCheckpointRequest) returns (google.protobuf.Empty);
3057
3084
  rpc ContainerExec(ContainerExecRequest) returns (ContainerExecResponse);
@@ -102,6 +102,14 @@ class ModalClientBase(abc.ABC):
102
102
  async def ClientHello(self, stream: 'grpclib.server.Stream[google.protobuf.empty_pb2.Empty, modal_proto.api_pb2.ClientHelloResponse]') -> None:
103
103
  pass
104
104
 
105
+ @abc.abstractmethod
106
+ async def ClusterGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ClusterGetRequest, modal_proto.api_pb2.ClusterGetResponse]') -> None:
107
+ pass
108
+
109
+ @abc.abstractmethod
110
+ async def ClusterList(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ClusterListRequest, modal_proto.api_pb2.ClusterListResponse]') -> None:
111
+ pass
112
+
105
113
  @abc.abstractmethod
106
114
  async def ContainerCheckpoint(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ContainerCheckpointRequest, google.protobuf.empty_pb2.Empty]') -> None:
107
115
  pass
@@ -722,6 +730,18 @@ class ModalClientBase(abc.ABC):
722
730
  google.protobuf.empty_pb2.Empty,
723
731
  modal_proto.api_pb2.ClientHelloResponse,
724
732
  ),
733
+ '/modal.client.ModalClient/ClusterGet': grpclib.const.Handler(
734
+ self.ClusterGet,
735
+ grpclib.const.Cardinality.UNARY_UNARY,
736
+ modal_proto.api_pb2.ClusterGetRequest,
737
+ modal_proto.api_pb2.ClusterGetResponse,
738
+ ),
739
+ '/modal.client.ModalClient/ClusterList': grpclib.const.Handler(
740
+ self.ClusterList,
741
+ grpclib.const.Cardinality.UNARY_UNARY,
742
+ modal_proto.api_pb2.ClusterListRequest,
743
+ modal_proto.api_pb2.ClusterListResponse,
744
+ ),
725
745
  '/modal.client.ModalClient/ContainerCheckpoint': grpclib.const.Handler(
726
746
  self.ContainerCheckpoint,
727
747
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -1592,6 +1612,18 @@ class ModalClientStub:
1592
1612
  google.protobuf.empty_pb2.Empty,
1593
1613
  modal_proto.api_pb2.ClientHelloResponse,
1594
1614
  )
1615
+ self.ClusterGet = grpclib.client.UnaryUnaryMethod(
1616
+ channel,
1617
+ '/modal.client.ModalClient/ClusterGet',
1618
+ modal_proto.api_pb2.ClusterGetRequest,
1619
+ modal_proto.api_pb2.ClusterGetResponse,
1620
+ )
1621
+ self.ClusterList = grpclib.client.UnaryUnaryMethod(
1622
+ channel,
1623
+ '/modal.client.ModalClient/ClusterList',
1624
+ modal_proto.api_pb2.ClusterListRequest,
1625
+ modal_proto.api_pb2.ClusterListResponse,
1626
+ )
1595
1627
  self.ContainerCheckpoint = grpclib.client.UnaryUnaryMethod(
1596
1628
  channel,
1597
1629
  '/modal.client.ModalClient/ContainerCheckpoint',