modal 1.1.2.dev34__tar.gz → 1.1.2.dev36__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 (190) hide show
  1. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/PKG-INFO +1 -1
  2. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/client.pyi +2 -2
  3. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/file_io.py +1 -1
  4. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/file_io.pyi +2 -2
  5. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/mount.py +20 -13
  6. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/mount.pyi +16 -3
  7. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/sandbox.py +3 -2
  8. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/sandbox.pyi +9 -6
  9. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/PKG-INFO +1 -1
  10. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_version/__init__.py +1 -1
  11. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/LICENSE +0 -0
  12. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/README.md +0 -0
  13. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/__init__.py +0 -0
  14. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/__main__.py +0 -0
  15. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_clustered_functions.py +0 -0
  16. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_clustered_functions.pyi +0 -0
  17. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_container_entrypoint.py +0 -0
  18. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_functions.py +0 -0
  19. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_ipython.py +0 -0
  20. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_location.py +0 -0
  21. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_object.py +0 -0
  22. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_output.py +0 -0
  23. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_partial_function.py +0 -0
  24. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_pty.py +0 -0
  25. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_resolver.py +0 -0
  26. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_resources.py +0 -0
  27. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/__init__.py +0 -0
  28. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/asgi.py +0 -0
  29. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/container_io_manager.py +0 -0
  30. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/container_io_manager.pyi +0 -0
  31. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/execution_context.py +0 -0
  32. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/execution_context.pyi +0 -0
  33. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  34. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/telemetry.py +0 -0
  35. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/user_code_imports.py +0 -0
  36. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_serialization.py +0 -0
  37. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_traceback.py +0 -0
  38. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_tunnel.py +0 -0
  39. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_tunnel.pyi +0 -0
  40. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_type_manager.py +0 -0
  41. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/__init__.py +0 -0
  42. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/app_utils.py +0 -0
  43. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/async_utils.py +0 -0
  44. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/auth_token_manager.py +0 -0
  45. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/blob_utils.py +0 -0
  46. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/bytes_io_segment_payload.py +0 -0
  47. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/deprecation.py +0 -0
  48. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/docker_utils.py +0 -0
  49. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/function_utils.py +0 -0
  50. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/git_utils.py +0 -0
  51. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/grpc_testing.py +0 -0
  52. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/grpc_utils.py +0 -0
  53. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/hash_utils.py +0 -0
  54. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/http_utils.py +0 -0
  55. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/jwt_utils.py +0 -0
  56. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/logger.py +0 -0
  57. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/mount_utils.py +0 -0
  58. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/name_utils.py +0 -0
  59. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/package_utils.py +0 -0
  60. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/pattern_utils.py +0 -0
  61. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/rand_pb_testing.py +0 -0
  62. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/shell_utils.py +0 -0
  63. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/time_utils.py +0 -0
  64. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/__init__.py +0 -0
  65. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  66. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/cloudpickle.py +0 -0
  67. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/tblib.py +0 -0
  68. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_watcher.py +0 -0
  69. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/app.py +0 -0
  70. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/app.pyi +0 -0
  71. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2023.12.312.txt +0 -0
  72. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2023.12.txt +0 -0
  73. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2024.04.txt +0 -0
  74. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2024.10.txt +0 -0
  75. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2025.06.txt +0 -0
  76. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/PREVIEW.txt +0 -0
  77. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/README.md +0 -0
  78. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/base-images.json +0 -0
  79. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/call_graph.py +0 -0
  80. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/__init__.py +0 -0
  81. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/_download.py +0 -0
  82. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/_traceback.py +0 -0
  83. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/app.py +0 -0
  84. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/cluster.py +0 -0
  85. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/config.py +0 -0
  86. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/container.py +0 -0
  87. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/dict.py +0 -0
  88. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/entry_point.py +0 -0
  89. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/environment.py +0 -0
  90. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/import_refs.py +0 -0
  91. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/launch.py +0 -0
  92. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/network_file_system.py +0 -0
  93. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/profile.py +0 -0
  94. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/__init__.py +0 -0
  95. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/launch_instance_ssh.py +0 -0
  96. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/run_jupyter.py +0 -0
  97. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/run_marimo.py +0 -0
  98. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/vscode.py +0 -0
  99. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/queues.py +0 -0
  100. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/run.py +0 -0
  101. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/secret.py +0 -0
  102. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/token.py +0 -0
  103. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/utils.py +0 -0
  104. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/volume.py +0 -0
  105. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/client.py +0 -0
  106. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cloud_bucket_mount.py +0 -0
  107. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cloud_bucket_mount.pyi +0 -0
  108. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cls.py +0 -0
  109. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cls.pyi +0 -0
  110. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/config.py +0 -0
  111. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/container_process.py +0 -0
  112. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/container_process.pyi +0 -0
  113. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/dict.py +0 -0
  114. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/dict.pyi +0 -0
  115. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/environments.py +0 -0
  116. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/environments.pyi +0 -0
  117. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/exception.py +0 -0
  118. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/__init__.py +0 -0
  119. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/flash.py +0 -0
  120. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/flash.pyi +0 -0
  121. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/ipython.py +0 -0
  122. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/file_pattern_matcher.py +0 -0
  123. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/functions.py +0 -0
  124. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/functions.pyi +0 -0
  125. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/gpu.py +0 -0
  126. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/image.py +0 -0
  127. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/image.pyi +0 -0
  128. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/io_streams.py +0 -0
  129. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/io_streams.pyi +0 -0
  130. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/network_file_system.py +0 -0
  131. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/network_file_system.pyi +0 -0
  132. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/object.py +0 -0
  133. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/object.pyi +0 -0
  134. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/output.py +0 -0
  135. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/parallel_map.py +0 -0
  136. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/parallel_map.pyi +0 -0
  137. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/partial_function.py +0 -0
  138. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/partial_function.pyi +0 -0
  139. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/proxy.py +0 -0
  140. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/proxy.pyi +0 -0
  141. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/py.typed +0 -0
  142. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/queue.py +0 -0
  143. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/queue.pyi +0 -0
  144. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/retries.py +0 -0
  145. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/runner.py +0 -0
  146. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/runner.pyi +0 -0
  147. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/running_app.py +0 -0
  148. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/schedule.py +0 -0
  149. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/scheduler_placement.py +0 -0
  150. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/secret.py +0 -0
  151. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/secret.pyi +0 -0
  152. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/serving.py +0 -0
  153. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/serving.pyi +0 -0
  154. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/snapshot.py +0 -0
  155. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/snapshot.pyi +0 -0
  156. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/stream_type.py +0 -0
  157. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/token_flow.py +0 -0
  158. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/token_flow.pyi +0 -0
  159. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/volume.py +0 -0
  160. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/volume.pyi +0 -0
  161. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api.proto +0 -0
  174. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options.proto +0 -0
  182. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/py.typed +0 -0
  188. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_version/__main__.py +0 -0
  189. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/pyproject.toml +0 -0
  190. {modal-1.1.2.dev34 → modal-1.1.2.dev36}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev34
3
+ Version: 1.1.2.dev36
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.2.dev34",
36
+ version: str = "1.1.2.dev36",
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.2.dev34",
167
+ version: str = "1.1.2.dev36",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -128,7 +128,7 @@ class _FileIO(Generic[T]):
128
128
 
129
129
  **Usage**
130
130
 
131
- ```python
131
+ ```python notest
132
132
  import modal
133
133
 
134
134
  app = modal.App.lookup("my-app", create_if_missing=True)
@@ -62,7 +62,7 @@ class _FileIO(typing.Generic[T]):
62
62
 
63
63
  **Usage**
64
64
 
65
- ```python
65
+ ```python notest
66
66
  import modal
67
67
 
68
68
  app = modal.App.lookup("my-app", create_if_missing=True)
@@ -232,7 +232,7 @@ class FileIO(typing.Generic[T]):
232
232
 
233
233
  **Usage**
234
234
 
235
- ```python
235
+ ```python notest
236
236
  import modal
237
237
 
238
238
  app = modal.App.lookup("my-app", create_if_missing=True)
@@ -13,6 +13,7 @@ from pathlib import Path, PurePosixPath
13
13
  from typing import Callable, Optional, Sequence, Union
14
14
 
15
15
  from google.protobuf.message import Message
16
+ from grpclib import GRPCError
16
17
 
17
18
  import modal.exception
18
19
  import modal.file_pattern_matcher
@@ -929,19 +930,23 @@ async def _create_single_client_dependency_mount(
929
930
  remote_path=REMOTE_SITECUSTOMIZE_PATH,
930
931
  )
931
932
 
932
- await python_mount._deploy.aio(
933
- mount_name,
934
- api_pb2.DEPLOYMENT_NAMESPACE_GLOBAL,
935
- environment_name=profile_environment,
936
- allow_overwrite=allow_overwrite,
937
- client=client,
938
- )
939
- print(f"✅ Deployed mount {mount_name} to global namespace.")
933
+ try:
934
+ await python_mount._deploy.aio(
935
+ mount_name,
936
+ api_pb2.DEPLOYMENT_NAMESPACE_GLOBAL,
937
+ environment_name=profile_environment,
938
+ allow_overwrite=allow_overwrite,
939
+ client=client,
940
+ )
941
+ print(f"✅ Deployed mount {mount_name} to global namespace.")
942
+ except GRPCError as e:
943
+ print(f"⚠️ Mount creation failed with {e.status}: {e.message}")
940
944
 
941
945
 
942
946
  async def _create_client_dependency_mounts(
943
947
  client=None,
944
948
  python_versions: list[str] = list(PYTHON_STANDALONE_VERSIONS),
949
+ builder_versions: list[str] = ["2025.06"], # Reenable "PREVIEW" during testing
945
950
  check_if_exists=True,
946
951
  ):
947
952
  arch = "x86_64"
@@ -950,8 +955,8 @@ async def _create_client_dependency_mounts(
950
955
  ("musllinux_1_2", f"{arch}-unknown-linux-musl"), # musl >= 1.2
951
956
  ]
952
957
  coros = []
953
- for builder_version in ["2025.06", "PREVIEW"]:
954
- for python_version in python_versions:
958
+ for python_version in python_versions:
959
+ for builder_version in builder_versions:
955
960
  for platform, uv_python_platform in platform_tags:
956
961
  coros.append(
957
962
  _create_single_client_dependency_mount(
@@ -961,9 +966,11 @@ async def _create_client_dependency_mounts(
961
966
  arch,
962
967
  platform,
963
968
  uv_python_platform,
964
- # Re-enable mount overwriting for PREVIEW version while under development
965
- # check_if_exists=builder_version != "PREVIEW",
966
- # allow_overwrite=builder_version == "PREVIEW",
969
+ # This check_if_exists / allow_overwrite parameterization is very awkward
970
+ # Also it doesn't provide a hook for overwriting a non-preview version, which
971
+ # in theory we may need to do at some point (hopefully not, but...)
972
+ check_if_exists=check_if_exists and builder_version != "PREVIEW",
973
+ allow_overwrite=builder_version == "PREVIEW",
967
974
  )
968
975
  )
969
976
  await TaskContext.gather(*coros)
@@ -570,15 +570,28 @@ async def _create_single_client_dependency_mount(
570
570
  allow_overwrite: bool = False,
571
571
  ): ...
572
572
  async def _create_client_dependency_mounts(
573
- client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
573
+ client=None,
574
+ python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"],
575
+ builder_versions: list[str] = ["2025.06"],
576
+ check_if_exists=True,
574
577
  ): ...
575
578
 
576
579
  class __create_client_dependency_mounts_spec(typing_extensions.Protocol):
577
580
  def __call__(
578
- self, /, client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
581
+ self,
582
+ /,
583
+ client=None,
584
+ python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"],
585
+ builder_versions: list[str] = ["2025.06"],
586
+ check_if_exists=True,
579
587
  ): ...
580
588
  async def aio(
581
- self, /, client=None, python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"], check_if_exists=True
589
+ self,
590
+ /,
591
+ client=None,
592
+ python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"],
593
+ builder_versions: list[str] = ["2025.06"],
594
+ check_if_exists=True,
582
595
  ): ...
583
596
 
584
597
  create_client_dependency_mounts: __create_client_dependency_mounts_spec
@@ -296,8 +296,9 @@ class _Sandbox(_Object, type_prefix="sb"):
296
296
  environment_name: Optional[str] = None, # *DEPRECATED* Optionally override the default environment
297
297
  ) -> "_Sandbox":
298
298
  """
299
- Create a new Sandbox to run untrusted, arbitrary code. The Sandbox's corresponding container
300
- will be created asynchronously.
299
+ Create a new Sandbox to run untrusted, arbitrary code.
300
+
301
+ The Sandbox's corresponding container will be created asynchronously.
301
302
 
302
303
  **Usage**
303
304
 
@@ -120,8 +120,9 @@ class _Sandbox(modal._object._Object):
120
120
  client: typing.Optional[modal.client._Client] = None,
121
121
  environment_name: typing.Optional[str] = None,
122
122
  ) -> _Sandbox:
123
- """Create a new Sandbox to run untrusted, arbitrary code. The Sandbox's corresponding container
124
- will be created asynchronously.
123
+ """Create a new Sandbox to run untrusted, arbitrary code.
124
+
125
+ The Sandbox's corresponding container will be created asynchronously.
125
126
 
126
127
  **Usage**
127
128
 
@@ -432,8 +433,9 @@ class Sandbox(modal.object.Object):
432
433
  client: typing.Optional[modal.client.Client] = None,
433
434
  environment_name: typing.Optional[str] = None,
434
435
  ) -> Sandbox:
435
- """Create a new Sandbox to run untrusted, arbitrary code. The Sandbox's corresponding container
436
- will be created asynchronously.
436
+ """Create a new Sandbox to run untrusted, arbitrary code.
437
+
438
+ The Sandbox's corresponding container will be created asynchronously.
437
439
 
438
440
  **Usage**
439
441
 
@@ -482,8 +484,9 @@ class Sandbox(modal.object.Object):
482
484
  client: typing.Optional[modal.client.Client] = None,
483
485
  environment_name: typing.Optional[str] = None,
484
486
  ) -> Sandbox:
485
- """Create a new Sandbox to run untrusted, arbitrary code. The Sandbox's corresponding container
486
- will be created asynchronously.
487
+ """Create a new Sandbox to run untrusted, arbitrary code.
488
+
489
+ The Sandbox's corresponding container will be created asynchronously.
487
490
 
488
491
  **Usage**
489
492
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev34
3
+ Version: 1.1.2.dev36
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -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.2.dev34"
4
+ __version__ = "1.1.2.dev36"
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