modal 1.1.5.dev59__tar.gz → 1.1.5.dev60__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.dev59 → modal-1.1.5.dev60}/PKG-INFO +1 -1
  2. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/client.pyi +2 -2
  3. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/experimental/flash.py +7 -1
  4. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/experimental/flash.pyi +7 -0
  5. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_version/__init__.py +1 -1
  7. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/LICENSE +0 -0
  8. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/README.md +0 -0
  9. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/__init__.py +0 -0
  10. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/__main__.py +0 -0
  11. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_clustered_functions.py +0 -0
  12. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_clustered_functions.pyi +0 -0
  13. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_container_entrypoint.py +0 -0
  14. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_functions.py +0 -0
  15. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_ipython.py +0 -0
  16. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_location.py +0 -0
  17. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_object.py +0 -0
  18. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_output.py +0 -0
  19. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_partial_function.py +0 -0
  20. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_pty.py +0 -0
  21. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_resolver.py +0 -0
  22. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_resources.py +0 -0
  23. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/__init__.py +0 -0
  24. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/asgi.py +0 -0
  25. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/container_io_manager.pyi +0 -0
  27. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/execution_context.py +0 -0
  28. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/execution_context.pyi +0 -0
  29. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  30. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/telemetry.py +0 -0
  31. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_runtime/user_code_imports.py +0 -0
  32. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_serialization.py +0 -0
  33. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_traceback.py +0 -0
  34. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_tunnel.py +0 -0
  35. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_tunnel.pyi +0 -0
  36. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_type_manager.py +0 -0
  37. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/__init__.py +0 -0
  38. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/app_utils.py +0 -0
  39. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/async_utils.py +0 -0
  40. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/auth_token_manager.py +0 -0
  41. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/blob_utils.py +0 -0
  42. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/bytes_io_segment_payload.py +0 -0
  43. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/deprecation.py +0 -0
  44. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/docker_utils.py +0 -0
  45. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/function_utils.py +0 -0
  46. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/git_utils.py +0 -0
  47. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/grpc_testing.py +0 -0
  48. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/grpc_utils.py +0 -0
  49. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/hash_utils.py +0 -0
  50. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/http_utils.py +0 -0
  51. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/jwt_utils.py +0 -0
  52. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/logger.py +0 -0
  53. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/mount_utils.py +0 -0
  54. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/name_utils.py +0 -0
  55. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/package_utils.py +0 -0
  56. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/pattern_utils.py +0 -0
  57. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/rand_pb_testing.py +0 -0
  58. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/shell_utils.py +0 -0
  59. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_utils/time_utils.py +0 -0
  60. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_vendor/__init__.py +0 -0
  61. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  62. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_vendor/cloudpickle.py +0 -0
  63. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_vendor/tblib.py +0 -0
  64. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/_watcher.py +0 -0
  65. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/app.py +0 -0
  66. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/app.pyi +0 -0
  67. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/2023.12.312.txt +0 -0
  68. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/2023.12.txt +0 -0
  69. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/2024.04.txt +0 -0
  70. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/2024.10.txt +0 -0
  71. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/2025.06.txt +0 -0
  72. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/PREVIEW.txt +0 -0
  73. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/README.md +0 -0
  74. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/builder/base-images.json +0 -0
  75. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/call_graph.py +0 -0
  76. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/__init__.py +0 -0
  77. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/_download.py +0 -0
  78. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/_traceback.py +0 -0
  79. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/app.py +0 -0
  80. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/cluster.py +0 -0
  81. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/config.py +0 -0
  82. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/container.py +0 -0
  83. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/dict.py +0 -0
  84. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/entry_point.py +0 -0
  85. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/environment.py +0 -0
  86. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/import_refs.py +0 -0
  87. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/launch.py +0 -0
  88. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/network_file_system.py +0 -0
  89. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/profile.py +0 -0
  90. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/programs/__init__.py +0 -0
  91. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/programs/launch_instance_ssh.py +0 -0
  92. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/programs/run_jupyter.py +0 -0
  93. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/programs/run_marimo.py +0 -0
  94. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/programs/vscode.py +0 -0
  95. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/queues.py +0 -0
  96. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/run.py +0 -0
  97. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/secret.py +0 -0
  98. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/token.py +0 -0
  99. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/utils.py +0 -0
  100. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cli/volume.py +0 -0
  101. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/client.py +0 -0
  102. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cloud_bucket_mount.py +0 -0
  103. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cloud_bucket_mount.pyi +0 -0
  104. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cls.py +0 -0
  105. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/cls.pyi +0 -0
  106. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/config.py +0 -0
  107. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/container_process.py +0 -0
  108. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/container_process.pyi +0 -0
  109. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/dict.py +0 -0
  110. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/dict.pyi +0 -0
  111. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/environments.py +0 -0
  112. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/environments.pyi +0 -0
  113. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/exception.py +0 -0
  114. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/experimental/__init__.py +0 -0
  115. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/experimental/ipython.py +0 -0
  116. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/file_io.py +0 -0
  117. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/file_io.pyi +0 -0
  118. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/file_pattern_matcher.py +0 -0
  119. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/functions.py +0 -0
  120. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/functions.pyi +0 -0
  121. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/gpu.py +0 -0
  122. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/image.py +0 -0
  123. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/image.pyi +0 -0
  124. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/io_streams.py +0 -0
  125. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/io_streams.pyi +0 -0
  126. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/mount.py +0 -0
  127. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/mount.pyi +0 -0
  128. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/network_file_system.py +0 -0
  129. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/network_file_system.pyi +0 -0
  130. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/object.py +0 -0
  131. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/object.pyi +0 -0
  132. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/output.py +0 -0
  133. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/parallel_map.py +0 -0
  134. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/parallel_map.pyi +0 -0
  135. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/partial_function.py +0 -0
  136. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/partial_function.pyi +0 -0
  137. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/proxy.py +0 -0
  138. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/proxy.pyi +0 -0
  139. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/py.typed +0 -0
  140. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/queue.py +0 -0
  141. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/queue.pyi +0 -0
  142. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/retries.py +0 -0
  143. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/runner.py +0 -0
  144. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/runner.pyi +0 -0
  145. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/running_app.py +0 -0
  146. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/sandbox.py +0 -0
  147. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/sandbox.pyi +0 -0
  148. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/schedule.py +0 -0
  149. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/scheduler_placement.py +0 -0
  150. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/secret.py +0 -0
  151. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/secret.pyi +0 -0
  152. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/serving.py +0 -0
  153. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/serving.pyi +0 -0
  154. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/snapshot.py +0 -0
  155. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/snapshot.pyi +0 -0
  156. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/stream_type.py +0 -0
  157. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/token_flow.py +0 -0
  158. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/token_flow.pyi +0 -0
  159. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/volume.py +0 -0
  160. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal/volume.pyi +0 -0
  161. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/api.proto +0 -0
  174. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/options.proto +0 -0
  182. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/py.typed +0 -0
  188. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/sandbox_router.proto +0 -0
  189. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/sandbox_router_grpc.py +0 -0
  190. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/sandbox_router_pb2.py +0 -0
  191. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/sandbox_router_pb2.pyi +0 -0
  192. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  193. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  194. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/modal_version/__main__.py +0 -0
  195. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/pyproject.toml +0 -0
  196. {modal-1.1.5.dev59 → modal-1.1.5.dev60}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev59
3
+ Version: 1.1.5.dev60
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -33,7 +33,7 @@ class _Client:
33
33
  server_url: str,
34
34
  client_type: int,
35
35
  credentials: typing.Optional[tuple[str, str]],
36
- version: str = "1.1.5.dev59",
36
+ version: str = "1.1.5.dev60",
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.dev59",
167
+ version: str = "1.1.5.dev60",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -306,7 +306,7 @@ class _FlashPrometheusAutoscaler:
306
306
  )
307
307
  await self.autoscaling_decisions_dict.put("current_replicas", actual_target_containers)
308
308
 
309
- await self.cls.update_autoscaler(min_containers=actual_target_containers)
309
+ await self._set_target_slots(actual_target_containers)
310
310
 
311
311
  if time.time() - autoscaling_time < self.autoscaling_interval_seconds:
312
312
  await asyncio.sleep(self.autoscaling_interval_seconds - (time.time() - autoscaling_time))
@@ -488,6 +488,11 @@ class _FlashPrometheusAutoscaler:
488
488
  resp = await retry_transient_errors(self.client.stub.FlashContainerList, req)
489
489
  return resp.containers
490
490
 
491
+ async def _set_target_slots(self, target_slots: int):
492
+ req = api_pb2.FlashSetTargetSlotsMetricsRequest(function_id=self.fn.object_id, target_slots=target_slots)
493
+ await retry_transient_errors(self.client.stub.FlashSetTargetSlotsMetrics, req)
494
+ return
495
+
491
496
  def _make_scaling_decision(
492
497
  self,
493
498
  current_replicas: int,
@@ -515,6 +520,7 @@ class _FlashPrometheusAutoscaler:
515
520
  Returns:
516
521
  The target number of containers.
517
522
  """
523
+
518
524
  if not autoscaling_decisions:
519
525
  # Without data we can’t make a new decision – stay where we are.
520
526
  return current_replicas
@@ -162,6 +162,7 @@ class _FlashPrometheusAutoscaler:
162
162
  self, container_id: str
163
163
  ) -> typing.Optional[modal_proto.api_pb2.TaskGetAutoscalingMetricsResponse]: ...
164
164
  async def _get_all_containers(self): ...
165
+ async def _set_target_slots(self, target_slots: int): ...
165
166
  def _make_scaling_decision(
166
167
  self,
167
168
  current_replicas: int,
@@ -278,6 +279,12 @@ class FlashPrometheusAutoscaler:
278
279
 
279
280
  _get_all_containers: ___get_all_containers_spec[typing_extensions.Self]
280
281
 
282
+ class ___set_target_slots_spec(typing_extensions.Protocol[SUPERSELF]):
283
+ def __call__(self, /, target_slots: int): ...
284
+ async def aio(self, /, target_slots: int): ...
285
+
286
+ _set_target_slots: ___set_target_slots_spec[typing_extensions.Self]
287
+
281
288
  def _make_scaling_decision(
282
289
  self,
283
290
  current_replicas: int,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev59
3
+ Version: 1.1.5.dev60
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.dev59"
4
+ __version__ = "1.1.5.dev60"
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