modal 1.1.4.dev19__tar.gz → 1.1.4.dev21__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.dev19 → modal-1.1.4.dev21}/PKG-INFO +1 -1
  2. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/asgi.py +1 -1
  3. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/client.pyi +2 -2
  4. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/functions.pyi +6 -6
  5. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/api.proto +5 -0
  7. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/api_grpc.py +16 -0
  8. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/api_pb2.py +495 -485
  9. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/api_pb2.pyi +14 -0
  10. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/api_pb2_grpc.py +34 -1
  11. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/api_pb2_grpc.pyi +13 -3
  12. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/modal_api_grpc.py +1 -0
  13. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_version/__init__.py +1 -1
  14. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/LICENSE +0 -0
  15. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/README.md +0 -0
  16. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/__init__.py +0 -0
  17. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/__main__.py +0 -0
  18. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_clustered_functions.py +0 -0
  19. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_clustered_functions.pyi +0 -0
  20. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_container_entrypoint.py +0 -0
  21. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_functions.py +0 -0
  22. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_ipython.py +0 -0
  23. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_location.py +0 -0
  24. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_object.py +0 -0
  25. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_output.py +0 -0
  26. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_partial_function.py +0 -0
  27. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_pty.py +0 -0
  28. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_resolver.py +0 -0
  29. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_resources.py +0 -0
  30. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/__init__.py +0 -0
  31. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/container_io_manager.py +0 -0
  32. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/container_io_manager.pyi +0 -0
  33. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/execution_context.py +0 -0
  34. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/execution_context.pyi +0 -0
  35. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  36. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/telemetry.py +0 -0
  37. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_runtime/user_code_imports.py +0 -0
  38. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_serialization.py +0 -0
  39. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_traceback.py +0 -0
  40. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_tunnel.py +0 -0
  41. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_tunnel.pyi +0 -0
  42. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_type_manager.py +0 -0
  43. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/__init__.py +0 -0
  44. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/app_utils.py +0 -0
  45. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/async_utils.py +0 -0
  46. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/auth_token_manager.py +0 -0
  47. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/blob_utils.py +0 -0
  48. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/bytes_io_segment_payload.py +0 -0
  49. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/deprecation.py +0 -0
  50. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/docker_utils.py +0 -0
  51. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/function_utils.py +0 -0
  52. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/git_utils.py +0 -0
  53. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/grpc_testing.py +0 -0
  54. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/grpc_utils.py +0 -0
  55. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/hash_utils.py +0 -0
  56. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/http_utils.py +0 -0
  57. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/jwt_utils.py +0 -0
  58. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/logger.py +0 -0
  59. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/mount_utils.py +0 -0
  60. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/name_utils.py +0 -0
  61. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/package_utils.py +0 -0
  62. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/pattern_utils.py +0 -0
  63. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/rand_pb_testing.py +0 -0
  64. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/shell_utils.py +0 -0
  65. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_utils/time_utils.py +0 -0
  66. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_vendor/__init__.py +0 -0
  67. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  68. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_vendor/cloudpickle.py +0 -0
  69. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_vendor/tblib.py +0 -0
  70. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/_watcher.py +0 -0
  71. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/app.py +0 -0
  72. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/app.pyi +0 -0
  73. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/2023.12.312.txt +0 -0
  74. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/2023.12.txt +0 -0
  75. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/2024.04.txt +0 -0
  76. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/2024.10.txt +0 -0
  77. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/2025.06.txt +0 -0
  78. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/PREVIEW.txt +0 -0
  79. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/README.md +0 -0
  80. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/builder/base-images.json +0 -0
  81. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/call_graph.py +0 -0
  82. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/__init__.py +0 -0
  83. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/_download.py +0 -0
  84. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/_traceback.py +0 -0
  85. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/app.py +0 -0
  86. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/cluster.py +0 -0
  87. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/config.py +0 -0
  88. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/container.py +0 -0
  89. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/dict.py +0 -0
  90. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/entry_point.py +0 -0
  91. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/environment.py +0 -0
  92. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/import_refs.py +0 -0
  93. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/launch.py +0 -0
  94. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/network_file_system.py +0 -0
  95. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/profile.py +0 -0
  96. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/programs/__init__.py +0 -0
  97. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/programs/launch_instance_ssh.py +0 -0
  98. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/programs/run_jupyter.py +0 -0
  99. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/programs/run_marimo.py +0 -0
  100. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/programs/vscode.py +0 -0
  101. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/queues.py +0 -0
  102. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/run.py +0 -0
  103. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/secret.py +0 -0
  104. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/token.py +0 -0
  105. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/utils.py +0 -0
  106. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cli/volume.py +0 -0
  107. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/client.py +0 -0
  108. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cloud_bucket_mount.py +0 -0
  109. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cloud_bucket_mount.pyi +0 -0
  110. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cls.py +0 -0
  111. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/cls.pyi +0 -0
  112. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/config.py +0 -0
  113. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/container_process.py +0 -0
  114. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/container_process.pyi +0 -0
  115. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/dict.py +0 -0
  116. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/dict.pyi +0 -0
  117. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/environments.py +0 -0
  118. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/environments.pyi +0 -0
  119. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/exception.py +0 -0
  120. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/experimental/__init__.py +0 -0
  121. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/experimental/flash.py +0 -0
  122. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/experimental/flash.pyi +0 -0
  123. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/experimental/ipython.py +0 -0
  124. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/file_io.py +0 -0
  125. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/file_io.pyi +0 -0
  126. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/file_pattern_matcher.py +0 -0
  127. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/functions.py +0 -0
  128. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/gpu.py +0 -0
  129. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/image.py +0 -0
  130. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/image.pyi +0 -0
  131. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/io_streams.py +0 -0
  132. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/io_streams.pyi +0 -0
  133. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/mount.py +0 -0
  134. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/mount.pyi +0 -0
  135. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/network_file_system.py +0 -0
  136. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/network_file_system.pyi +0 -0
  137. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/object.py +0 -0
  138. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/object.pyi +0 -0
  139. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/output.py +0 -0
  140. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/parallel_map.py +0 -0
  141. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/parallel_map.pyi +0 -0
  142. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/partial_function.py +0 -0
  143. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/partial_function.pyi +0 -0
  144. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/proxy.py +0 -0
  145. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/proxy.pyi +0 -0
  146. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/py.typed +0 -0
  147. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/queue.py +0 -0
  148. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/queue.pyi +0 -0
  149. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/retries.py +0 -0
  150. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/runner.py +0 -0
  151. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/runner.pyi +0 -0
  152. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/running_app.py +0 -0
  153. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/sandbox.py +0 -0
  154. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/sandbox.pyi +0 -0
  155. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/schedule.py +0 -0
  156. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/scheduler_placement.py +0 -0
  157. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/secret.py +0 -0
  158. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/secret.pyi +0 -0
  159. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/serving.py +0 -0
  160. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/serving.pyi +0 -0
  161. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/snapshot.py +0 -0
  162. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/snapshot.pyi +0 -0
  163. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/stream_type.py +0 -0
  164. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/token_flow.py +0 -0
  165. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/token_flow.pyi +0 -0
  166. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/volume.py +0 -0
  167. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal/volume.pyi +0 -0
  168. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal.egg-info/SOURCES.txt +0 -0
  169. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal.egg-info/dependency_links.txt +0 -0
  170. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal.egg-info/entry_points.txt +0 -0
  171. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal.egg-info/requires.txt +0 -0
  172. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal.egg-info/top_level.txt +0 -0
  173. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_docs/__init__.py +0 -0
  174. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_docs/gen_cli_docs.py +0 -0
  175. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_docs/gen_reference_docs.py +0 -0
  176. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_docs/mdmd/__init__.py +0 -0
  177. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_docs/mdmd/mdmd.py +0 -0
  178. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_docs/mdmd/signatures.py +0 -0
  179. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/__init__.py +0 -0
  180. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/modal_options_grpc.py +0 -0
  181. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/options.proto +0 -0
  182. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/options_grpc.py +0 -0
  183. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/options_pb2.py +0 -0
  184. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/options_pb2.pyi +0 -0
  185. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/options_pb2_grpc.py +0 -0
  186. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/options_pb2_grpc.pyi +0 -0
  187. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_proto/py.typed +0 -0
  188. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/modal_version/__main__.py +0 -0
  189. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/pyproject.toml +0 -0
  190. {modal-1.1.4.dev19 → modal-1.1.4.dev21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.4.dev19
3
+ Version: 1.1.4.dev21
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -120,7 +120,7 @@ def asgi_app_wrapper(asgi_app, container_io_manager) -> tuple[Callable[..., Asyn
120
120
 
121
121
  async def handle_first_input_timeout():
122
122
  if scope["type"] == "http":
123
- await messages_from_app.put({"type": "http.response.start", "status": 502})
123
+ await messages_from_app.put({"type": "http.response.start", "status": 408})
124
124
  await messages_from_app.put(
125
125
  {
126
126
  "type": "http.response.body",
@@ -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.dev19",
36
+ version: str = "1.1.4.dev21",
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.dev19",
167
+ version: str = "1.1.4.dev21",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  The Modal client object is not intended to be instantiated directly by users.
@@ -444,7 +444,7 @@ class Function(
444
444
 
445
445
  _call_generator: ___call_generator_spec[typing_extensions.Self]
446
446
 
447
- class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
447
+ class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
448
448
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
449
449
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
450
450
  ...
@@ -453,7 +453,7 @@ class Function(
453
453
  """Calls the function remotely, executing it with the given arguments and returning the execution's result."""
454
454
  ...
455
455
 
456
- remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
456
+ remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
457
457
 
458
458
  class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
459
459
  def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
@@ -480,7 +480,7 @@ class Function(
480
480
  """
481
481
  ...
482
482
 
483
- class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
483
+ class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
484
484
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
485
485
  """[Experimental] Calls the function with the given arguments, without waiting for the results.
486
486
 
@@ -504,7 +504,7 @@ class Function(
504
504
  ...
505
505
 
506
506
  _experimental_spawn: ___experimental_spawn_spec[
507
- modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
507
+ modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
508
508
  ]
509
509
 
510
510
  class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
@@ -513,7 +513,7 @@ class Function(
513
513
 
514
514
  _spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
515
515
 
516
- class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
516
+ class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
517
517
  def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
518
518
  """Calls the function with the given arguments, without waiting for the results.
519
519
 
@@ -534,7 +534,7 @@ class Function(
534
534
  """
535
535
  ...
536
536
 
537
- spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
537
+ spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
538
538
 
539
539
  def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
540
540
  """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.1.4.dev19
3
+ Version: 1.1.4.dev21
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -2034,6 +2034,10 @@ message ImageContextFile {
2034
2034
  bytes data = 2;
2035
2035
  }
2036
2036
 
2037
+ message ImageDeleteRequest {
2038
+ string image_id = 1;
2039
+ }
2040
+
2037
2041
  message ImageFromIdRequest {
2038
2042
  string image_id = 1;
2039
2043
  }
@@ -3547,6 +3551,7 @@ service ModalClient {
3547
3551
  rpc FunctionUpdateSchedulingParams(FunctionUpdateSchedulingParamsRequest) returns (FunctionUpdateSchedulingParamsResponse);
3548
3552
 
3549
3553
  // Images
3554
+ rpc ImageDelete(ImageDeleteRequest) returns (google.protobuf.Empty);
3550
3555
  rpc ImageFromId(ImageFromIdRequest) returns (ImageFromIdResponse);
3551
3556
  rpc ImageGetOrCreate(ImageGetOrCreateRequest) returns (ImageGetOrCreateResponse);
3552
3557
  rpc ImageJoinStreaming(ImageJoinStreamingRequest) returns (stream ImageJoinStreamingResponse);
@@ -358,6 +358,10 @@ class ModalClientBase(abc.ABC):
358
358
  async def FunctionUpdateSchedulingParams(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest, modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse]') -> None:
359
359
  pass
360
360
 
361
+ @abc.abstractmethod
362
+ async def ImageDelete(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageDeleteRequest, google.protobuf.empty_pb2.Empty]') -> None:
363
+ pass
364
+
361
365
  @abc.abstractmethod
362
366
  async def ImageFromId(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.ImageFromIdRequest, modal_proto.api_pb2.ImageFromIdResponse]') -> None:
363
367
  pass
@@ -1194,6 +1198,12 @@ class ModalClientBase(abc.ABC):
1194
1198
  modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
1195
1199
  modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
1196
1200
  ),
1201
+ '/modal.client.ModalClient/ImageDelete': grpclib.const.Handler(
1202
+ self.ImageDelete,
1203
+ grpclib.const.Cardinality.UNARY_UNARY,
1204
+ modal_proto.api_pb2.ImageDeleteRequest,
1205
+ google.protobuf.empty_pb2.Empty,
1206
+ ),
1197
1207
  '/modal.client.ModalClient/ImageFromId': grpclib.const.Handler(
1198
1208
  self.ImageFromId,
1199
1209
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -2196,6 +2206,12 @@ class ModalClientStub:
2196
2206
  modal_proto.api_pb2.FunctionUpdateSchedulingParamsRequest,
2197
2207
  modal_proto.api_pb2.FunctionUpdateSchedulingParamsResponse,
2198
2208
  )
2209
+ self.ImageDelete = grpclib.client.UnaryUnaryMethod(
2210
+ channel,
2211
+ '/modal.client.ModalClient/ImageDelete',
2212
+ modal_proto.api_pb2.ImageDeleteRequest,
2213
+ google.protobuf.empty_pb2.Empty,
2214
+ )
2199
2215
  self.ImageFromId = grpclib.client.UnaryUnaryMethod(
2200
2216
  channel,
2201
2217
  '/modal.client.ModalClient/ImageFromId',