modal 1.1.5.dev70__tar.gz → 1.1.5.dev72__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.dev70 → modal-1.1.5.dev72}/PKG-INFO +1 -1
  2. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_functions.py +22 -17
  3. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/client.pyi +2 -2
  4. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/functions.pyi +6 -6
  5. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/sandbox.py +2 -1
  6. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/sandbox.pyi +6 -3
  7. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal.egg-info/PKG-INFO +1 -1
  8. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_version/__init__.py +1 -1
  9. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/LICENSE +0 -0
  10. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/README.md +0 -0
  11. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/__init__.py +0 -0
  12. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/__main__.py +0 -0
  13. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_clustered_functions.py +0 -0
  14. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_clustered_functions.pyi +0 -0
  15. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_container_entrypoint.py +0 -0
  16. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_ipython.py +0 -0
  17. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_location.py +0 -0
  18. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_object.py +0 -0
  19. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_output.py +0 -0
  20. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_partial_function.py +0 -0
  21. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_pty.py +0 -0
  22. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_resolver.py +0 -0
  23. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_resources.py +0 -0
  24. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/__init__.py +0 -0
  25. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/asgi.py +0 -0
  26. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/container_io_manager.py +0 -0
  27. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/container_io_manager.pyi +0 -0
  28. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/execution_context.py +0 -0
  29. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/execution_context.pyi +0 -0
  30. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  31. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/telemetry.py +0 -0
  32. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_runtime/user_code_imports.py +0 -0
  33. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_serialization.py +0 -0
  34. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_traceback.py +0 -0
  35. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_tunnel.py +0 -0
  36. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_tunnel.pyi +0 -0
  37. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_type_manager.py +0 -0
  38. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/__init__.py +0 -0
  39. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/app_utils.py +0 -0
  40. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/async_utils.py +0 -0
  41. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/auth_token_manager.py +0 -0
  42. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/blob_utils.py +0 -0
  43. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/bytes_io_segment_payload.py +0 -0
  44. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/deprecation.py +0 -0
  45. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/docker_utils.py +0 -0
  46. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/function_utils.py +0 -0
  47. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/git_utils.py +0 -0
  48. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/grpc_testing.py +0 -0
  49. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/grpc_utils.py +0 -0
  50. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/hash_utils.py +0 -0
  51. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/http_utils.py +0 -0
  52. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/jwt_utils.py +0 -0
  53. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/logger.py +0 -0
  54. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/mount_utils.py +0 -0
  55. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/name_utils.py +0 -0
  56. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/package_utils.py +0 -0
  57. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/pattern_utils.py +0 -0
  58. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/rand_pb_testing.py +0 -0
  59. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/shell_utils.py +0 -0
  60. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_utils/time_utils.py +0 -0
  61. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_vendor/__init__.py +0 -0
  62. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  63. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_vendor/cloudpickle.py +0 -0
  64. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_vendor/tblib.py +0 -0
  65. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/_watcher.py +0 -0
  66. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/app.py +0 -0
  67. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/app.pyi +0 -0
  68. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/2023.12.312.txt +0 -0
  69. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/2023.12.txt +0 -0
  70. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/2024.04.txt +0 -0
  71. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/2024.10.txt +0 -0
  72. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/2025.06.txt +0 -0
  73. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/PREVIEW.txt +0 -0
  74. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/README.md +0 -0
  75. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/builder/base-images.json +0 -0
  76. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/call_graph.py +0 -0
  77. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/__init__.py +0 -0
  78. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/_download.py +0 -0
  79. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/_traceback.py +0 -0
  80. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/app.py +0 -0
  81. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/cluster.py +0 -0
  82. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/config.py +0 -0
  83. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/container.py +0 -0
  84. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/dict.py +0 -0
  85. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/entry_point.py +0 -0
  86. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/environment.py +0 -0
  87. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/import_refs.py +0 -0
  88. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/launch.py +0 -0
  89. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/network_file_system.py +0 -0
  90. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/profile.py +0 -0
  91. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/programs/__init__.py +0 -0
  92. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/programs/launch_instance_ssh.py +0 -0
  93. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/programs/run_jupyter.py +0 -0
  94. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/programs/run_marimo.py +0 -0
  95. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/programs/vscode.py +0 -0
  96. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/queues.py +0 -0
  97. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/run.py +0 -0
  98. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/secret.py +0 -0
  99. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/token.py +0 -0
  100. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/utils.py +0 -0
  101. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cli/volume.py +0 -0
  102. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/client.py +0 -0
  103. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cloud_bucket_mount.py +0 -0
  104. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cloud_bucket_mount.pyi +0 -0
  105. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cls.py +0 -0
  106. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/cls.pyi +0 -0
  107. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/config.py +0 -0
  108. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/container_process.py +0 -0
  109. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/container_process.pyi +0 -0
  110. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/dict.py +0 -0
  111. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/dict.pyi +0 -0
  112. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/environments.py +0 -0
  113. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/environments.pyi +0 -0
  114. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/exception.py +0 -0
  115. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/experimental/__init__.py +0 -0
  116. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/experimental/flash.py +0 -0
  117. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/experimental/flash.pyi +0 -0
  118. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/experimental/ipython.py +0 -0
  119. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/file_io.py +0 -0
  120. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/file_io.pyi +0 -0
  121. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/file_pattern_matcher.py +0 -0
  122. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/functions.py +0 -0
  123. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/gpu.py +0 -0
  124. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/image.py +0 -0
  125. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/image.pyi +0 -0
  126. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/io_streams.py +0 -0
  127. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/io_streams.pyi +0 -0
  128. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/mount.py +0 -0
  129. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/mount.pyi +0 -0
  130. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/network_file_system.py +0 -0
  131. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/network_file_system.pyi +0 -0
  132. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/object.py +0 -0
  133. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/object.pyi +0 -0
  134. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/output.py +0 -0
  135. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/parallel_map.py +0 -0
  136. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/parallel_map.pyi +0 -0
  137. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/partial_function.py +0 -0
  138. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/partial_function.pyi +0 -0
  139. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/proxy.py +0 -0
  140. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/proxy.pyi +0 -0
  141. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/py.typed +0 -0
  142. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/queue.py +0 -0
  143. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/queue.pyi +0 -0
  144. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/retries.py +0 -0
  145. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/runner.py +0 -0
  146. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/runner.pyi +0 -0
  147. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/running_app.py +0 -0
  148. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/schedule.py +0 -0
  149. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/scheduler_placement.py +0 -0
  150. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/secret.py +0 -0
  151. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/secret.pyi +0 -0
  152. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/serving.py +0 -0
  153. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/serving.pyi +0 -0
  154. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/snapshot.py +0 -0
  155. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/snapshot.pyi +0 -0
  156. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/stream_type.py +0 -0
  157. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/token_flow.py +0 -0
  158. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/token_flow.pyi +0 -0
  159. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/volume.py +0 -0
  160. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal/volume.pyi +0 -0
  161. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal.egg-info/SOURCES.txt +0 -0
  162. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal.egg-info/dependency_links.txt +0 -0
  163. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal.egg-info/entry_points.txt +0 -0
  164. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal.egg-info/requires.txt +0 -0
  165. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal.egg-info/top_level.txt +0 -0
  166. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_docs/__init__.py +0 -0
  167. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_docs/gen_cli_docs.py +0 -0
  168. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_docs/gen_reference_docs.py +0 -0
  169. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_docs/mdmd/__init__.py +0 -0
  170. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_docs/mdmd/mdmd.py +0 -0
  171. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_docs/mdmd/signatures.py +0 -0
  172. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/__init__.py +0 -0
  173. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/api.proto +0 -0
  174. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/api_grpc.py +0 -0
  175. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/api_pb2.py +0 -0
  176. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/api_pb2.pyi +0 -0
  177. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/api_pb2_grpc.py +0 -0
  178. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/api_pb2_grpc.pyi +0 -0
  179. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/modal_api_grpc.py +0 -0
  180. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/options.proto +0 -0
  182. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/py.typed +0 -0
  188. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/sandbox_router.proto +0 -0
  189. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/sandbox_router_grpc.py +0 -0
  190. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/sandbox_router_pb2.py +0 -0
  191. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/sandbox_router_pb2.pyi +0 -0
  192. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/sandbox_router_pb2_grpc.py +0 -0
  193. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_proto/sandbox_router_pb2_grpc.pyi +0 -0
  194. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/modal_version/__main__.py +0 -0
  195. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/pyproject.toml +0 -0
  196. {modal-1.1.5.dev70 → modal-1.1.5.dev72}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev70
3
+ Version: 1.1.5.dev72
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -605,6 +605,21 @@ class _FunctionSpec:
605
605
  proxy: Optional[_Proxy]
606
606
 
607
607
 
608
+ def _get_supported_input_output_formats(is_web_endpoint: bool, is_generator: bool, restrict_output: bool):
609
+ if is_web_endpoint:
610
+ supported_input_formats = [api_pb2.DATA_FORMAT_ASGI]
611
+ supported_output_formats = [api_pb2.DATA_FORMAT_ASGI, api_pb2.DATA_FORMAT_GENERATOR_DONE]
612
+ else:
613
+ supported_input_formats = [api_pb2.DATA_FORMAT_PICKLE, api_pb2.DATA_FORMAT_CBOR]
614
+ if restrict_output:
615
+ supported_output_formats = [api_pb2.DATA_FORMAT_CBOR]
616
+ else:
617
+ supported_output_formats = [api_pb2.DATA_FORMAT_PICKLE, api_pb2.DATA_FORMAT_CBOR]
618
+ if is_generator:
619
+ supported_output_formats.append(api_pb2.DATA_FORMAT_GENERATOR_DONE)
620
+ return supported_input_formats, supported_output_formats
621
+
622
+
608
623
  P = typing_extensions.ParamSpec("P")
609
624
  ReturnType = typing.TypeVar("ReturnType", covariant=True)
610
625
  OriginalReturnType = typing.TypeVar(
@@ -836,15 +851,9 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
836
851
  is_web_endpoint=is_web_endpoint,
837
852
  ignore_first_argument=True,
838
853
  )
839
- if is_web_endpoint:
840
- method_input_formats = [api_pb2.DATA_FORMAT_ASGI]
841
- method_output_formats = [api_pb2.DATA_FORMAT_ASGI]
842
- else:
843
- method_input_formats = [api_pb2.DATA_FORMAT_PICKLE, api_pb2.DATA_FORMAT_CBOR]
844
- if restrict_output:
845
- method_output_formats = [api_pb2.DATA_FORMAT_CBOR]
846
- else:
847
- method_output_formats = [api_pb2.DATA_FORMAT_PICKLE, api_pb2.DATA_FORMAT_CBOR]
854
+ method_input_formats, method_output_formats = _get_supported_input_output_formats(
855
+ is_web_endpoint, partial_function.params.is_generator or False, restrict_output
856
+ )
848
857
 
849
858
  method_definition = api_pb2.MethodDefinition(
850
859
  webhook_config=partial_function.params.webhook_config,
@@ -880,15 +889,11 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
880
889
  # classes don't have data formats themselves - input/output formats are set per method above
881
890
  supported_input_formats = []
882
891
  supported_output_formats = []
883
- elif webhook_config is not None:
884
- supported_input_formats = [api_pb2.DATA_FORMAT_ASGI]
885
- supported_output_formats = [api_pb2.DATA_FORMAT_ASGI]
886
892
  else:
887
- supported_input_formats = [api_pb2.DATA_FORMAT_PICKLE, api_pb2.DATA_FORMAT_CBOR]
888
- if restrict_output:
889
- supported_output_formats = [api_pb2.DATA_FORMAT_CBOR]
890
- else:
891
- supported_output_formats = [api_pb2.DATA_FORMAT_PICKLE, api_pb2.DATA_FORMAT_CBOR]
893
+ is_web_endpoint = webhook_config is not None and webhook_config.type != api_pb2.WEBHOOK_TYPE_UNSPECIFIED
894
+ supported_input_formats, supported_output_formats = _get_supported_input_output_formats(
895
+ is_web_endpoint, is_generator, restrict_output
896
+ )
892
897
 
893
898
  async def _preload(self: _Function, resolver: Resolver, existing_object_id: Optional[str]):
894
899
  assert resolver.client and resolver.client.stub
@@ -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.dev70",
36
+ version: str = "1.1.5.dev72",
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.dev70",
167
+ version: str = "1.1.5.dev72",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -401,7 +401,7 @@ class Function(
401
401
 
402
402
  _call_generator: ___call_generator_spec[typing_extensions.Self]
403
403
 
404
- class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
404
+ class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
405
405
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
406
406
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
407
407
  ...
@@ -410,7 +410,7 @@ class Function(
410
410
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
411
411
  ...
412
412
 
413
- remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
413
+ remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
414
414
 
415
415
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
416
416
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -437,7 +437,7 @@ class Function(
437
437
  """
438
438
  ...
439
439
 
440
- class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
440
+ class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
441
441
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
442
442
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
443
443
 
@@ -461,7 +461,7 @@ class Function(
461
461
  ...
462
462
 
463
463
  _experimental_spawn: ___experimental_spawn_spec[
464
- modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
464
+ modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
465
465
  ]
466
466
 
467
467
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
@@ -470,7 +470,7 @@ class Function(
470
470
 
471
471
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
472
472
 
473
- class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
473
+ class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
474
474
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
475
475
  """Calls the function with the given arguments, without waiting for the results.
476
476
 
@@ -491,7 +491,7 @@ class Function(
491
491
  """
492
492
  ...
493
493
 
494
- spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
494
+ spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
495
495
 
496
496
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
497
497
  """Return the inner Python object wrapped by this Modal Function."""
@@ -669,7 +669,8 @@ class _Sandbox(_Object, type_prefix="sb"):
669
669
  async def create_connect_token(
670
670
  self, user_metadata: Optional[Union[str, dict[str, Any]]] = None
671
671
  ) -> SandboxConnectCredentials:
672
- """Create a token for making HTTP connections to the sandbox.
672
+ """mdmd:hidden
673
+ [Alpha] Create a token for making HTTP connections to the sandbox.
673
674
 
674
675
  Also accepts an optional user_metadata string or dict to associate with the token. This metadata
675
676
  will be added to the headers by the proxy when forwarding requests to the sandbox."""
@@ -276,7 +276,8 @@ class _Sandbox(modal._object._Object):
276
276
  async def create_connect_token(
277
277
  self, user_metadata: typing.Union[str, dict[str, typing.Any], None] = None
278
278
  ) -> SandboxConnectCredentials:
279
- """Create a token for making HTTP connections to the sandbox.
279
+ """mdmd:hidden
280
+ [Alpha] Create a token for making HTTP connections to the sandbox.
280
281
 
281
282
  Also accepts an optional user_metadata string or dict to associate with the token. This metadata
282
283
  will be added to the headers by the proxy when forwarding requests to the sandbox.
@@ -831,7 +832,8 @@ class Sandbox(modal.object.Object):
831
832
  def __call__(
832
833
  self, /, user_metadata: typing.Union[str, dict[str, typing.Any], None] = None
833
834
  ) -> SandboxConnectCredentials:
834
- """Create a token for making HTTP connections to the sandbox.
835
+ """mdmd:hidden
836
+ [Alpha] Create a token for making HTTP connections to the sandbox.
835
837
 
836
838
  Also accepts an optional user_metadata string or dict to associate with the token. This metadata
837
839
  will be added to the headers by the proxy when forwarding requests to the sandbox.
@@ -841,7 +843,8 @@ class Sandbox(modal.object.Object):
841
843
  async def aio(
842
844
  self, /, user_metadata: typing.Union[str, dict[str, typing.Any], None] = None
843
845
  ) -> SandboxConnectCredentials:
844
- """Create a token for making HTTP connections to the sandbox.
846
+ """mdmd:hidden
847
+ [Alpha] Create a token for making HTTP connections to the sandbox.
845
848
 
846
849
  Also accepts an optional user_metadata string or dict to associate with the token. This metadata
847
850
  will be added to the headers by the proxy when forwarding requests to the sandbox.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.5.dev70
3
+ Version: 1.1.5.dev72
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.dev70"
4
+ __version__ = "1.1.5.dev72"
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