modal 1.1.5.dev28__tar.gz → 1.1.5.dev29__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.

Potentially problematic release.


This version of modal might be problematic. Click here for more details.

Files changed (190) hide show
  1. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/PKG-INFO +1 -1
  2. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/client.pyi +2 -2
  3. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal.egg-info/PKG-INFO +1 -1
  4. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/api.proto +9 -0
  5. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/api_grpc.py +16 -0
  6. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/api_pb2.py +279 -259
  7. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/api_pb2.pyi +29 -0
  8. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/api_pb2_grpc.py +33 -0
  9. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/api_pb2_grpc.pyi +10 -0
  10. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/modal_api_grpc.py +1 -0
  11. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_version/__init__.py +1 -1
  12. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/LICENSE +0 -0
  13. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/README.md +0 -0
  14. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/__init__.py +0 -0
  15. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/__main__.py +0 -0
  16. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_clustered_functions.py +0 -0
  17. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_clustered_functions.pyi +0 -0
  18. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_container_entrypoint.py +0 -0
  19. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_functions.py +0 -0
  20. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_ipython.py +0 -0
  21. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_location.py +0 -0
  22. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_object.py +0 -0
  23. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_output.py +0 -0
  24. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_partial_function.py +0 -0
  25. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_pty.py +0 -0
  26. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_resolver.py +0 -0
  27. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_resources.py +0 -0
  28. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/__init__.py +0 -0
  29. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/asgi.py +0 -0
  30. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/container_io_manager.py +0 -0
  31. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/container_io_manager.pyi +0 -0
  32. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/execution_context.py +0 -0
  33. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/execution_context.pyi +0 -0
  34. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  35. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/telemetry.py +0 -0
  36. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_runtime/user_code_imports.py +0 -0
  37. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_serialization.py +0 -0
  38. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_traceback.py +0 -0
  39. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_tunnel.py +0 -0
  40. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_tunnel.pyi +0 -0
  41. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_type_manager.py +0 -0
  42. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/__init__.py +0 -0
  43. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/app_utils.py +0 -0
  44. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/async_utils.py +0 -0
  45. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/auth_token_manager.py +0 -0
  46. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/blob_utils.py +0 -0
  47. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/bytes_io_segment_payload.py +0 -0
  48. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/deprecation.py +0 -0
  49. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/docker_utils.py +0 -0
  50. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/function_utils.py +0 -0
  51. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/git_utils.py +0 -0
  52. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/grpc_testing.py +0 -0
  53. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/grpc_utils.py +0 -0
  54. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/hash_utils.py +0 -0
  55. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/http_utils.py +0 -0
  56. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/jwt_utils.py +0 -0
  57. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/logger.py +0 -0
  58. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/mount_utils.py +0 -0
  59. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/name_utils.py +0 -0
  60. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/package_utils.py +0 -0
  61. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/pattern_utils.py +0 -0
  62. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/rand_pb_testing.py +0 -0
  63. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/shell_utils.py +0 -0
  64. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_utils/time_utils.py +0 -0
  65. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_vendor/__init__.py +0 -0
  66. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  67. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_vendor/cloudpickle.py +0 -0
  68. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_vendor/tblib.py +0 -0
  69. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/_watcher.py +0 -0
  70. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/app.py +0 -0
  71. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/app.pyi +0 -0
  72. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/2023.12.312.txt +0 -0
  73. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/2023.12.txt +0 -0
  74. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/2024.04.txt +0 -0
  75. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/2024.10.txt +0 -0
  76. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/2025.06.txt +0 -0
  77. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/PREVIEW.txt +0 -0
  78. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/README.md +0 -0
  79. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/builder/base-images.json +0 -0
  80. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/call_graph.py +0 -0
  81. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/__init__.py +0 -0
  82. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/_download.py +0 -0
  83. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/_traceback.py +0 -0
  84. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/app.py +0 -0
  85. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/cluster.py +0 -0
  86. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/config.py +0 -0
  87. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/container.py +0 -0
  88. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/dict.py +0 -0
  89. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/entry_point.py +0 -0
  90. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/environment.py +0 -0
  91. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/import_refs.py +0 -0
  92. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/launch.py +0 -0
  93. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/network_file_system.py +0 -0
  94. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/profile.py +0 -0
  95. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/programs/__init__.py +0 -0
  96. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/programs/launch_instance_ssh.py +0 -0
  97. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/programs/run_jupyter.py +0 -0
  98. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/programs/run_marimo.py +0 -0
  99. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/programs/vscode.py +0 -0
  100. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/queues.py +0 -0
  101. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/run.py +0 -0
  102. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/secret.py +0 -0
  103. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/token.py +0 -0
  104. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/utils.py +0 -0
  105. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cli/volume.py +0 -0
  106. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/client.py +0 -0
  107. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cloud_bucket_mount.py +0 -0
  108. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cloud_bucket_mount.pyi +0 -0
  109. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cls.py +0 -0
  110. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/cls.pyi +0 -0
  111. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/config.py +0 -0
  112. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/container_process.py +0 -0
  113. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/container_process.pyi +0 -0
  114. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/dict.py +0 -0
  115. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/dict.pyi +0 -0
  116. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/environments.py +0 -0
  117. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/environments.pyi +0 -0
  118. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/exception.py +0 -0
  119. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/experimental/__init__.py +0 -0
  120. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/experimental/flash.py +0 -0
  121. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/experimental/flash.pyi +0 -0
  122. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/experimental/ipython.py +0 -0
  123. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/file_io.py +0 -0
  124. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/file_io.pyi +0 -0
  125. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/file_pattern_matcher.py +0 -0
  126. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/functions.py +0 -0
  127. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/functions.pyi +0 -0
  128. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/gpu.py +0 -0
  129. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/image.py +0 -0
  130. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/image.pyi +0 -0
  131. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/io_streams.py +0 -0
  132. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/io_streams.pyi +0 -0
  133. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/mount.py +0 -0
  134. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/mount.pyi +0 -0
  135. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/network_file_system.py +0 -0
  136. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/network_file_system.pyi +0 -0
  137. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/object.py +0 -0
  138. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/object.pyi +0 -0
  139. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/output.py +0 -0
  140. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/parallel_map.py +0 -0
  141. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/parallel_map.pyi +0 -0
  142. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/partial_function.py +0 -0
  143. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/partial_function.pyi +0 -0
  144. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/proxy.py +0 -0
  145. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/proxy.pyi +0 -0
  146. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/py.typed +0 -0
  147. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/queue.py +0 -0
  148. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/queue.pyi +0 -0
  149. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/retries.py +0 -0
  150. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/runner.py +0 -0
  151. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/runner.pyi +0 -0
  152. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/running_app.py +0 -0
  153. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/sandbox.py +0 -0
  154. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/sandbox.pyi +0 -0
  155. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/schedule.py +0 -0
  156. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/scheduler_placement.py +0 -0
  157. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/secret.py +0 -0
  158. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/secret.pyi +0 -0
  159. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/serving.py +0 -0
  160. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/serving.pyi +0 -0
  161. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/snapshot.py +0 -0
  162. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/snapshot.pyi +0 -0
  163. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/stream_type.py +0 -0
  164. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/token_flow.py +0 -0
  165. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/token_flow.pyi +0 -0
  166. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/volume.py +0 -0
  167. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal/volume.pyi +0 -0
  168. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal.egg-info/SOURCES.txt +0 -0
  169. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal.egg-info/dependency_links.txt +0 -0
  170. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal.egg-info/entry_points.txt +0 -0
  171. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal.egg-info/requires.txt +0 -0
  172. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal.egg-info/top_level.txt +0 -0
  173. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_docs/__init__.py +0 -0
  174. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_docs/gen_cli_docs.py +0 -0
  175. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_docs/gen_reference_docs.py +0 -0
  176. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_docs/mdmd/__init__.py +0 -0
  177. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_docs/mdmd/mdmd.py +0 -0
  178. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_docs/mdmd/signatures.py +0 -0
  179. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/__init__.py +0 -0
  180. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/options.proto +0 -0
  182. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_proto/py.typed +0 -0
  188. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/modal_version/__main__.py +0 -0
  189. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/pyproject.toml +0 -0
  190. {modal-1.1.5.dev28 → modal-1.1.5.dev29}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev28
3
+ Version: 1.1.5.dev29
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -33,7 +33,7 @@ class _Client:
33
33
  server_url: str,
34
34
  client_type: int,
35
35
  credentials: typing.Optional[tuple[str, str]],
36
- version: str = "1.1.5.dev28",
36
+ version: str = "1.1.5.dev29",
37
37
  ):
38
38
  """mdmd:hidden
39
39
  The Modal client object is not intended to be instantiated directly by users.
@@ -164,7 +164,7 @@ class Client:
164
164
  server_url: str,
165
165
  client_type: int,
166
166
  credentials: typing.Optional[tuple[str, str]],
167
- version: str = "1.1.5.dev28",
167
+ version: str = "1.1.5.dev29",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev28
3
+ Version: 1.1.5.dev29
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -2881,6 +2881,14 @@ message SandboxTag {
2881
2881
  string tag_value = 2;
2882
2882
  }
2883
2883
 
2884
+ message SandboxTagsGetRequest {
2885
+ string sandbox_id = 1;
2886
+ }
2887
+
2888
+ message SandboxTagsGetResponse {
2889
+ repeated SandboxTag tags = 1;
2890
+ }
2891
+
2884
2892
  message SandboxTagsSetRequest {
2885
2893
  string environment_name = 1;
2886
2894
  string sandbox_id = 2;
@@ -3680,6 +3688,7 @@ service ModalClient {
3680
3688
  rpc SandboxSnapshotGet(SandboxSnapshotGetRequest) returns (SandboxSnapshotGetResponse);
3681
3689
  rpc SandboxSnapshotWait(SandboxSnapshotWaitRequest) returns (SandboxSnapshotWaitResponse);
3682
3690
  rpc SandboxStdinWrite(SandboxStdinWriteRequest) returns (SandboxStdinWriteResponse);
3691
+ rpc SandboxTagsGet(SandboxTagsGetRequest) returns (SandboxTagsGetResponse);
3683
3692
  rpc SandboxTagsSet(SandboxTagsSetRequest) returns (google.protobuf.Empty);
3684
3693
  rpc SandboxTerminate(SandboxTerminateRequest) returns (SandboxTerminateResponse);
3685
3694
  rpc SandboxWait(SandboxWaitRequest) returns (SandboxWaitResponse);
@@ -526,6 +526,10 @@ class ModalClientBase(abc.ABC):
526
526
  async def SandboxStdinWrite(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxStdinWriteRequest, modal_proto.api_pb2.SandboxStdinWriteResponse]') -> None:
527
527
  pass
528
528
 
529
+ @abc.abstractmethod
530
+ async def SandboxTagsGet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTagsGetRequest, modal_proto.api_pb2.SandboxTagsGetResponse]') -> None:
531
+ pass
532
+
529
533
  @abc.abstractmethod
530
534
  async def SandboxTagsSet(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxTagsSetRequest, google.protobuf.empty_pb2.Empty]') -> None:
531
535
  pass
@@ -1458,6 +1462,12 @@ class ModalClientBase(abc.ABC):
1458
1462
  modal_proto.api_pb2.SandboxStdinWriteRequest,
1459
1463
  modal_proto.api_pb2.SandboxStdinWriteResponse,
1460
1464
  ),
1465
+ '/modal.client.ModalClient/SandboxTagsGet': grpclib.const.Handler(
1466
+ self.SandboxTagsGet,
1467
+ grpclib.const.Cardinality.UNARY_UNARY,
1468
+ modal_proto.api_pb2.SandboxTagsGetRequest,
1469
+ modal_proto.api_pb2.SandboxTagsGetResponse,
1470
+ ),
1461
1471
  '/modal.client.ModalClient/SandboxTagsSet': grpclib.const.Handler(
1462
1472
  self.SandboxTagsSet,
1463
1473
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -2478,6 +2488,12 @@ class ModalClientStub:
2478
2488
  modal_proto.api_pb2.SandboxStdinWriteRequest,
2479
2489
  modal_proto.api_pb2.SandboxStdinWriteResponse,
2480
2490
  )
2491
+ self.SandboxTagsGet = grpclib.client.UnaryUnaryMethod(
2492
+ channel,
2493
+ '/modal.client.ModalClient/SandboxTagsGet',
2494
+ modal_proto.api_pb2.SandboxTagsGetRequest,
2495
+ modal_proto.api_pb2.SandboxTagsGetResponse,
2496
+ )
2481
2497
  self.SandboxTagsSet = grpclib.client.UnaryUnaryMethod(
2482
2498
  channel,
2483
2499
  '/modal.client.ModalClient/SandboxTagsSet',