modal 1.1.2.dev42__tar.gz → 1.1.2.dev44__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.dev42 → modal-1.1.2.dev44}/PKG-INFO +1 -1
  2. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/secret.py +5 -1
  3. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/volume.py +1 -1
  4. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/client.pyi +2 -2
  5. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/functions.pyi +8 -7
  6. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/parallel_map.py +8 -6
  7. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/parallel_map.pyi +8 -7
  8. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/secret.py +17 -0
  9. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/secret.pyi +41 -0
  10. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/volume.py +16 -0
  11. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/volume.pyi +38 -0
  12. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal.egg-info/PKG-INFO +1 -1
  13. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_version/__init__.py +1 -1
  14. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/LICENSE +0 -0
  15. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/README.md +0 -0
  16. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/__init__.py +0 -0
  17. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/__main__.py +0 -0
  18. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_clustered_functions.py +0 -0
  19. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_clustered_functions.pyi +0 -0
  20. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_container_entrypoint.py +0 -0
  21. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_functions.py +0 -0
  22. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_ipython.py +0 -0
  23. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_location.py +0 -0
  24. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_object.py +0 -0
  25. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_output.py +0 -0
  26. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_partial_function.py +0 -0
  27. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_pty.py +0 -0
  28. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_resolver.py +0 -0
  29. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_resources.py +0 -0
  30. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/__init__.py +0 -0
  31. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/asgi.py +0 -0
  32. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/container_io_manager.py +0 -0
  33. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/container_io_manager.pyi +0 -0
  34. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/execution_context.py +0 -0
  35. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/execution_context.pyi +0 -0
  36. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  37. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/telemetry.py +0 -0
  38. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_runtime/user_code_imports.py +0 -0
  39. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_serialization.py +0 -0
  40. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_traceback.py +0 -0
  41. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_tunnel.py +0 -0
  42. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_tunnel.pyi +0 -0
  43. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_type_manager.py +0 -0
  44. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/__init__.py +0 -0
  45. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/app_utils.py +0 -0
  46. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/async_utils.py +0 -0
  47. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/auth_token_manager.py +0 -0
  48. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/blob_utils.py +0 -0
  49. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/bytes_io_segment_payload.py +0 -0
  50. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/deprecation.py +0 -0
  51. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/docker_utils.py +0 -0
  52. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/function_utils.py +0 -0
  53. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/git_utils.py +0 -0
  54. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/grpc_testing.py +0 -0
  55. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/grpc_utils.py +0 -0
  56. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/hash_utils.py +0 -0
  57. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/http_utils.py +0 -0
  58. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/jwt_utils.py +0 -0
  59. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/logger.py +0 -0
  60. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/mount_utils.py +0 -0
  61. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/name_utils.py +0 -0
  62. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/package_utils.py +0 -0
  63. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/pattern_utils.py +0 -0
  64. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/rand_pb_testing.py +0 -0
  65. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/shell_utils.py +0 -0
  66. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_utils/time_utils.py +0 -0
  67. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_vendor/__init__.py +0 -0
  68. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  69. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_vendor/cloudpickle.py +0 -0
  70. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_vendor/tblib.py +0 -0
  71. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/_watcher.py +0 -0
  72. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/app.py +0 -0
  73. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/app.pyi +0 -0
  74. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/2023.12.312.txt +0 -0
  75. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/2023.12.txt +0 -0
  76. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/2024.04.txt +0 -0
  77. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/2024.10.txt +0 -0
  78. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/2025.06.txt +0 -0
  79. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/PREVIEW.txt +0 -0
  80. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/README.md +0 -0
  81. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/builder/base-images.json +0 -0
  82. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/call_graph.py +0 -0
  83. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/__init__.py +0 -0
  84. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/_download.py +0 -0
  85. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/_traceback.py +0 -0
  86. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/app.py +0 -0
  87. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/cluster.py +0 -0
  88. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/config.py +0 -0
  89. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/container.py +0 -0
  90. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/dict.py +0 -0
  91. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/entry_point.py +0 -0
  92. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/environment.py +0 -0
  93. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/import_refs.py +0 -0
  94. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/launch.py +0 -0
  95. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/network_file_system.py +0 -0
  96. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/profile.py +0 -0
  97. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/programs/__init__.py +0 -0
  98. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/programs/launch_instance_ssh.py +0 -0
  99. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/programs/run_jupyter.py +0 -0
  100. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/programs/run_marimo.py +0 -0
  101. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/programs/vscode.py +0 -0
  102. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/queues.py +0 -0
  103. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/run.py +0 -0
  104. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/token.py +0 -0
  105. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cli/utils.py +0 -0
  106. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/client.py +0 -0
  107. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cloud_bucket_mount.py +0 -0
  108. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cloud_bucket_mount.pyi +0 -0
  109. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cls.py +0 -0
  110. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/cls.pyi +0 -0
  111. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/config.py +0 -0
  112. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/container_process.py +0 -0
  113. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/container_process.pyi +0 -0
  114. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/dict.py +0 -0
  115. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/dict.pyi +0 -0
  116. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/environments.py +0 -0
  117. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/environments.pyi +0 -0
  118. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/exception.py +0 -0
  119. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/experimental/__init__.py +0 -0
  120. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/experimental/flash.py +0 -0
  121. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/experimental/flash.pyi +0 -0
  122. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/experimental/ipython.py +0 -0
  123. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/file_io.py +0 -0
  124. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/file_io.pyi +0 -0
  125. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/file_pattern_matcher.py +0 -0
  126. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/functions.py +0 -0
  127. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/gpu.py +0 -0
  128. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/image.py +0 -0
  129. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/image.pyi +0 -0
  130. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/io_streams.py +0 -0
  131. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/io_streams.pyi +0 -0
  132. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/mount.py +0 -0
  133. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/mount.pyi +0 -0
  134. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/network_file_system.py +0 -0
  135. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/network_file_system.pyi +0 -0
  136. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/object.py +0 -0
  137. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/object.pyi +0 -0
  138. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/output.py +0 -0
  139. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/partial_function.py +0 -0
  140. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/partial_function.pyi +0 -0
  141. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/proxy.py +0 -0
  142. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/proxy.pyi +0 -0
  143. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/py.typed +0 -0
  144. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/queue.py +0 -0
  145. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/queue.pyi +0 -0
  146. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/retries.py +0 -0
  147. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/runner.py +0 -0
  148. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/runner.pyi +0 -0
  149. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/running_app.py +0 -0
  150. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/sandbox.py +0 -0
  151. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/sandbox.pyi +0 -0
  152. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/schedule.py +0 -0
  153. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/scheduler_placement.py +0 -0
  154. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/serving.py +0 -0
  155. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/serving.pyi +0 -0
  156. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/snapshot.py +0 -0
  157. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/snapshot.pyi +0 -0
  158. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/stream_type.py +0 -0
  159. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/token_flow.py +0 -0
  160. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal/token_flow.pyi +0 -0
  161. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/api.proto +0 -0
  174. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/options.proto +0 -0
  182. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_proto/py.typed +0 -0
  188. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/modal_version/__main__.py +0 -0
  189. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/pyproject.toml +0 -0
  190. {modal-1.1.2.dev42 → modal-1.1.2.dev44}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev42
3
+ Version: 1.1.2.dev44
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -140,7 +140,11 @@ modal secret create my-credentials username=john password="$PASSWORD"
140
140
  raise click.UsageError(f"Non-string value for secret '{k}'")
141
141
 
142
142
  # Create secret
143
- await _Secret.create_deployed(secret_name, env_dict, overwrite=force)
143
+ if force:
144
+ # TODO migrate this path once we support Secret.update()?
145
+ await _Secret._create_deployed(secret_name, env_dict, overwrite=force)
146
+ else:
147
+ await _Secret.objects.create(secret_name, env_dict)
144
148
 
145
149
  # Print code sample
146
150
  console = make_console()
@@ -54,7 +54,7 @@ def create(
54
54
  version: Optional[int] = Option(default=None, help="VolumeFS version. (Experimental)"),
55
55
  ):
56
56
  env_name = ensure_env(env)
57
- modal.Volume.create_deployed(name, environment_name=env, version=version)
57
+ modal.Volume.objects.create(name, environment_name=env, version=version)
58
58
  usage_code = f"""
59
59
  @app.function(volumes={{"/my_vol": modal.Volume.from_name("{name}")}})
60
60
  def some_func():
@@ -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.dev42",
36
+ version: str = "1.1.2.dev44",
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.dev42",
167
+ version: str = "1.1.2.dev44",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -701,24 +701,25 @@ class Function(
701
701
 
702
702
  class __experimental_spawn_map_spec(typing_extensions.Protocol[SUPERSELF]):
703
703
  def __call__(self, /, *input_iterators, kwargs={}) -> modal._functions._FunctionCall:
704
- """Spawn parallel execution over a set of inputs, exiting as soon as the inputs are created (without waiting
705
- for the map to complete).
704
+ """mdmd:hidden
705
+ Spawn parallel execution over a set of inputs, returning as soon as the inputs are created.
706
+
707
+ Unlike `modal.Function.map`, this method does not block on completion of the remote execution but
708
+ returns a `modal.FunctionCall` object that can be used to poll status and retrieve results later.
706
709
 
707
710
  Takes one iterator argument per argument in the function being mapped over.
708
711
 
709
712
  Example:
710
713
  ```python
711
714
  @app.function()
712
- def my_func(a):
713
- return a ** 2
715
+ def my_func(a, b):
716
+ return a ** b
714
717
 
715
718
 
716
719
  @app.local_entrypoint()
717
720
  def main():
718
- fc = my_func.spawn_map([1, 2, 3, 4])
721
+ fc = my_func.spawn_map([1, 2], [3, 4])
719
722
  ```
720
-
721
- Returns a FunctionCall object that can be used to retrieve results
722
723
  """
723
724
  ...
724
725
 
@@ -1179,24 +1179,26 @@ async def _spawn_map_helper(
1179
1179
 
1180
1180
 
1181
1181
  def _experimental_spawn_map_sync(self, *input_iterators, kwargs={}) -> "modal.functions._FunctionCall":
1182
- """Spawn parallel execution over a set of inputs, exiting as soon as the inputs are created (without waiting
1183
- for the map to complete).
1182
+ """mdmd:hidden
1183
+ Spawn parallel execution over a set of inputs, returning as soon as the inputs are created.
1184
+
1185
+ Unlike `modal.Function.map`, this method does not block on completion of the remote execution but
1186
+ returns a `modal.FunctionCall` object that can be used to poll status and retrieve results later.
1184
1187
 
1185
1188
  Takes one iterator argument per argument in the function being mapped over.
1186
1189
 
1187
1190
  Example:
1188
1191
  ```python
1189
1192
  @app.function()
1190
- def my_func(a):
1191
- return a ** 2
1193
+ def my_func(a, b):
1194
+ return a ** b
1192
1195
 
1193
1196
 
1194
1197
  @app.local_entrypoint()
1195
1198
  def main():
1196
- fc = my_func.spawn_map([1, 2, 3, 4])
1199
+ fc = my_func.spawn_map([1, 2], [3, 4])
1197
1200
  ```
1198
1201
 
1199
- Returns a FunctionCall object that can be used to retrieve results
1200
1202
  """
1201
1203
 
1202
1204
  return run_coroutine_in_temporary_event_loop(
@@ -265,24 +265,25 @@ async def _spawn_map_helper(
265
265
  self: modal.functions.Function, async_input_gen, kwargs={}
266
266
  ) -> modal._functions._FunctionCall: ...
267
267
  def _experimental_spawn_map_sync(self, *input_iterators, kwargs={}) -> modal._functions._FunctionCall:
268
- """Spawn parallel execution over a set of inputs, exiting as soon as the inputs are created (without waiting
269
- for the map to complete).
268
+ """mdmd:hidden
269
+ Spawn parallel execution over a set of inputs, returning as soon as the inputs are created.
270
+
271
+ Unlike `modal.Function.map`, this method does not block on completion of the remote execution but
272
+ returns a `modal.FunctionCall` object that can be used to poll status and retrieve results later.
270
273
 
271
274
  Takes one iterator argument per argument in the function being mapped over.
272
275
 
273
276
  Example:
274
277
  ```python
275
278
  @app.function()
276
- def my_func(a):
277
- return a ** 2
279
+ def my_func(a, b):
280
+ return a ** b
278
281
 
279
282
 
280
283
  @app.local_entrypoint()
281
284
  def main():
282
- fc = my_func.spawn_map([1, 2, 3, 4])
285
+ fc = my_func.spawn_map([1, 2], [3, 4])
283
286
  ```
284
-
285
- Returns a FunctionCall object that can be used to retrieve results
286
287
  """
287
288
  ...
288
289
 
@@ -442,6 +442,23 @@ class _Secret(_Object, type_prefix="st"):
442
442
  client: Optional[_Client] = None,
443
443
  environment_name: Optional[str] = None,
444
444
  overwrite: bool = False,
445
+ ) -> str:
446
+ """mdmd:hidden"""
447
+ deprecation_warning(
448
+ (2025, 8, 13),
449
+ "The undocumented `modal.Secret.create_deployed` method is deprecated and will be removed "
450
+ "in a future release. It can be replaced with `modal.Secret.objects.create`.",
451
+ )
452
+ return await _Secret._create_deployed(deployment_name, env_dict, namespace, client, environment_name, overwrite)
453
+
454
+ @staticmethod
455
+ async def _create_deployed(
456
+ deployment_name: str,
457
+ env_dict: dict[str, str],
458
+ namespace=None, # mdmd:line-hidden
459
+ client: Optional[_Client] = None,
460
+ environment_name: Optional[str] = None,
461
+ overwrite: bool = False,
445
462
  ) -> str:
446
463
  """mdmd:hidden"""
447
464
  warn_if_passing_namespace(namespace, "modal.Secret.create_deployed")
@@ -446,6 +446,18 @@ class _Secret(modal._object._Object):
446
446
  """mdmd:hidden"""
447
447
  ...
448
448
 
449
+ @staticmethod
450
+ async def _create_deployed(
451
+ deployment_name: str,
452
+ env_dict: dict[str, str],
453
+ namespace=None,
454
+ client: typing.Optional[modal.client._Client] = None,
455
+ environment_name: typing.Optional[str] = None,
456
+ overwrite: bool = False,
457
+ ) -> str:
458
+ """mdmd:hidden"""
459
+ ...
460
+
449
461
  async def info(self) -> SecretInfo:
450
462
  """Return information about the Secret object."""
451
463
  ...
@@ -598,6 +610,35 @@ class Secret(modal.object.Object):
598
610
 
599
611
  create_deployed: __create_deployed_spec
600
612
 
613
+ class ___create_deployed_spec(typing_extensions.Protocol):
614
+ def __call__(
615
+ self,
616
+ /,
617
+ deployment_name: str,
618
+ env_dict: dict[str, str],
619
+ namespace=None,
620
+ client: typing.Optional[modal.client.Client] = None,
621
+ environment_name: typing.Optional[str] = None,
622
+ overwrite: bool = False,
623
+ ) -> str:
624
+ """mdmd:hidden"""
625
+ ...
626
+
627
+ async def aio(
628
+ self,
629
+ /,
630
+ deployment_name: str,
631
+ env_dict: dict[str, str],
632
+ namespace=None,
633
+ client: typing.Optional[modal.client.Client] = None,
634
+ environment_name: typing.Optional[str] = None,
635
+ overwrite: bool = False,
636
+ ) -> str:
637
+ """mdmd:hidden"""
638
+ ...
639
+
640
+ _create_deployed: ___create_deployed_spec
641
+
601
642
  class __info_spec(typing_extensions.Protocol[SUPERSELF]):
602
643
  def __call__(self, /) -> SecretInfo:
603
644
  """Return information about the Secret object."""
@@ -524,6 +524,22 @@ class _Volume(_Object, type_prefix="vo"):
524
524
  client: Optional[_Client] = None,
525
525
  environment_name: Optional[str] = None,
526
526
  version: "typing.Optional[modal_proto.api_pb2.VolumeFsVersion.ValueType]" = None,
527
+ ) -> str:
528
+ """mdmd:hidden"""
529
+ deprecation_warning(
530
+ (2025, 8, 13),
531
+ "The undocumented `modal.Volume.create_deployed` method is deprecated and will be removed "
532
+ "in a future release. It can be replaced with `modal.Volume.objects.create`.",
533
+ )
534
+ return await _Volume._create_deployed(deployment_name, namespace, client, environment_name, version)
535
+
536
+ @staticmethod
537
+ async def _create_deployed(
538
+ deployment_name: str,
539
+ namespace=None, # mdmd:line-hidden
540
+ client: Optional[_Client] = None,
541
+ environment_name: Optional[str] = None,
542
+ version: "typing.Optional[modal_proto.api_pb2.VolumeFsVersion.ValueType]" = None,
527
543
  ) -> str:
528
544
  """mdmd:hidden"""
529
545
  check_object_name(deployment_name, "Volume")
@@ -547,6 +547,17 @@ class _Volume(modal._object._Object):
547
547
  """mdmd:hidden"""
548
548
  ...
549
549
 
550
+ @staticmethod
551
+ async def _create_deployed(
552
+ deployment_name: str,
553
+ namespace=None,
554
+ client: typing.Optional[modal.client._Client] = None,
555
+ environment_name: typing.Optional[str] = None,
556
+ version: typing.Optional[int] = None,
557
+ ) -> str:
558
+ """mdmd:hidden"""
559
+ ...
560
+
550
561
  async def info(self) -> VolumeInfo:
551
562
  """Return information about the Volume object."""
552
563
  ...
@@ -914,6 +925,33 @@ class Volume(modal.object.Object):
914
925
 
915
926
  create_deployed: __create_deployed_spec
916
927
 
928
+ class ___create_deployed_spec(typing_extensions.Protocol):
929
+ def __call__(
930
+ self,
931
+ /,
932
+ deployment_name: str,
933
+ namespace=None,
934
+ client: typing.Optional[modal.client.Client] = None,
935
+ environment_name: typing.Optional[str] = None,
936
+ version: typing.Optional[int] = None,
937
+ ) -> str:
938
+ """mdmd:hidden"""
939
+ ...
940
+
941
+ async def aio(
942
+ self,
943
+ /,
944
+ deployment_name: str,
945
+ namespace=None,
946
+ client: typing.Optional[modal.client.Client] = None,
947
+ environment_name: typing.Optional[str] = None,
948
+ version: typing.Optional[int] = None,
949
+ ) -> str:
950
+ """mdmd:hidden"""
951
+ ...
952
+
953
+ _create_deployed: ___create_deployed_spec
954
+
917
955
  class __info_spec(typing_extensions.Protocol[SUPERSELF]):
918
956
  def __call__(self, /) -> VolumeInfo:
919
957
  """Return information about the Volume object."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.2.dev42
3
+ Version: 1.1.2.dev44
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.dev42"
4
+ __version__ = "1.1.2.dev44"
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