modal 1.1.5.dev38__tar.gz → 1.1.5.dev40__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.dev38 → modal-1.1.5.dev40}/PKG-INFO +1 -1
  2. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/client.pyi +2 -2
  3. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/runner.py +5 -1
  4. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/sandbox_router.proto +1 -1
  6. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/sandbox_router_pb2.py +24 -24
  7. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/sandbox_router_pb2.pyi +5 -3
  8. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_version/__init__.py +1 -1
  9. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/LICENSE +0 -0
  10. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/README.md +0 -0
  11. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/__init__.py +0 -0
  12. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/__main__.py +0 -0
  13. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_clustered_functions.py +0 -0
  14. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_clustered_functions.pyi +0 -0
  15. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_container_entrypoint.py +0 -0
  16. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_functions.py +0 -0
  17. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_ipython.py +0 -0
  18. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_location.py +0 -0
  19. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_object.py +0 -0
  20. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_output.py +0 -0
  21. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_partial_function.py +0 -0
  22. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_pty.py +0 -0
  23. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_resolver.py +0 -0
  24. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_resources.py +0 -0
  25. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/__init__.py +0 -0
  26. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/asgi.py +0 -0
  27. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/container_io_manager.py +0 -0
  28. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/container_io_manager.pyi +0 -0
  29. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/execution_context.py +0 -0
  30. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/execution_context.pyi +0 -0
  31. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  32. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/telemetry.py +0 -0
  33. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_runtime/user_code_imports.py +0 -0
  34. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_serialization.py +0 -0
  35. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_traceback.py +0 -0
  36. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_tunnel.py +0 -0
  37. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_tunnel.pyi +0 -0
  38. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_type_manager.py +0 -0
  39. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/__init__.py +0 -0
  40. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/app_utils.py +0 -0
  41. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/async_utils.py +0 -0
  42. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/auth_token_manager.py +0 -0
  43. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/blob_utils.py +0 -0
  44. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/bytes_io_segment_payload.py +0 -0
  45. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/deprecation.py +0 -0
  46. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/docker_utils.py +0 -0
  47. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/function_utils.py +0 -0
  48. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/git_utils.py +0 -0
  49. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/grpc_testing.py +0 -0
  50. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/grpc_utils.py +0 -0
  51. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/hash_utils.py +0 -0
  52. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/http_utils.py +0 -0
  53. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/jwt_utils.py +0 -0
  54. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/logger.py +0 -0
  55. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/mount_utils.py +0 -0
  56. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/name_utils.py +0 -0
  57. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/package_utils.py +0 -0
  58. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/pattern_utils.py +0 -0
  59. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/rand_pb_testing.py +0 -0
  60. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/shell_utils.py +0 -0
  61. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_utils/time_utils.py +0 -0
  62. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_vendor/__init__.py +0 -0
  63. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  64. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_vendor/cloudpickle.py +0 -0
  65. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_vendor/tblib.py +0 -0
  66. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/_watcher.py +0 -0
  67. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/app.py +0 -0
  68. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/app.pyi +0 -0
  69. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/2023.12.312.txt +0 -0
  70. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/2023.12.txt +0 -0
  71. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/2024.04.txt +0 -0
  72. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/2024.10.txt +0 -0
  73. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/2025.06.txt +0 -0
  74. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/PREVIEW.txt +0 -0
  75. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/README.md +0 -0
  76. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/builder/base-images.json +0 -0
  77. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/call_graph.py +0 -0
  78. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/__init__.py +0 -0
  79. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/_download.py +0 -0
  80. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/_traceback.py +0 -0
  81. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/app.py +0 -0
  82. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/cluster.py +0 -0
  83. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/config.py +0 -0
  84. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/container.py +0 -0
  85. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/dict.py +0 -0
  86. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/entry_point.py +0 -0
  87. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/environment.py +0 -0
  88. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/import_refs.py +0 -0
  89. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/launch.py +0 -0
  90. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/network_file_system.py +0 -0
  91. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/profile.py +0 -0
  92. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/programs/__init__.py +0 -0
  93. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/programs/launch_instance_ssh.py +0 -0
  94. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/programs/run_jupyter.py +0 -0
  95. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/programs/run_marimo.py +0 -0
  96. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/programs/vscode.py +0 -0
  97. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/queues.py +0 -0
  98. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/run.py +0 -0
  99. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/secret.py +0 -0
  100. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/token.py +0 -0
  101. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/utils.py +0 -0
  102. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cli/volume.py +0 -0
  103. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/client.py +0 -0
  104. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cloud_bucket_mount.py +0 -0
  105. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cloud_bucket_mount.pyi +0 -0
  106. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cls.py +0 -0
  107. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/cls.pyi +0 -0
  108. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/config.py +0 -0
  109. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/container_process.py +0 -0
  110. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/container_process.pyi +0 -0
  111. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/dict.py +0 -0
  112. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/dict.pyi +0 -0
  113. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/environments.py +0 -0
  114. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/environments.pyi +0 -0
  115. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/exception.py +0 -0
  116. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/experimental/__init__.py +0 -0
  117. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/experimental/flash.py +0 -0
  118. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/experimental/flash.pyi +0 -0
  119. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/experimental/ipython.py +0 -0
  120. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/file_io.py +0 -0
  121. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/file_io.pyi +0 -0
  122. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/file_pattern_matcher.py +0 -0
  123. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/functions.py +0 -0
  124. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/functions.pyi +0 -0
  125. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/gpu.py +0 -0
  126. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/image.py +0 -0
  127. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/image.pyi +0 -0
  128. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/io_streams.py +0 -0
  129. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/io_streams.pyi +0 -0
  130. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/mount.py +0 -0
  131. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/mount.pyi +0 -0
  132. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/network_file_system.py +0 -0
  133. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/network_file_system.pyi +0 -0
  134. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/object.py +0 -0
  135. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/object.pyi +0 -0
  136. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/output.py +0 -0
  137. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/parallel_map.py +0 -0
  138. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/parallel_map.pyi +0 -0
  139. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/partial_function.py +0 -0
  140. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/partial_function.pyi +0 -0
  141. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/proxy.py +0 -0
  142. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/proxy.pyi +0 -0
  143. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/py.typed +0 -0
  144. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/queue.py +0 -0
  145. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/queue.pyi +0 -0
  146. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/retries.py +0 -0
  147. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/runner.pyi +0 -0
  148. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/running_app.py +0 -0
  149. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/sandbox.py +0 -0
  150. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/sandbox.pyi +0 -0
  151. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/schedule.py +0 -0
  152. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/scheduler_placement.py +0 -0
  153. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/secret.py +0 -0
  154. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/secret.pyi +0 -0
  155. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/serving.py +0 -0
  156. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/serving.pyi +0 -0
  157. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/snapshot.py +0 -0
  158. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/snapshot.pyi +0 -0
  159. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/stream_type.py +0 -0
  160. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/token_flow.py +0 -0
  161. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/token_flow.pyi +0 -0
  162. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/volume.py +0 -0
  163. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal/volume.pyi +0 -0
  164. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal.egg-info/SOURCES.txt +0 -0
  165. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal.egg-info/dependency_links.txt +0 -0
  166. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal.egg-info/entry_points.txt +0 -0
  167. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal.egg-info/requires.txt +0 -0
  168. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal.egg-info/top_level.txt +0 -0
  169. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_docs/__init__.py +0 -0
  170. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_docs/gen_cli_docs.py +0 -0
  171. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_docs/gen_reference_docs.py +0 -0
  172. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_docs/mdmd/__init__.py +0 -0
  173. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_docs/mdmd/mdmd.py +0 -0
  174. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_docs/mdmd/signatures.py +0 -0
  175. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/__init__.py +0 -0
  176. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/api.proto +0 -0
  177. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/api_grpc.py +0 -0
  178. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/api_pb2.py +0 -0
  179. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/api_pb2.pyi +0 -0
  180. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/api_pb2_grpc.py +0 -0
  181. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/api_pb2_grpc.pyi +0 -0
  182. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/modal_api_grpc.py +0 -0
  183. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/modal_options_grpc.py +0 -0
  184. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/options.proto +0 -0
  185. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/options_grpc.py +0 -0
  186. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/options_pb2.py +0 -0
  187. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/options_pb2.pyi +0 -0
  188. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/options_pb2_grpc.py +0 -0
  189. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/options_pb2_grpc.pyi +0 -0
  190. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/py.typed +0 -0
  191. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/sandbox_router_grpc.py +0 -0
  192. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  193. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  194. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/modal_version/__main__.py +0 -0
  195. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/pyproject.toml +0 -0
  196. {modal-1.1.5.dev38 → modal-1.1.5.dev40}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev38
3
+ Version: 1.1.5.dev40
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.dev38",
36
+ version: str = "1.1.5.dev40",
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.dev38",
167
+ version: str = "1.1.5.dev40",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -360,8 +360,12 @@ async def _run_app(
360
360
 
361
361
  # Yield to context
362
362
  if output_mgr := _get_output_manager():
363
- with output_mgr.show_status_spinner():
363
+ # Don't show status spinner in interactive mode to avoid interfering with breakpoints
364
+ if interactive:
364
365
  yield app
366
+ else:
367
+ with output_mgr.show_status_spinner():
368
+ yield app
365
369
  else:
366
370
  yield app
367
371
  # successful completion!
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev38
3
+ Version: 1.1.5.dev40
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -47,7 +47,7 @@ message SandboxExecStartRequest {
47
47
  // Timeout in seconds for the exec'd command to exit. If the command does not
48
48
  // exit within this duration, the command will be killed. This is NOT the
49
49
  // timeout for the ExecStartRequest RPC to complete.
50
- uint32 timeout_secs = 6;
50
+ optional uint32 timeout_secs = 6;
51
51
  // Working directory for the command.
52
52
  optional string workdir = 7;
53
53
  // Secret IDs to mount into the sandbox.
@@ -16,7 +16,7 @@ _sym_db = _symbol_database.Default()
16
16
  from modal_proto import api_pb2 as modal__proto_dot_api__pb2
17
17
 
18
18
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n modal_proto/sandbox_router.proto\x12\x14modal.sandbox_router\x1a\x15modal_proto/api.proto\"\xfb\x02\n\x17SandboxExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x44\n\rstdout_config\x18\x04 \x01(\x0e\x32-.modal.sandbox_router.SandboxExecStdoutConfig\x12\x44\n\rstderr_config\x18\x05 \x01(\x0e\x32-.modal.sandbox_router.SandboxExecStderrConfig\x12\x14\n\x0ctimeout_secs\x18\x06 \x01(\r\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x01\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x42\n\n\x08_workdirB\x0b\n\t_pty_info\"\x1a\n\x18SandboxExecStartResponse\"k\n\x1cSandboxExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1f\n\x1dSandboxExecStdinWriteResponse\"\x9e\x01\n\x1bSandboxExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12M\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x34.modal.sandbox_router.SandboxExecStdioFileDescriptor\",\n\x1cSandboxExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\":\n\x16SandboxExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"J\n\x17SandboxExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x03 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x04 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status*\x8d\x01\n\x17SandboxExecStderrConfig\x12&\n\"SANDBOX_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12#\n\x1fSANDBOX_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12%\n!SANDBOX_EXEC_STDERR_CONFIG_STDOUT\x10\x02*~\n\x1eSandboxExecStdioFileDescriptor\x12-\n)SANDBOX_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12-\n)SANDBOX_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*f\n\x17SandboxExecStdoutConfig\x12&\n\"SANDBOX_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12#\n\x1fSANDBOX_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xf6\x03\n\rSandboxRouter\x12q\n\x10SandboxExecStart\x12-.modal.sandbox_router.SandboxExecStartRequest\x1a..modal.sandbox_router.SandboxExecStartResponse\x12\x80\x01\n\x15SandboxExecStdinWrite\x12\x32.modal.sandbox_router.SandboxExecStdinWriteRequest\x1a\x33.modal.sandbox_router.SandboxExecStdinWriteResponse\x12\x7f\n\x14SandboxExecStdioRead\x12\x31.modal.sandbox_router.SandboxExecStdioReadRequest\x1a\x32.modal.sandbox_router.SandboxExecStdioReadResponse0\x01\x12n\n\x0fSandboxExecWait\x12,.modal.sandbox_router.SandboxExecWaitRequest\x1a-.modal.sandbox_router.SandboxExecWaitResponseb\x06proto3')
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n modal_proto/sandbox_router.proto\x12\x14modal.sandbox_router\x1a\x15modal_proto/api.proto\"\x91\x03\n\x17SandboxExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x44\n\rstdout_config\x18\x04 \x01(\x0e\x32-.modal.sandbox_router.SandboxExecStdoutConfig\x12\x44\n\rstderr_config\x18\x05 \x01(\x0e\x32-.modal.sandbox_router.SandboxExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x1a\n\x18SandboxExecStartResponse\"k\n\x1cSandboxExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1f\n\x1dSandboxExecStdinWriteResponse\"\x9e\x01\n\x1bSandboxExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12M\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x34.modal.sandbox_router.SandboxExecStdioFileDescriptor\",\n\x1cSandboxExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\":\n\x16SandboxExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"J\n\x17SandboxExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x03 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x04 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status*\x8d\x01\n\x17SandboxExecStderrConfig\x12&\n\"SANDBOX_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12#\n\x1fSANDBOX_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12%\n!SANDBOX_EXEC_STDERR_CONFIG_STDOUT\x10\x02*~\n\x1eSandboxExecStdioFileDescriptor\x12-\n)SANDBOX_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12-\n)SANDBOX_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*f\n\x17SandboxExecStdoutConfig\x12&\n\"SANDBOX_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12#\n\x1fSANDBOX_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xf6\x03\n\rSandboxRouter\x12q\n\x10SandboxExecStart\x12-.modal.sandbox_router.SandboxExecStartRequest\x1a..modal.sandbox_router.SandboxExecStartResponse\x12\x80\x01\n\x15SandboxExecStdinWrite\x12\x32.modal.sandbox_router.SandboxExecStdinWriteRequest\x1a\x33.modal.sandbox_router.SandboxExecStdinWriteResponse\x12\x7f\n\x14SandboxExecStdioRead\x12\x31.modal.sandbox_router.SandboxExecStdioReadRequest\x1a\x32.modal.sandbox_router.SandboxExecStdioReadResponse0\x01\x12n\n\x0fSandboxExecWait\x12,.modal.sandbox_router.SandboxExecWaitRequest\x1a-.modal.sandbox_router.SandboxExecWaitResponseb\x06proto3')
20
20
 
21
21
  _SANDBOXEXECSTDERRCONFIG = DESCRIPTOR.enum_types_by_name['SandboxExecStderrConfig']
22
22
  SandboxExecStderrConfig = enum_type_wrapper.EnumTypeWrapper(_SANDBOXEXECSTDERRCONFIG)
@@ -101,28 +101,28 @@ _SANDBOXROUTER = DESCRIPTOR.services_by_name['SandboxRouter']
101
101
  if _descriptor._USE_C_DESCRIPTORS == False:
102
102
 
103
103
  DESCRIPTOR._options = None
104
- _SANDBOXEXECSTDERRCONFIG._serialized_start=977
105
- _SANDBOXEXECSTDERRCONFIG._serialized_end=1118
106
- _SANDBOXEXECSTDIOFILEDESCRIPTOR._serialized_start=1120
107
- _SANDBOXEXECSTDIOFILEDESCRIPTOR._serialized_end=1246
108
- _SANDBOXEXECSTDOUTCONFIG._serialized_start=1248
109
- _SANDBOXEXECSTDOUTCONFIG._serialized_end=1350
104
+ _SANDBOXEXECSTDERRCONFIG._serialized_start=999
105
+ _SANDBOXEXECSTDERRCONFIG._serialized_end=1140
106
+ _SANDBOXEXECSTDIOFILEDESCRIPTOR._serialized_start=1142
107
+ _SANDBOXEXECSTDIOFILEDESCRIPTOR._serialized_end=1268
108
+ _SANDBOXEXECSTDOUTCONFIG._serialized_start=1270
109
+ _SANDBOXEXECSTDOUTCONFIG._serialized_end=1372
110
110
  _SANDBOXEXECSTARTREQUEST._serialized_start=82
111
- _SANDBOXEXECSTARTREQUEST._serialized_end=461
112
- _SANDBOXEXECSTARTRESPONSE._serialized_start=463
113
- _SANDBOXEXECSTARTRESPONSE._serialized_end=489
114
- _SANDBOXEXECSTDINWRITEREQUEST._serialized_start=491
115
- _SANDBOXEXECSTDINWRITEREQUEST._serialized_end=598
116
- _SANDBOXEXECSTDINWRITERESPONSE._serialized_start=600
117
- _SANDBOXEXECSTDINWRITERESPONSE._serialized_end=631
118
- _SANDBOXEXECSTDIOREADREQUEST._serialized_start=634
119
- _SANDBOXEXECSTDIOREADREQUEST._serialized_end=792
120
- _SANDBOXEXECSTDIOREADRESPONSE._serialized_start=794
121
- _SANDBOXEXECSTDIOREADRESPONSE._serialized_end=838
122
- _SANDBOXEXECWAITREQUEST._serialized_start=840
123
- _SANDBOXEXECWAITREQUEST._serialized_end=898
124
- _SANDBOXEXECWAITRESPONSE._serialized_start=900
125
- _SANDBOXEXECWAITRESPONSE._serialized_end=974
126
- _SANDBOXROUTER._serialized_start=1353
127
- _SANDBOXROUTER._serialized_end=1855
111
+ _SANDBOXEXECSTARTREQUEST._serialized_end=483
112
+ _SANDBOXEXECSTARTRESPONSE._serialized_start=485
113
+ _SANDBOXEXECSTARTRESPONSE._serialized_end=511
114
+ _SANDBOXEXECSTDINWRITEREQUEST._serialized_start=513
115
+ _SANDBOXEXECSTDINWRITEREQUEST._serialized_end=620
116
+ _SANDBOXEXECSTDINWRITERESPONSE._serialized_start=622
117
+ _SANDBOXEXECSTDINWRITERESPONSE._serialized_end=653
118
+ _SANDBOXEXECSTDIOREADREQUEST._serialized_start=656
119
+ _SANDBOXEXECSTDIOREADREQUEST._serialized_end=814
120
+ _SANDBOXEXECSTDIOREADRESPONSE._serialized_start=816
121
+ _SANDBOXEXECSTDIOREADRESPONSE._serialized_end=860
122
+ _SANDBOXEXECWAITREQUEST._serialized_start=862
123
+ _SANDBOXEXECWAITREQUEST._serialized_end=920
124
+ _SANDBOXEXECWAITRESPONSE._serialized_start=922
125
+ _SANDBOXEXECWAITRESPONSE._serialized_end=996
126
+ _SANDBOXROUTER._serialized_start=1375
127
+ _SANDBOXROUTER._serialized_end=1877
128
128
  # @@protoc_insertion_point(module_scope)
@@ -139,17 +139,19 @@ class SandboxExecStartRequest(google.protobuf.message.Message):
139
139
  command_args: collections.abc.Iterable[builtins.str] | None = ...,
140
140
  stdout_config: global___SandboxExecStdoutConfig.ValueType = ...,
141
141
  stderr_config: global___SandboxExecStderrConfig.ValueType = ...,
142
- timeout_secs: builtins.int = ...,
142
+ timeout_secs: builtins.int | None = ...,
143
143
  workdir: builtins.str | None = ...,
144
144
  secret_ids: collections.abc.Iterable[builtins.str] | None = ...,
145
145
  pty_info: modal_proto.api_pb2.PTYInfo | None = ...,
146
146
  runtime_debug: builtins.bool = ...,
147
147
  ) -> None: ...
148
- def HasField(self, field_name: typing_extensions.Literal["_pty_info", b"_pty_info", "_workdir", b"_workdir", "pty_info", b"pty_info", "workdir", b"workdir"]) -> builtins.bool: ...
149
- def ClearField(self, field_name: typing_extensions.Literal["_pty_info", b"_pty_info", "_workdir", b"_workdir", "command_args", b"command_args", "exec_id", b"exec_id", "pty_info", b"pty_info", "runtime_debug", b"runtime_debug", "secret_ids", b"secret_ids", "stderr_config", b"stderr_config", "stdout_config", b"stdout_config", "task_id", b"task_id", "timeout_secs", b"timeout_secs", "workdir", b"workdir"]) -> None: ...
148
+ def HasField(self, field_name: typing_extensions.Literal["_pty_info", b"_pty_info", "_timeout_secs", b"_timeout_secs", "_workdir", b"_workdir", "pty_info", b"pty_info", "timeout_secs", b"timeout_secs", "workdir", b"workdir"]) -> builtins.bool: ...
149
+ def ClearField(self, field_name: typing_extensions.Literal["_pty_info", b"_pty_info", "_timeout_secs", b"_timeout_secs", "_workdir", b"_workdir", "command_args", b"command_args", "exec_id", b"exec_id", "pty_info", b"pty_info", "runtime_debug", b"runtime_debug", "secret_ids", b"secret_ids", "stderr_config", b"stderr_config", "stdout_config", b"stdout_config", "task_id", b"task_id", "timeout_secs", b"timeout_secs", "workdir", b"workdir"]) -> None: ...
150
150
  @typing.overload
151
151
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_pty_info", b"_pty_info"]) -> typing_extensions.Literal["pty_info"] | None: ...
152
152
  @typing.overload
153
+ def WhichOneof(self, oneof_group: typing_extensions.Literal["_timeout_secs", b"_timeout_secs"]) -> typing_extensions.Literal["timeout_secs"] | None: ...
154
+ @typing.overload
153
155
  def WhichOneof(self, oneof_group: typing_extensions.Literal["_workdir", b"_workdir"]) -> typing_extensions.Literal["workdir"] | None: ...
154
156
 
155
157
  global___SandboxExecStartRequest = SandboxExecStartRequest
@@ -1,4 +1,4 @@
1
1
  # Copyright Modal Labs 2025
2
2
  """Supplies the current version of the modal client library."""
3
3
 
4
- __version__ = "1.1.5.dev38"
4
+ __version__ = "1.1.5.dev40"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes