modal 1.1.5.dev67__tar.gz → 1.1.5.dev69__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.dev67 → modal-1.1.5.dev69}/PKG-INFO +1 -1
  2. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_functions.py +3 -0
  3. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/programs/run_jupyter.py +1 -1
  4. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/programs/run_marimo.py +1 -1
  5. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/programs/vscode.py +1 -1
  6. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/client.pyi +2 -2
  7. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/experimental/__init__.py +1 -48
  8. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal.egg-info/PKG-INFO +1 -1
  9. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_version/__init__.py +1 -1
  10. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/LICENSE +0 -0
  11. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/README.md +0 -0
  12. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/__init__.py +0 -0
  13. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/__main__.py +0 -0
  14. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_clustered_functions.py +0 -0
  15. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_clustered_functions.pyi +0 -0
  16. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_container_entrypoint.py +0 -0
  17. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_ipython.py +0 -0
  18. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_location.py +0 -0
  19. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_object.py +0 -0
  20. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_output.py +0 -0
  21. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_partial_function.py +0 -0
  22. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_pty.py +0 -0
  23. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_resolver.py +0 -0
  24. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_resources.py +0 -0
  25. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/__init__.py +0 -0
  26. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/asgi.py +0 -0
  27. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/container_io_manager.py +0 -0
  28. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/container_io_manager.pyi +0 -0
  29. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/execution_context.py +0 -0
  30. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/execution_context.pyi +0 -0
  31. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  32. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/telemetry.py +0 -0
  33. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_runtime/user_code_imports.py +0 -0
  34. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_serialization.py +0 -0
  35. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_traceback.py +0 -0
  36. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_tunnel.py +0 -0
  37. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_tunnel.pyi +0 -0
  38. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_type_manager.py +0 -0
  39. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/__init__.py +0 -0
  40. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/app_utils.py +0 -0
  41. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/async_utils.py +0 -0
  42. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/auth_token_manager.py +0 -0
  43. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/blob_utils.py +0 -0
  44. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/bytes_io_segment_payload.py +0 -0
  45. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/deprecation.py +0 -0
  46. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/docker_utils.py +0 -0
  47. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/function_utils.py +0 -0
  48. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/git_utils.py +0 -0
  49. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/grpc_testing.py +0 -0
  50. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/grpc_utils.py +0 -0
  51. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/hash_utils.py +0 -0
  52. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/http_utils.py +0 -0
  53. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/jwt_utils.py +0 -0
  54. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/logger.py +0 -0
  55. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/mount_utils.py +0 -0
  56. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/name_utils.py +0 -0
  57. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/package_utils.py +0 -0
  58. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/pattern_utils.py +0 -0
  59. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/rand_pb_testing.py +0 -0
  60. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/shell_utils.py +0 -0
  61. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_utils/time_utils.py +0 -0
  62. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_vendor/__init__.py +0 -0
  63. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  64. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_vendor/cloudpickle.py +0 -0
  65. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_vendor/tblib.py +0 -0
  66. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/_watcher.py +0 -0
  67. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/app.py +0 -0
  68. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/app.pyi +0 -0
  69. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/2023.12.312.txt +0 -0
  70. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/2023.12.txt +0 -0
  71. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/2024.04.txt +0 -0
  72. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/2024.10.txt +0 -0
  73. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/2025.06.txt +0 -0
  74. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/PREVIEW.txt +0 -0
  75. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/README.md +0 -0
  76. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/builder/base-images.json +0 -0
  77. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/call_graph.py +0 -0
  78. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/__init__.py +0 -0
  79. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/_download.py +0 -0
  80. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/_traceback.py +0 -0
  81. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/app.py +0 -0
  82. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/cluster.py +0 -0
  83. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/config.py +0 -0
  84. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/container.py +0 -0
  85. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/dict.py +0 -0
  86. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/entry_point.py +0 -0
  87. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/environment.py +0 -0
  88. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/import_refs.py +0 -0
  89. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/launch.py +0 -0
  90. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/network_file_system.py +0 -0
  91. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/profile.py +0 -0
  92. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/programs/__init__.py +0 -0
  93. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/programs/launch_instance_ssh.py +0 -0
  94. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/queues.py +0 -0
  95. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/run.py +0 -0
  96. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/secret.py +0 -0
  97. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/token.py +0 -0
  98. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/utils.py +0 -0
  99. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cli/volume.py +0 -0
  100. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/client.py +0 -0
  101. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cloud_bucket_mount.py +0 -0
  102. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cloud_bucket_mount.pyi +0 -0
  103. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cls.py +0 -0
  104. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/cls.pyi +0 -0
  105. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/config.py +0 -0
  106. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/container_process.py +0 -0
  107. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/container_process.pyi +0 -0
  108. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/dict.py +0 -0
  109. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/dict.pyi +0 -0
  110. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/environments.py +0 -0
  111. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/environments.pyi +0 -0
  112. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/exception.py +0 -0
  113. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/experimental/flash.py +0 -0
  114. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/experimental/flash.pyi +0 -0
  115. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/experimental/ipython.py +0 -0
  116. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/file_io.py +0 -0
  117. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/file_io.pyi +0 -0
  118. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/file_pattern_matcher.py +0 -0
  119. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/functions.py +0 -0
  120. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/functions.pyi +0 -0
  121. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/gpu.py +0 -0
  122. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/image.py +0 -0
  123. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/image.pyi +0 -0
  124. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/io_streams.py +0 -0
  125. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/io_streams.pyi +0 -0
  126. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/mount.py +0 -0
  127. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/mount.pyi +0 -0
  128. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/network_file_system.py +0 -0
  129. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/network_file_system.pyi +0 -0
  130. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/object.py +0 -0
  131. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/object.pyi +0 -0
  132. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/output.py +0 -0
  133. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/parallel_map.py +0 -0
  134. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/parallel_map.pyi +0 -0
  135. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/partial_function.py +0 -0
  136. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/partial_function.pyi +0 -0
  137. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/proxy.py +0 -0
  138. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/proxy.pyi +0 -0
  139. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/py.typed +0 -0
  140. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/queue.py +0 -0
  141. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/queue.pyi +0 -0
  142. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/retries.py +0 -0
  143. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/runner.py +0 -0
  144. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/runner.pyi +0 -0
  145. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/running_app.py +0 -0
  146. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/sandbox.py +0 -0
  147. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/sandbox.pyi +0 -0
  148. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/schedule.py +0 -0
  149. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/scheduler_placement.py +0 -0
  150. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/secret.py +0 -0
  151. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/secret.pyi +0 -0
  152. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/serving.py +0 -0
  153. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/serving.pyi +0 -0
  154. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/snapshot.py +0 -0
  155. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/snapshot.pyi +0 -0
  156. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/stream_type.py +0 -0
  157. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/token_flow.py +0 -0
  158. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/token_flow.pyi +0 -0
  159. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/volume.py +0 -0
  160. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal/volume.pyi +0 -0
  161. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/api.proto +0 -0
  174. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/options.proto +0 -0
  182. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/py.typed +0 -0
  188. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/sandbox_router.proto +0 -0
  189. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/sandbox_router_grpc.py +0 -0
  190. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/sandbox_router_pb2.py +0 -0
  191. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/sandbox_router_pb2.pyi +0 -0
  192. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  193. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  194. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/modal_version/__main__.py +0 -0
  195. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/pyproject.toml +0 -0
  196. {modal-1.1.5.dev67 → modal-1.1.5.dev69}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev67
3
+ Version: 1.1.5.dev69
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -736,6 +736,9 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
736
736
  if is_generator:
737
737
  raise InvalidError("Generator functions do not support retries.")
738
738
 
739
+ if timeout is None: # type: ignore[unreachable] # Help users who aren't using type checkers
740
+ raise InvalidError("The `timeout` parameter cannot be set to None: https://modal.com/docs/guide/timeouts")
741
+
739
742
  secrets = secrets or []
740
743
  if env:
741
744
  secrets = [*secrets, _Secret.from_dict(env)]
@@ -54,7 +54,7 @@ def wait_for_port(url: str, q: Queue):
54
54
  cpu=args.get("cpu"),
55
55
  memory=args.get("memory"),
56
56
  gpu=args.get("gpu"),
57
- timeout=args.get("timeout"),
57
+ timeout=args.get("timeout", 3600),
58
58
  secrets=[Secret.from_dict({"MODAL_LAUNCH_ARGS": json.dumps(args)})],
59
59
  volumes=volumes,
60
60
  max_containers=1 if volume else None,
@@ -46,7 +46,7 @@ def _wait_for_port(url: str, q: Queue) -> None:
46
46
  cpu=args.get("cpu"),
47
47
  memory=args.get("memory"),
48
48
  gpu=args.get("gpu"),
49
- timeout=args.get("timeout"),
49
+ timeout=args.get("timeout", 3600),
50
50
  secrets=[Secret.from_dict({"MODAL_LAUNCH_ARGS": json.dumps(args)})],
51
51
  volumes=volumes,
52
52
  max_containers=1 if volume else None,
@@ -79,7 +79,7 @@ def wait_for_port(data: tuple[str, str], q: Queue):
79
79
  cpu=args.get("cpu"),
80
80
  memory=args.get("memory"),
81
81
  gpu=args.get("gpu"),
82
- timeout=args.get("timeout"),
82
+ timeout=args.get("timeout", 3600),
83
83
  secrets=[Secret.from_dict({"MODAL_LAUNCH_ARGS": json.dumps(args)})],
84
84
  volumes=volumes,
85
85
  max_containers=1 if volume else None,
@@ -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.dev67",
36
+ version: str = "1.1.5.dev69",
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.dev67",
167
+ version: str = "1.1.5.dev69",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -13,11 +13,10 @@ from .._object import _get_environment_name
13
13
  from .._partial_function import _clustered
14
14
  from .._runtime.container_io_manager import _ContainerIOManager
15
15
  from .._utils.async_utils import synchronize_api, synchronizer
16
- from .._utils.deprecation import deprecation_warning
17
16
  from .._utils.grpc_utils import retry_transient_errors
18
17
  from ..app import _App
19
18
  from ..client import _Client
20
- from ..cls import _Cls, _Obj
19
+ from ..cls import _Cls
21
20
  from ..exception import InvalidError
22
21
  from ..image import DockerfileSpec, ImageBuilderVersion, _Image, _ImageRegistryConfig
23
22
  from ..secret import _Secret
@@ -340,52 +339,6 @@ async def notebook_base_image(*, python_version: Optional[str] = None, force_bui
340
339
  )
341
340
 
342
341
 
343
- @synchronizer.create_blocking
344
- async def update_autoscaler(
345
- obj: Union[_Function, _Obj],
346
- *,
347
- min_containers: Optional[int] = None,
348
- max_containers: Optional[int] = None,
349
- buffer_containers: Optional[int] = None,
350
- scaledown_window: Optional[int] = None,
351
- client: Optional[_Client] = None,
352
- ) -> None:
353
- """Update the autoscaler settings for a Function or Obj (instance of a Cls).
354
-
355
- This is an experimental interface for a feature that we will be adding to
356
- replace the existing `.keep_warm()` method. The stable form of this interface
357
- may look different (i.e., it may be a standalone function or a method).
358
-
359
- """
360
- deprecation_warning(
361
- (2025, 5, 5),
362
- "The modal.experimental.update_autoscaler(...) function is now deprecated in favor of"
363
- " a stable `.update_autoscaler(...) method on the corresponding object.",
364
- show_source=True,
365
- )
366
-
367
- settings = api_pb2.AutoscalerSettings(
368
- min_containers=min_containers,
369
- max_containers=max_containers,
370
- buffer_containers=buffer_containers,
371
- scaledown_window=scaledown_window,
372
- )
373
-
374
- if client is None:
375
- client = await _Client.from_env()
376
-
377
- if isinstance(obj, _Function):
378
- f = obj
379
- else:
380
- assert obj._cls._class_service_function is not None
381
- await obj._cls._class_service_function.hydrate(client=client)
382
- f = obj._cached_service_function()
383
- await f.hydrate(client=client)
384
-
385
- request = api_pb2.FunctionUpdateSchedulingParamsRequest(function_id=f.object_id, settings=settings)
386
- await retry_transient_errors(client.stub.FunctionUpdateSchedulingParams, request)
387
-
388
-
389
342
  @synchronizer.create_blocking
390
343
  async def image_delete(
391
344
  image_id: str,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev67
3
+ Version: 1.1.5.dev69
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.5.dev67"
4
+ __version__ = "1.1.5.dev69"
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
File without changes