modal 1.0.6.dev42__tar.gz → 1.0.6.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.

Potentially problematic release.


This version of modal might be problematic. Click here for more details.

Files changed (188) hide show
  1. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/PKG-INFO +1 -1
  2. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/container_io_manager.py +19 -2
  3. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/container_io_manager.pyi +2 -0
  4. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/client.pyi +2 -2
  5. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/functions.pyi +6 -6
  6. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal.egg-info/PKG-INFO +1 -1
  7. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/api.proto +1 -0
  8. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/api_pb2.py +557 -557
  9. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/api_pb2.pyi +6 -1
  10. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_version/__init__.py +1 -1
  11. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/LICENSE +0 -0
  12. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/README.md +0 -0
  13. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/__init__.py +0 -0
  14. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/__main__.py +0 -0
  15. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_clustered_functions.py +0 -0
  16. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_clustered_functions.pyi +0 -0
  17. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_container_entrypoint.py +0 -0
  18. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_functions.py +0 -0
  19. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_ipython.py +0 -0
  20. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_location.py +0 -0
  21. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_object.py +0 -0
  22. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_output.py +0 -0
  23. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_partial_function.py +0 -0
  24. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_pty.py +0 -0
  25. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_resolver.py +0 -0
  26. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_resources.py +0 -0
  27. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/__init__.py +0 -0
  28. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/asgi.py +0 -0
  29. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/execution_context.py +0 -0
  30. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/execution_context.pyi +0 -0
  31. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  32. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/telemetry.py +0 -0
  33. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_runtime/user_code_imports.py +0 -0
  34. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_serialization.py +0 -0
  35. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_traceback.py +0 -0
  36. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_tunnel.py +0 -0
  37. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_tunnel.pyi +0 -0
  38. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_type_manager.py +0 -0
  39. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/__init__.py +0 -0
  40. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/app_utils.py +0 -0
  41. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/async_utils.py +0 -0
  42. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/auth_token_manager.py +0 -0
  43. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/blob_utils.py +0 -0
  44. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/bytes_io_segment_payload.py +0 -0
  45. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/deprecation.py +0 -0
  46. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/docker_utils.py +0 -0
  47. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/function_utils.py +0 -0
  48. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/git_utils.py +0 -0
  49. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/grpc_testing.py +0 -0
  50. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/grpc_utils.py +0 -0
  51. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/hash_utils.py +0 -0
  52. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/http_utils.py +0 -0
  53. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/jwt_utils.py +0 -0
  54. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/logger.py +0 -0
  55. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/mount_utils.py +0 -0
  56. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/name_utils.py +0 -0
  57. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/package_utils.py +0 -0
  58. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/pattern_utils.py +0 -0
  59. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/rand_pb_testing.py +0 -0
  60. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/shell_utils.py +0 -0
  61. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_utils/time_utils.py +0 -0
  62. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_vendor/__init__.py +0 -0
  63. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  64. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_vendor/cloudpickle.py +0 -0
  65. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_vendor/tblib.py +0 -0
  66. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/_watcher.py +0 -0
  67. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/app.py +0 -0
  68. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/app.pyi +0 -0
  69. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/call_graph.py +0 -0
  70. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/__init__.py +0 -0
  71. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/_download.py +0 -0
  72. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/_traceback.py +0 -0
  73. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/app.py +0 -0
  74. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/cluster.py +0 -0
  75. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/config.py +0 -0
  76. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/container.py +0 -0
  77. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/dict.py +0 -0
  78. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/entry_point.py +0 -0
  79. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/environment.py +0 -0
  80. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/import_refs.py +0 -0
  81. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/launch.py +0 -0
  82. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/network_file_system.py +0 -0
  83. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/profile.py +0 -0
  84. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/programs/__init__.py +0 -0
  85. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/programs/run_jupyter.py +0 -0
  86. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/programs/vscode.py +0 -0
  87. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/queues.py +0 -0
  88. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/run.py +0 -0
  89. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/secret.py +0 -0
  90. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/token.py +0 -0
  91. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/utils.py +0 -0
  92. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cli/volume.py +0 -0
  93. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/client.py +0 -0
  94. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cloud_bucket_mount.py +0 -0
  95. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cloud_bucket_mount.pyi +0 -0
  96. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cls.py +0 -0
  97. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/cls.pyi +0 -0
  98. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/config.py +0 -0
  99. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/container_process.py +0 -0
  100. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/container_process.pyi +0 -0
  101. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/dict.py +0 -0
  102. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/dict.pyi +0 -0
  103. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/environments.py +0 -0
  104. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/environments.pyi +0 -0
  105. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/exception.py +0 -0
  106. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/experimental/__init__.py +0 -0
  107. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/experimental/flash.py +0 -0
  108. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/experimental/flash.pyi +0 -0
  109. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/experimental/ipython.py +0 -0
  110. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/file_io.py +0 -0
  111. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/file_io.pyi +0 -0
  112. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/file_pattern_matcher.py +0 -0
  113. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/functions.py +0 -0
  114. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/gpu.py +0 -0
  115. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/image.py +0 -0
  116. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/image.pyi +0 -0
  117. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/io_streams.py +0 -0
  118. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/io_streams.pyi +0 -0
  119. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/mount.py +0 -0
  120. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/mount.pyi +0 -0
  121. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/network_file_system.py +0 -0
  122. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/network_file_system.pyi +0 -0
  123. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/object.py +0 -0
  124. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/object.pyi +0 -0
  125. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/output.py +0 -0
  126. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/parallel_map.py +0 -0
  127. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/parallel_map.pyi +0 -0
  128. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/partial_function.py +0 -0
  129. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/partial_function.pyi +0 -0
  130. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/proxy.py +0 -0
  131. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/proxy.pyi +0 -0
  132. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/py.typed +0 -0
  133. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/queue.py +0 -0
  134. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/queue.pyi +0 -0
  135. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/2023.12.312.txt +0 -0
  136. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/2023.12.txt +0 -0
  137. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/2024.04.txt +0 -0
  138. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/2024.10.txt +0 -0
  139. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/2025.06.txt +0 -0
  140. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/PREVIEW.txt +0 -0
  141. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/README.md +0 -0
  142. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/requirements/base-images.json +0 -0
  143. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/retries.py +0 -0
  144. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/runner.py +0 -0
  145. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/runner.pyi +0 -0
  146. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/running_app.py +0 -0
  147. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/sandbox.py +0 -0
  148. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/sandbox.pyi +0 -0
  149. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/schedule.py +0 -0
  150. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/scheduler_placement.py +0 -0
  151. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/secret.py +0 -0
  152. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/secret.pyi +0 -0
  153. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/serving.py +0 -0
  154. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/serving.pyi +0 -0
  155. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/snapshot.py +0 -0
  156. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/snapshot.pyi +0 -0
  157. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/stream_type.py +0 -0
  158. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/token_flow.py +0 -0
  159. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/token_flow.pyi +0 -0
  160. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/volume.py +0 -0
  161. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal/volume.pyi +0 -0
  162. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal.egg-info/SOURCES.txt +0 -0
  163. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal.egg-info/dependency_links.txt +0 -0
  164. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal.egg-info/entry_points.txt +0 -0
  165. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal.egg-info/requires.txt +0 -0
  166. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal.egg-info/top_level.txt +0 -0
  167. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_docs/__init__.py +0 -0
  168. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_docs/gen_cli_docs.py +0 -0
  169. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_docs/gen_reference_docs.py +0 -0
  170. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_docs/mdmd/__init__.py +0 -0
  171. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_docs/mdmd/mdmd.py +0 -0
  172. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_docs/mdmd/signatures.py +0 -0
  173. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/__init__.py +0 -0
  174. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/api_pb2_grpc.py +0 -0
  176. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/api_pb2_grpc.pyi +0 -0
  177. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/modal_api_grpc.py +0 -0
  178. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/modal_options_grpc.py +0 -0
  179. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/options.proto +0 -0
  180. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/options_grpc.py +0 -0
  181. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/options_pb2.py +0 -0
  182. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/options_pb2.pyi +0 -0
  183. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/options_pb2_grpc.py +0 -0
  184. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/options_pb2_grpc.pyi +0 -0
  185. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_proto/py.typed +0 -0
  186. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/modal_version/__main__.py +0 -0
  187. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/pyproject.toml +0 -0
  188. {modal-1.0.6.dev42 → modal-1.0.6.dev44}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev42
3
+ Version: 1.0.6.dev44
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -267,6 +267,7 @@ class _ContainerIOManager:
267
267
  app_id: str
268
268
  function_def: api_pb2.Function
269
269
  checkpoint_id: Optional[str]
270
+ input_plane_server_url: Optional[str]
270
271
 
271
272
  calls_completed: int
272
273
  total_user_time: float
@@ -299,6 +300,12 @@ class _ContainerIOManager:
299
300
  self.function_def = container_args.function_def
300
301
  self.checkpoint_id = container_args.checkpoint_id or None
301
302
 
303
+ # We could also have the worker pass this in explicitly.
304
+ self.input_plane_server_url = None
305
+ for obj in container_args.app_layout.objects:
306
+ if obj.object_id == self.function_id:
307
+ self.input_plane_server_url = obj.function_handle_metadata.input_plane_url
308
+
302
309
  self.calls_completed = 0
303
310
  self.total_user_time = 0.0
304
311
  self.current_input_id = None
@@ -504,8 +511,18 @@ class _ContainerIOManager:
504
511
  chunk.data = message_bytes
505
512
  data_chunks.append(chunk)
506
513
 
507
- req = api_pb2.FunctionCallPutDataRequest(function_call_id=function_call_id, data_chunks=data_chunks)
508
- await retry_transient_errors(self._client.stub.FunctionCallPutDataOut, req)
514
+ attempt_token = await self._client._auth_token_manager.get_token()
515
+ req = api_pb2.FunctionCallPutDataRequest(
516
+ function_call_id=function_call_id,
517
+ data_chunks=data_chunks,
518
+ attempt_token=attempt_token,
519
+ )
520
+
521
+ if self.input_plane_server_url:
522
+ stub = await self._client.get_stub(self.input_plane_server_url)
523
+ await retry_transient_errors(stub.FunctionCallPutDataOut, req)
524
+ else:
525
+ await retry_transient_errors(self._client.stub.FunctionCallPutDataOut, req)
509
526
 
510
527
  @asynccontextmanager
511
528
  async def generator_output_sender(
@@ -89,6 +89,7 @@ class _ContainerIOManager:
89
89
  app_id: str
90
90
  function_def: modal_proto.api_pb2.Function
91
91
  checkpoint_id: typing.Optional[str]
92
+ input_plane_server_url: typing.Optional[str]
92
93
  calls_completed: int
93
94
  total_user_time: float
94
95
  current_input_id: typing.Optional[str]
@@ -250,6 +251,7 @@ class ContainerIOManager:
250
251
  app_id: str
251
252
  function_def: modal_proto.api_pb2.Function
252
253
  checkpoint_id: typing.Optional[str]
254
+ input_plane_server_url: typing.Optional[str]
253
255
  calls_completed: int
254
256
  total_user_time: float
255
257
  current_input_id: typing.Optional[str]
@@ -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.0.6.dev42",
36
+ version: str = "1.0.6.dev44",
37
37
  ):
38
38
  """mdmd:hidden
39
39
  The Modal client object is not intended to be instantiated directly by users.
@@ -163,7 +163,7 @@ class Client:
163
163
  server_url: str,
164
164
  client_type: int,
165
165
  credentials: typing.Optional[tuple[str, str]],
166
- version: str = "1.0.6.dev42",
166
+ version: str = "1.0.6.dev44",
167
167
  ):
168
168
  """mdmd:hidden
169
169
  The Modal client object is not intended to be instantiated directly by users.
@@ -428,7 +428,7 @@ class Function(
428
428
 
429
429
  _call_generator: ___call_generator_spec[typing_extensions.Self]
430
430
 
431
- class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
431
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
432
432
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
433
433
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
434
434
  ...
@@ -437,7 +437,7 @@ class Function(
437
437
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
438
438
  ...
439
439
 
440
- remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
440
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
441
441
 
442
442
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
443
443
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -464,7 +464,7 @@ class Function(
464
464
  """
465
465
  ...
466
466
 
467
- class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
467
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
468
468
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
469
469
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
470
470
 
@@ -488,7 +488,7 @@ class Function(
488
488
  ...
489
489
 
490
490
  _experimental_spawn: ___experimental_spawn_spec[
491
- modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
491
+ modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
492
492
  ]
493
493
 
494
494
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
@@ -497,7 +497,7 @@ class Function(
497
497
 
498
498
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
499
499
 
500
- class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
500
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
501
501
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
502
502
  """Calls the function with the given arguments, without waiting for the results.
503
503
 
@@ -518,7 +518,7 @@ class Function(
518
518
  """
519
519
  ...
520
520
 
521
- spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
521
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
522
522
 
523
523
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
524
524
  """Return the inner Python object wrapped by this Modal Function."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.0.6.dev42
3
+ Version: 1.0.6.dev44
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -1516,6 +1516,7 @@ message FunctionCallListResponse {
1516
1516
  message FunctionCallPutDataRequest {
1517
1517
  string function_call_id = 1;
1518
1518
  repeated DataChunk data_chunks = 2;
1519
+ optional string attempt_token = 3;
1519
1520
  }
1520
1521
 
1521
1522
  message FunctionCreateRequest {