modal 1.1.5.dev45__tar.gz → 1.1.5.dev47__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 (196) hide show
  1. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/PKG-INFO +1 -1
  2. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/client.pyi +2 -2
  3. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal.egg-info/PKG-INFO +1 -1
  4. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/api.proto +18 -0
  5. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/api_grpc.py +16 -0
  6. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/api_pb2.py +354 -334
  7. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/api_pb2.pyi +44 -1
  8. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/api_pb2_grpc.py +33 -0
  9. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/api_pb2_grpc.pyi +10 -0
  10. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/modal_api_grpc.py +1 -0
  11. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_version/__init__.py +1 -1
  12. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/LICENSE +0 -0
  13. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/README.md +0 -0
  14. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/__init__.py +0 -0
  15. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/__main__.py +0 -0
  16. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_clustered_functions.py +0 -0
  17. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_clustered_functions.pyi +0 -0
  18. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_container_entrypoint.py +0 -0
  19. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_functions.py +0 -0
  20. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_ipython.py +0 -0
  21. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_location.py +0 -0
  22. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_object.py +0 -0
  23. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_output.py +0 -0
  24. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_partial_function.py +0 -0
  25. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_pty.py +0 -0
  26. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_resolver.py +0 -0
  27. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_resources.py +0 -0
  28. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/__init__.py +0 -0
  29. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/asgi.py +0 -0
  30. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/container_io_manager.py +0 -0
  31. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/container_io_manager.pyi +0 -0
  32. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/execution_context.py +0 -0
  33. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/execution_context.pyi +0 -0
  34. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  35. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/telemetry.py +0 -0
  36. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_runtime/user_code_imports.py +0 -0
  37. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_serialization.py +0 -0
  38. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_traceback.py +0 -0
  39. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_tunnel.py +0 -0
  40. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_tunnel.pyi +0 -0
  41. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_type_manager.py +0 -0
  42. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/__init__.py +0 -0
  43. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/app_utils.py +0 -0
  44. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/async_utils.py +0 -0
  45. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/auth_token_manager.py +0 -0
  46. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/blob_utils.py +0 -0
  47. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/bytes_io_segment_payload.py +0 -0
  48. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/deprecation.py +0 -0
  49. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/docker_utils.py +0 -0
  50. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/function_utils.py +0 -0
  51. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/git_utils.py +0 -0
  52. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/grpc_testing.py +0 -0
  53. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/grpc_utils.py +0 -0
  54. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/hash_utils.py +0 -0
  55. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/http_utils.py +0 -0
  56. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/jwt_utils.py +0 -0
  57. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/logger.py +0 -0
  58. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/mount_utils.py +0 -0
  59. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/name_utils.py +0 -0
  60. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/package_utils.py +0 -0
  61. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/pattern_utils.py +0 -0
  62. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/rand_pb_testing.py +0 -0
  63. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/shell_utils.py +0 -0
  64. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_utils/time_utils.py +0 -0
  65. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_vendor/__init__.py +0 -0
  66. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  67. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_vendor/cloudpickle.py +0 -0
  68. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_vendor/tblib.py +0 -0
  69. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/_watcher.py +0 -0
  70. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/app.py +0 -0
  71. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/app.pyi +0 -0
  72. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/2023.12.312.txt +0 -0
  73. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/2023.12.txt +0 -0
  74. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/2024.04.txt +0 -0
  75. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/2024.10.txt +0 -0
  76. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/2025.06.txt +0 -0
  77. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/PREVIEW.txt +0 -0
  78. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/README.md +0 -0
  79. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/builder/base-images.json +0 -0
  80. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/call_graph.py +0 -0
  81. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/__init__.py +0 -0
  82. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/_download.py +0 -0
  83. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/_traceback.py +0 -0
  84. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/app.py +0 -0
  85. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/cluster.py +0 -0
  86. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/config.py +0 -0
  87. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/container.py +0 -0
  88. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/dict.py +0 -0
  89. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/entry_point.py +0 -0
  90. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/environment.py +0 -0
  91. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/import_refs.py +0 -0
  92. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/launch.py +0 -0
  93. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/network_file_system.py +0 -0
  94. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/profile.py +0 -0
  95. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/programs/__init__.py +0 -0
  96. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/programs/launch_instance_ssh.py +0 -0
  97. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/programs/run_jupyter.py +0 -0
  98. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/programs/run_marimo.py +0 -0
  99. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/programs/vscode.py +0 -0
  100. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/queues.py +0 -0
  101. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/run.py +0 -0
  102. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/secret.py +0 -0
  103. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/token.py +0 -0
  104. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/utils.py +0 -0
  105. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cli/volume.py +0 -0
  106. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/client.py +0 -0
  107. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cloud_bucket_mount.py +0 -0
  108. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cloud_bucket_mount.pyi +0 -0
  109. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cls.py +0 -0
  110. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/cls.pyi +0 -0
  111. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/config.py +0 -0
  112. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/container_process.py +0 -0
  113. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/container_process.pyi +0 -0
  114. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/dict.py +0 -0
  115. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/dict.pyi +0 -0
  116. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/environments.py +0 -0
  117. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/environments.pyi +0 -0
  118. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/exception.py +0 -0
  119. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/experimental/__init__.py +0 -0
  120. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/experimental/flash.py +0 -0
  121. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/experimental/flash.pyi +0 -0
  122. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/experimental/ipython.py +0 -0
  123. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/file_io.py +0 -0
  124. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/file_io.pyi +0 -0
  125. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/file_pattern_matcher.py +0 -0
  126. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/functions.py +0 -0
  127. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/functions.pyi +0 -0
  128. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/gpu.py +0 -0
  129. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/image.py +0 -0
  130. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/image.pyi +0 -0
  131. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/io_streams.py +0 -0
  132. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/io_streams.pyi +0 -0
  133. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/mount.py +0 -0
  134. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/mount.pyi +0 -0
  135. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/network_file_system.py +0 -0
  136. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/network_file_system.pyi +0 -0
  137. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/object.py +0 -0
  138. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/object.pyi +0 -0
  139. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/output.py +0 -0
  140. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/parallel_map.py +0 -0
  141. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/parallel_map.pyi +0 -0
  142. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/partial_function.py +0 -0
  143. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/partial_function.pyi +0 -0
  144. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/proxy.py +0 -0
  145. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/proxy.pyi +0 -0
  146. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/py.typed +0 -0
  147. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/queue.py +0 -0
  148. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/queue.pyi +0 -0
  149. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/retries.py +0 -0
  150. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/runner.py +0 -0
  151. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/runner.pyi +0 -0
  152. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/running_app.py +0 -0
  153. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/sandbox.py +0 -0
  154. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/sandbox.pyi +0 -0
  155. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/schedule.py +0 -0
  156. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/scheduler_placement.py +0 -0
  157. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/secret.py +0 -0
  158. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/secret.pyi +0 -0
  159. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/serving.py +0 -0
  160. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/serving.pyi +0 -0
  161. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/snapshot.py +0 -0
  162. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/snapshot.pyi +0 -0
  163. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/stream_type.py +0 -0
  164. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/token_flow.py +0 -0
  165. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/token_flow.pyi +0 -0
  166. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/volume.py +0 -0
  167. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal/volume.pyi +0 -0
  168. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal.egg-info/SOURCES.txt +0 -0
  169. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal.egg-info/dependency_links.txt +0 -0
  170. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal.egg-info/entry_points.txt +0 -0
  171. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal.egg-info/requires.txt +0 -0
  172. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal.egg-info/top_level.txt +0 -0
  173. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_docs/__init__.py +0 -0
  174. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_docs/gen_cli_docs.py +0 -0
  175. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_docs/gen_reference_docs.py +0 -0
  176. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_docs/mdmd/__init__.py +0 -0
  177. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_docs/mdmd/mdmd.py +0 -0
  178. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_docs/mdmd/signatures.py +0 -0
  179. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/__init__.py +0 -0
  180. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/options.proto +0 -0
  182. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/py.typed +0 -0
  188. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/sandbox_router.proto +0 -0
  189. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/sandbox_router_grpc.py +0 -0
  190. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/sandbox_router_pb2.py +0 -0
  191. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/sandbox_router_pb2.pyi +0 -0
  192. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  193. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  194. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/modal_version/__main__.py +0 -0
  195. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/pyproject.toml +0 -0
  196. {modal-1.1.5.dev45 → modal-1.1.5.dev47}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev45
3
+ Version: 1.1.5.dev47
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.dev45",
36
+ version: str = "1.1.5.dev47",
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.dev45",
167
+ version: str = "1.1.5.dev47",
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.dev45
3
+ Version: 1.1.5.dev47
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -2707,6 +2707,11 @@ message Sandbox {
2707
2707
 
2708
2708
  // Optional idle timeout in seconds. If set, the sandbox will be terminated after being idle for this duration.
2709
2709
  optional uint32 idle_timeout_secs = 33;
2710
+
2711
+ // If set, the sandbox will be created with direct sandbox commands enabled.
2712
+ // Exec commands for the sandbox will be issued directly to the sandbox
2713
+ // command router running on the Modal worker.
2714
+ bool direct_sandbox_commands_enabled = 34;
2710
2715
  }
2711
2716
 
2712
2717
  message SandboxCreateConnectTokenRequest {
@@ -2729,6 +2734,18 @@ message SandboxCreateResponse {
2729
2734
  string sandbox_id = 1;
2730
2735
  }
2731
2736
 
2737
+ // Used to get a JWT and URL for direct access to a sandbox router server
2738
+ // running on the modal-worker, so the client can issue exec commands (and other
2739
+ // operations as they become available) directly to the worker.
2740
+ message SandboxGetCommandRouterAccessRequest {
2741
+ string sandbox_id = 1;
2742
+ }
2743
+
2744
+ message SandboxGetCommandRouterAccessResponse {
2745
+ string jwt = 1;
2746
+ string url = 2;
2747
+ }
2748
+
2732
2749
  message SandboxGetFromNameRequest {
2733
2750
  string sandbox_name = 1;
2734
2751
  string environment_name = 2;
@@ -3679,6 +3696,7 @@ service ModalClient {
3679
3696
  // Sandboxes
3680
3697
  rpc SandboxCreate(SandboxCreateRequest) returns (SandboxCreateResponse);
3681
3698
  rpc SandboxCreateConnectToken(SandboxCreateConnectTokenRequest) returns (SandboxCreateConnectTokenResponse);
3699
+ rpc SandboxGetCommandRouterAccess(SandboxGetCommandRouterAccessRequest) returns (SandboxGetCommandRouterAccessResponse);
3682
3700
  rpc SandboxGetFromName(SandboxGetFromNameRequest) returns (SandboxGetFromNameResponse);
3683
3701
  rpc SandboxGetLogs(SandboxGetLogsRequest) returns (stream TaskLogsBatch);
3684
3702
  rpc SandboxGetResourceUsage(SandboxGetResourceUsageRequest) returns (SandboxGetResourceUsageResponse);
@@ -470,6 +470,10 @@ class ModalClientBase(abc.ABC):
470
470
  async def SandboxCreateConnectToken(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxCreateConnectTokenRequest, modal_proto.api_pb2.SandboxCreateConnectTokenResponse]') -> None:
471
471
  pass
472
472
 
473
+ @abc.abstractmethod
474
+ async def SandboxGetCommandRouterAccess(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest, modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse]') -> None:
475
+ pass
476
+
473
477
  @abc.abstractmethod
474
478
  async def SandboxGetFromName(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.SandboxGetFromNameRequest, modal_proto.api_pb2.SandboxGetFromNameResponse]') -> None:
475
479
  pass
@@ -1378,6 +1382,12 @@ class ModalClientBase(abc.ABC):
1378
1382
  modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
1379
1383
  modal_proto.api_pb2.SandboxCreateConnectTokenResponse,
1380
1384
  ),
1385
+ '/modal.client.ModalClient/SandboxGetCommandRouterAccess': grpclib.const.Handler(
1386
+ self.SandboxGetCommandRouterAccess,
1387
+ grpclib.const.Cardinality.UNARY_UNARY,
1388
+ modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest,
1389
+ modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse,
1390
+ ),
1381
1391
  '/modal.client.ModalClient/SandboxGetFromName': grpclib.const.Handler(
1382
1392
  self.SandboxGetFromName,
1383
1393
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -2404,6 +2414,12 @@ class ModalClientStub:
2404
2414
  modal_proto.api_pb2.SandboxCreateConnectTokenRequest,
2405
2415
  modal_proto.api_pb2.SandboxCreateConnectTokenResponse,
2406
2416
  )
2417
+ self.SandboxGetCommandRouterAccess = grpclib.client.UnaryUnaryMethod(
2418
+ channel,
2419
+ '/modal.client.ModalClient/SandboxGetCommandRouterAccess',
2420
+ modal_proto.api_pb2.SandboxGetCommandRouterAccessRequest,
2421
+ modal_proto.api_pb2.SandboxGetCommandRouterAccessResponse,
2422
+ )
2407
2423
  self.SandboxGetFromName = grpclib.client.UnaryUnaryMethod(
2408
2424
  channel,
2409
2425
  '/modal.client.ModalClient/SandboxGetFromName',