modal 1.1.4.dev18__tar.gz → 1.1.4.dev19__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.4.dev18 → modal-1.1.4.dev19}/PKG-INFO +1 -1
  2. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/client.pyi +2 -2
  3. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/parallel_map.py +15 -4
  4. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/parallel_map.pyi +1 -0
  5. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_version/__init__.py +1 -1
  7. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/LICENSE +0 -0
  8. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/README.md +0 -0
  9. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/__init__.py +0 -0
  10. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/__main__.py +0 -0
  11. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_clustered_functions.py +0 -0
  12. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_clustered_functions.pyi +0 -0
  13. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_container_entrypoint.py +0 -0
  14. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_functions.py +0 -0
  15. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_ipython.py +0 -0
  16. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_location.py +0 -0
  17. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_object.py +0 -0
  18. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_output.py +0 -0
  19. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_partial_function.py +0 -0
  20. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_pty.py +0 -0
  21. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_resolver.py +0 -0
  22. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_resources.py +0 -0
  23. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/__init__.py +0 -0
  24. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/asgi.py +0 -0
  25. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/container_io_manager.py +0 -0
  26. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/container_io_manager.pyi +0 -0
  27. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/execution_context.py +0 -0
  28. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/execution_context.pyi +0 -0
  29. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  30. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/telemetry.py +0 -0
  31. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_runtime/user_code_imports.py +0 -0
  32. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_serialization.py +0 -0
  33. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_traceback.py +0 -0
  34. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_tunnel.py +0 -0
  35. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_tunnel.pyi +0 -0
  36. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_type_manager.py +0 -0
  37. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/__init__.py +0 -0
  38. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/app_utils.py +0 -0
  39. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/async_utils.py +0 -0
  40. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/auth_token_manager.py +0 -0
  41. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/blob_utils.py +0 -0
  42. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/bytes_io_segment_payload.py +0 -0
  43. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/deprecation.py +0 -0
  44. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/docker_utils.py +0 -0
  45. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/function_utils.py +0 -0
  46. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/git_utils.py +0 -0
  47. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/grpc_testing.py +0 -0
  48. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/grpc_utils.py +0 -0
  49. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/hash_utils.py +0 -0
  50. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/http_utils.py +0 -0
  51. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/jwt_utils.py +0 -0
  52. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/logger.py +0 -0
  53. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/mount_utils.py +0 -0
  54. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/name_utils.py +0 -0
  55. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/package_utils.py +0 -0
  56. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/pattern_utils.py +0 -0
  57. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/rand_pb_testing.py +0 -0
  58. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/shell_utils.py +0 -0
  59. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_utils/time_utils.py +0 -0
  60. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_vendor/__init__.py +0 -0
  61. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  62. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_vendor/cloudpickle.py +0 -0
  63. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_vendor/tblib.py +0 -0
  64. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/_watcher.py +0 -0
  65. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/app.py +0 -0
  66. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/app.pyi +0 -0
  67. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/2023.12.312.txt +0 -0
  68. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/2023.12.txt +0 -0
  69. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/2024.04.txt +0 -0
  70. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/2024.10.txt +0 -0
  71. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/2025.06.txt +0 -0
  72. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/PREVIEW.txt +0 -0
  73. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/README.md +0 -0
  74. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/builder/base-images.json +0 -0
  75. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/call_graph.py +0 -0
  76. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/__init__.py +0 -0
  77. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/_download.py +0 -0
  78. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/_traceback.py +0 -0
  79. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/app.py +0 -0
  80. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/cluster.py +0 -0
  81. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/config.py +0 -0
  82. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/container.py +0 -0
  83. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/dict.py +0 -0
  84. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/entry_point.py +0 -0
  85. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/environment.py +0 -0
  86. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/import_refs.py +0 -0
  87. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/launch.py +0 -0
  88. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/network_file_system.py +0 -0
  89. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/profile.py +0 -0
  90. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/programs/__init__.py +0 -0
  91. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/programs/launch_instance_ssh.py +0 -0
  92. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/programs/run_jupyter.py +0 -0
  93. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/programs/run_marimo.py +0 -0
  94. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/programs/vscode.py +0 -0
  95. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/queues.py +0 -0
  96. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/run.py +0 -0
  97. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/secret.py +0 -0
  98. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/token.py +0 -0
  99. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/utils.py +0 -0
  100. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cli/volume.py +0 -0
  101. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/client.py +0 -0
  102. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cloud_bucket_mount.py +0 -0
  103. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cloud_bucket_mount.pyi +0 -0
  104. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cls.py +0 -0
  105. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/cls.pyi +0 -0
  106. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/config.py +0 -0
  107. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/container_process.py +0 -0
  108. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/container_process.pyi +0 -0
  109. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/dict.py +0 -0
  110. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/dict.pyi +0 -0
  111. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/environments.py +0 -0
  112. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/environments.pyi +0 -0
  113. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/exception.py +0 -0
  114. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/experimental/__init__.py +0 -0
  115. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/experimental/flash.py +0 -0
  116. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/experimental/flash.pyi +0 -0
  117. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/experimental/ipython.py +0 -0
  118. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/file_io.py +0 -0
  119. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/file_io.pyi +0 -0
  120. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/file_pattern_matcher.py +0 -0
  121. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/functions.py +0 -0
  122. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/functions.pyi +0 -0
  123. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/gpu.py +0 -0
  124. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/image.py +0 -0
  125. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/image.pyi +0 -0
  126. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/io_streams.py +0 -0
  127. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/io_streams.pyi +0 -0
  128. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/mount.py +0 -0
  129. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/mount.pyi +0 -0
  130. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/network_file_system.py +0 -0
  131. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/network_file_system.pyi +0 -0
  132. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/object.py +0 -0
  133. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/object.pyi +0 -0
  134. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/output.py +0 -0
  135. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/partial_function.py +0 -0
  136. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/partial_function.pyi +0 -0
  137. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/proxy.py +0 -0
  138. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/proxy.pyi +0 -0
  139. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/py.typed +0 -0
  140. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/queue.py +0 -0
  141. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/queue.pyi +0 -0
  142. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/retries.py +0 -0
  143. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/runner.py +0 -0
  144. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/runner.pyi +0 -0
  145. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/running_app.py +0 -0
  146. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/sandbox.py +0 -0
  147. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/sandbox.pyi +0 -0
  148. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/schedule.py +0 -0
  149. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/scheduler_placement.py +0 -0
  150. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/secret.py +0 -0
  151. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/secret.pyi +0 -0
  152. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/serving.py +0 -0
  153. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/serving.pyi +0 -0
  154. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/snapshot.py +0 -0
  155. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/snapshot.pyi +0 -0
  156. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/stream_type.py +0 -0
  157. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/token_flow.py +0 -0
  158. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/token_flow.pyi +0 -0
  159. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/volume.py +0 -0
  160. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal/volume.pyi +0 -0
  161. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/api.proto +0 -0
  174. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/options.proto +0 -0
  182. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_proto/py.typed +0 -0
  188. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/modal_version/__main__.py +0 -0
  189. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/pyproject.toml +0 -0
  190. {modal-1.1.4.dev18 → modal-1.1.4.dev19}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.4.dev18
3
+ Version: 1.1.4.dev19
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.4.dev18",
36
+ version: str = "1.1.4.dev19",
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.4.dev18",
167
+ version: str = "1.1.4.dev19",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -79,8 +79,10 @@ class _OutputValue:
79
79
 
80
80
  MAX_INPUTS_OUTSTANDING_DEFAULT = 1000
81
81
 
82
- # maximum number of inputs to send to the server in a single request
82
+ # Maximum number of inputs to send to the server per FunctionPutInputs request
83
83
  MAP_INVOCATION_CHUNK_SIZE = 49
84
+ SPAWN_MAP_INVOCATION_CHUNK_SIZE = 512
85
+
84
86
 
85
87
  if typing.TYPE_CHECKING:
86
88
  import modal.functions
@@ -159,6 +161,7 @@ class InputPumper:
159
161
  input_queue: asyncio.Queue,
160
162
  function: "modal.functions._Function",
161
163
  function_call_id: str,
164
+ max_batch_size: int,
162
165
  map_items_manager: Optional["_MapItemsManager"] = None,
163
166
  ):
164
167
  self.client = client
@@ -167,10 +170,11 @@ class InputPumper:
167
170
  self.input_queue = input_queue
168
171
  self.inputs_sent = 0
169
172
  self.function_call_id = function_call_id
173
+ self.max_batch_size = max_batch_size
170
174
 
171
175
  async def pump_inputs(self):
172
176
  assert self.client.stub
173
- async for items in queue_batch_iterator(self.input_queue, max_batch_size=MAP_INVOCATION_CHUNK_SIZE):
177
+ async for items in queue_batch_iterator(self.input_queue, max_batch_size=self.max_batch_size):
174
178
  # Add items to the manager. Their state will be SENDING.
175
179
  if self.map_items_manager is not None:
176
180
  await self.map_items_manager.add_items(items)
@@ -234,6 +238,7 @@ class SyncInputPumper(InputPumper):
234
238
  input_queue=input_queue,
235
239
  function=function,
236
240
  function_call_id=function_call_id,
241
+ max_batch_size=MAP_INVOCATION_CHUNK_SIZE,
237
242
  map_items_manager=map_items_manager,
238
243
  )
239
244
  self.retry_queue = retry_queue
@@ -241,7 +246,7 @@ class SyncInputPumper(InputPumper):
241
246
  self.function_call_jwt = function_call_jwt
242
247
 
243
248
  async def retry_inputs(self):
244
- async for retriable_idxs in queue_batch_iterator(self.retry_queue, max_batch_size=MAP_INVOCATION_CHUNK_SIZE):
249
+ async for retriable_idxs in queue_batch_iterator(self.retry_queue, max_batch_size=self.max_batch_size):
245
250
  # For each index, use the context in the manager to create a FunctionRetryInputsItem.
246
251
  # This will also update the context state to RETRYING.
247
252
  inputs: list[api_pb2.FunctionRetryInputsItem] = await self.map_items_manager.prepare_items_for_retry(
@@ -269,7 +274,13 @@ class AsyncInputPumper(InputPumper):
269
274
  function: "modal.functions._Function",
270
275
  function_call_id: str,
271
276
  ):
272
- super().__init__(client, input_queue=input_queue, function=function, function_call_id=function_call_id)
277
+ super().__init__(
278
+ client,
279
+ input_queue=input_queue,
280
+ function=function,
281
+ function_call_id=function_call_id,
282
+ max_batch_size=SPAWN_MAP_INVOCATION_CHUNK_SIZE,
283
+ )
273
284
 
274
285
  async def pump_inputs(self):
275
286
  async for _ in super().pump_inputs():
@@ -89,6 +89,7 @@ class InputPumper:
89
89
  input_queue: asyncio.queues.Queue,
90
90
  function: modal._functions._Function,
91
91
  function_call_id: str,
92
+ max_batch_size: int,
92
93
  map_items_manager: typing.Optional[_MapItemsManager] = None,
93
94
  ):
94
95
  """Initialize self. See help(type(self)) for accurate signature."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.4.dev18
3
+ Version: 1.1.4.dev19
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.4.dev18"
4
+ __version__ = "1.1.4.dev19"
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