modal 1.1.2.dev34__tar.gz → 1.1.2.dev35__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.dev35}/PKG-INFO +1 -1
  2. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/client.pyi +2 -2
  3. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/mount.py +20 -13
  4. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/mount.pyi +16 -3
  5. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_version/__init__.py +1 -1
  7. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/LICENSE +0 -0
  8. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/README.md +0 -0
  9. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/__init__.py +0 -0
  10. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/__main__.py +0 -0
  11. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_clustered_functions.py +0 -0
  12. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_clustered_functions.pyi +0 -0
  13. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_container_entrypoint.py +0 -0
  14. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_functions.py +0 -0
  15. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_ipython.py +0 -0
  16. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_location.py +0 -0
  17. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_object.py +0 -0
  18. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_output.py +0 -0
  19. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_partial_function.py +0 -0
  20. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_pty.py +0 -0
  21. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_resolver.py +0 -0
  22. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_resources.py +0 -0
  23. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/__init__.py +0 -0
  24. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/asgi.py +0 -0
  25. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/container_io_manager.pyi +0 -0
  27. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/execution_context.py +0 -0
  28. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/execution_context.pyi +0 -0
  29. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  30. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/telemetry.py +0 -0
  31. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_runtime/user_code_imports.py +0 -0
  32. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_serialization.py +0 -0
  33. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_traceback.py +0 -0
  34. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_tunnel.py +0 -0
  35. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_tunnel.pyi +0 -0
  36. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_type_manager.py +0 -0
  37. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/__init__.py +0 -0
  38. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/app_utils.py +0 -0
  39. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/async_utils.py +0 -0
  40. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/auth_token_manager.py +0 -0
  41. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/blob_utils.py +0 -0
  42. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/bytes_io_segment_payload.py +0 -0
  43. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/deprecation.py +0 -0
  44. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/docker_utils.py +0 -0
  45. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/function_utils.py +0 -0
  46. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/git_utils.py +0 -0
  47. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/grpc_testing.py +0 -0
  48. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/grpc_utils.py +0 -0
  49. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/hash_utils.py +0 -0
  50. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/http_utils.py +0 -0
  51. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/jwt_utils.py +0 -0
  52. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/logger.py +0 -0
  53. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/mount_utils.py +0 -0
  54. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/name_utils.py +0 -0
  55. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/package_utils.py +0 -0
  56. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/pattern_utils.py +0 -0
  57. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/rand_pb_testing.py +0 -0
  58. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/shell_utils.py +0 -0
  59. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_utils/time_utils.py +0 -0
  60. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_vendor/__init__.py +0 -0
  61. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  62. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_vendor/cloudpickle.py +0 -0
  63. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_vendor/tblib.py +0 -0
  64. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/_watcher.py +0 -0
  65. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/app.py +0 -0
  66. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/app.pyi +0 -0
  67. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/2023.12.312.txt +0 -0
  68. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/2023.12.txt +0 -0
  69. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/2024.04.txt +0 -0
  70. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/2024.10.txt +0 -0
  71. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/2025.06.txt +0 -0
  72. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/PREVIEW.txt +0 -0
  73. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/README.md +0 -0
  74. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/builder/base-images.json +0 -0
  75. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/call_graph.py +0 -0
  76. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/__init__.py +0 -0
  77. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/_download.py +0 -0
  78. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/_traceback.py +0 -0
  79. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/app.py +0 -0
  80. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/cluster.py +0 -0
  81. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/config.py +0 -0
  82. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/container.py +0 -0
  83. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/dict.py +0 -0
  84. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/entry_point.py +0 -0
  85. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/environment.py +0 -0
  86. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/import_refs.py +0 -0
  87. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/launch.py +0 -0
  88. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/network_file_system.py +0 -0
  89. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/profile.py +0 -0
  90. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/programs/__init__.py +0 -0
  91. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/programs/launch_instance_ssh.py +0 -0
  92. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/programs/run_jupyter.py +0 -0
  93. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/programs/run_marimo.py +0 -0
  94. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/programs/vscode.py +0 -0
  95. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/queues.py +0 -0
  96. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/run.py +0 -0
  97. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/secret.py +0 -0
  98. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/token.py +0 -0
  99. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/utils.py +0 -0
  100. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cli/volume.py +0 -0
  101. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/client.py +0 -0
  102. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cloud_bucket_mount.py +0 -0
  103. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cloud_bucket_mount.pyi +0 -0
  104. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cls.py +0 -0
  105. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/cls.pyi +0 -0
  106. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/config.py +0 -0
  107. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/container_process.py +0 -0
  108. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/container_process.pyi +0 -0
  109. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/dict.py +0 -0
  110. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/dict.pyi +0 -0
  111. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/environments.py +0 -0
  112. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/environments.pyi +0 -0
  113. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/exception.py +0 -0
  114. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/experimental/__init__.py +0 -0
  115. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/experimental/flash.py +0 -0
  116. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/experimental/flash.pyi +0 -0
  117. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/experimental/ipython.py +0 -0
  118. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/file_io.py +0 -0
  119. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/file_io.pyi +0 -0
  120. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/file_pattern_matcher.py +0 -0
  121. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/functions.py +0 -0
  122. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/functions.pyi +0 -0
  123. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/gpu.py +0 -0
  124. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/image.py +0 -0
  125. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/image.pyi +0 -0
  126. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/io_streams.py +0 -0
  127. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/io_streams.pyi +0 -0
  128. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/network_file_system.py +0 -0
  129. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/network_file_system.pyi +0 -0
  130. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/object.py +0 -0
  131. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/object.pyi +0 -0
  132. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/output.py +0 -0
  133. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/parallel_map.py +0 -0
  134. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/parallel_map.pyi +0 -0
  135. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/partial_function.py +0 -0
  136. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/partial_function.pyi +0 -0
  137. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/proxy.py +0 -0
  138. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/proxy.pyi +0 -0
  139. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/py.typed +0 -0
  140. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/queue.py +0 -0
  141. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/queue.pyi +0 -0
  142. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/retries.py +0 -0
  143. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/runner.py +0 -0
  144. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/runner.pyi +0 -0
  145. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/running_app.py +0 -0
  146. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/sandbox.py +0 -0
  147. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/sandbox.pyi +0 -0
  148. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/schedule.py +0 -0
  149. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/scheduler_placement.py +0 -0
  150. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/secret.py +0 -0
  151. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/secret.pyi +0 -0
  152. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/serving.py +0 -0
  153. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/serving.pyi +0 -0
  154. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/snapshot.py +0 -0
  155. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/snapshot.pyi +0 -0
  156. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/stream_type.py +0 -0
  157. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/token_flow.py +0 -0
  158. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/token_flow.pyi +0 -0
  159. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/volume.py +0 -0
  160. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal/volume.pyi +0 -0
  161. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/api.proto +0 -0
  174. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/options.proto +0 -0
  182. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_proto/py.typed +0 -0
  188. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/modal_version/__main__.py +0 -0
  189. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/pyproject.toml +0 -0
  190. {modal-1.1.2.dev34 → modal-1.1.2.dev35}/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.dev35
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.dev35",
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.dev35",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -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
@@ -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.dev35
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.dev35"
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