modal 1.1.1.dev17__tar.gz → 1.1.1.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.

Potentially problematic release.


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

Files changed (188) hide show
  1. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/PKG-INFO +1 -1
  2. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/client.pyi +2 -2
  3. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/functions.pyi +6 -6
  4. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal.egg-info/PKG-INFO +1 -1
  5. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/api.proto +19 -0
  6. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/api_grpc.py +16 -0
  7. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/api_pb2.py +471 -443
  8. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/api_pb2.pyi +59 -1
  9. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/api_pb2_grpc.py +33 -0
  10. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/api_pb2_grpc.pyi +10 -0
  11. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/modal_api_grpc.py +1 -0
  12. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_version/__init__.py +1 -1
  13. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/LICENSE +0 -0
  14. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/README.md +0 -0
  15. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/__init__.py +0 -0
  16. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/__main__.py +0 -0
  17. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_clustered_functions.py +0 -0
  18. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_clustered_functions.pyi +0 -0
  19. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_container_entrypoint.py +0 -0
  20. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_functions.py +0 -0
  21. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_ipython.py +0 -0
  22. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_location.py +0 -0
  23. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_object.py +0 -0
  24. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_output.py +0 -0
  25. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_partial_function.py +0 -0
  26. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_pty.py +0 -0
  27. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_resolver.py +0 -0
  28. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_resources.py +0 -0
  29. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/__init__.py +0 -0
  30. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/asgi.py +0 -0
  31. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/container_io_manager.py +0 -0
  32. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/container_io_manager.pyi +0 -0
  33. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/execution_context.py +0 -0
  34. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/execution_context.pyi +0 -0
  35. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  36. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/telemetry.py +0 -0
  37. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_runtime/user_code_imports.py +0 -0
  38. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_serialization.py +0 -0
  39. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_traceback.py +0 -0
  40. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_tunnel.py +0 -0
  41. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_tunnel.pyi +0 -0
  42. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_type_manager.py +0 -0
  43. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/__init__.py +0 -0
  44. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/app_utils.py +0 -0
  45. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/async_utils.py +0 -0
  46. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/auth_token_manager.py +0 -0
  47. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/blob_utils.py +0 -0
  48. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/bytes_io_segment_payload.py +0 -0
  49. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/deprecation.py +0 -0
  50. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/docker_utils.py +0 -0
  51. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/function_utils.py +0 -0
  52. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/git_utils.py +0 -0
  53. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/grpc_testing.py +0 -0
  54. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/grpc_utils.py +0 -0
  55. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/hash_utils.py +0 -0
  56. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/http_utils.py +0 -0
  57. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/jwt_utils.py +0 -0
  58. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/logger.py +0 -0
  59. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/mount_utils.py +0 -0
  60. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/name_utils.py +0 -0
  61. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/package_utils.py +0 -0
  62. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/pattern_utils.py +0 -0
  63. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/rand_pb_testing.py +0 -0
  64. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/shell_utils.py +0 -0
  65. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_utils/time_utils.py +0 -0
  66. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_vendor/__init__.py +0 -0
  67. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  68. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_vendor/cloudpickle.py +0 -0
  69. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_vendor/tblib.py +0 -0
  70. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/_watcher.py +0 -0
  71. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/app.py +0 -0
  72. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/app.pyi +0 -0
  73. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/call_graph.py +0 -0
  74. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/__init__.py +0 -0
  75. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/_download.py +0 -0
  76. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/_traceback.py +0 -0
  77. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/app.py +0 -0
  78. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/cluster.py +0 -0
  79. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/config.py +0 -0
  80. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/container.py +0 -0
  81. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/dict.py +0 -0
  82. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/entry_point.py +0 -0
  83. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/environment.py +0 -0
  84. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/import_refs.py +0 -0
  85. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/launch.py +0 -0
  86. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/network_file_system.py +0 -0
  87. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/profile.py +0 -0
  88. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/programs/__init__.py +0 -0
  89. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/programs/run_jupyter.py +0 -0
  90. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/programs/vscode.py +0 -0
  91. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/queues.py +0 -0
  92. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/run.py +0 -0
  93. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/secret.py +0 -0
  94. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/token.py +0 -0
  95. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/utils.py +0 -0
  96. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cli/volume.py +0 -0
  97. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/client.py +0 -0
  98. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cloud_bucket_mount.py +0 -0
  99. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cloud_bucket_mount.pyi +0 -0
  100. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cls.py +0 -0
  101. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/cls.pyi +0 -0
  102. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/config.py +0 -0
  103. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/container_process.py +0 -0
  104. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/container_process.pyi +0 -0
  105. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/dict.py +0 -0
  106. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/dict.pyi +0 -0
  107. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/environments.py +0 -0
  108. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/environments.pyi +0 -0
  109. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/exception.py +0 -0
  110. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/experimental/__init__.py +0 -0
  111. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/experimental/flash.py +0 -0
  112. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/experimental/flash.pyi +0 -0
  113. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/experimental/ipython.py +0 -0
  114. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/file_io.py +0 -0
  115. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/file_io.pyi +0 -0
  116. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/file_pattern_matcher.py +0 -0
  117. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/functions.py +0 -0
  118. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/gpu.py +0 -0
  119. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/image.py +0 -0
  120. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/image.pyi +0 -0
  121. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/io_streams.py +0 -0
  122. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/io_streams.pyi +0 -0
  123. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/mount.py +0 -0
  124. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/mount.pyi +0 -0
  125. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/network_file_system.py +0 -0
  126. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/network_file_system.pyi +0 -0
  127. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/object.py +0 -0
  128. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/object.pyi +0 -0
  129. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/output.py +0 -0
  130. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/parallel_map.py +0 -0
  131. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/parallel_map.pyi +0 -0
  132. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/partial_function.py +0 -0
  133. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/partial_function.pyi +0 -0
  134. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/proxy.py +0 -0
  135. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/proxy.pyi +0 -0
  136. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/py.typed +0 -0
  137. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/queue.py +0 -0
  138. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/queue.pyi +0 -0
  139. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/2023.12.312.txt +0 -0
  140. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/2023.12.txt +0 -0
  141. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/2024.04.txt +0 -0
  142. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/2024.10.txt +0 -0
  143. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/2025.06.txt +0 -0
  144. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/PREVIEW.txt +0 -0
  145. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/README.md +0 -0
  146. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/requirements/base-images.json +0 -0
  147. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/retries.py +0 -0
  148. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/runner.py +0 -0
  149. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/runner.pyi +0 -0
  150. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/running_app.py +0 -0
  151. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/sandbox.py +0 -0
  152. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/sandbox.pyi +0 -0
  153. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/schedule.py +0 -0
  154. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/scheduler_placement.py +0 -0
  155. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/secret.py +0 -0
  156. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/secret.pyi +0 -0
  157. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/serving.py +0 -0
  158. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/serving.pyi +0 -0
  159. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/snapshot.py +0 -0
  160. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/snapshot.pyi +0 -0
  161. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/stream_type.py +0 -0
  162. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/token_flow.py +0 -0
  163. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/token_flow.pyi +0 -0
  164. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/volume.py +0 -0
  165. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal/volume.pyi +0 -0
  166. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal.egg-info/SOURCES.txt +0 -0
  167. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal.egg-info/dependency_links.txt +0 -0
  168. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal.egg-info/entry_points.txt +0 -0
  169. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal.egg-info/requires.txt +0 -0
  170. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal.egg-info/top_level.txt +0 -0
  171. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_docs/__init__.py +0 -0
  172. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_docs/gen_cli_docs.py +0 -0
  173. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_docs/gen_reference_docs.py +0 -0
  174. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_docs/mdmd/__init__.py +0 -0
  175. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_docs/mdmd/mdmd.py +0 -0
  176. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_docs/mdmd/signatures.py +0 -0
  177. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/__init__.py +0 -0
  178. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/modal_options_grpc.py +0 -0
  179. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/options.proto +0 -0
  180. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/options_grpc.py +0 -0
  181. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/options_pb2.py +0 -0
  182. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/options_pb2.pyi +0 -0
  183. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/options_pb2_grpc.py +0 -0
  184. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/options_pb2_grpc.pyi +0 -0
  185. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_proto/py.typed +0 -0
  186. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/modal_version/__main__.py +0 -0
  187. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/pyproject.toml +0 -0
  188. {modal-1.1.1.dev17 → modal-1.1.1.dev19}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 1.1.1.dev17
3
+ Version: 1.1.1.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.1.dev17",
36
+ version: str = "1.1.1.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.1.dev17",
167
+ version: str = "1.1.1.dev19",
168
168
  ):
169
169
  """mdmd:hidden
170
170
  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.1.1.dev17
3
+ Version: 1.1.1.dev19
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -240,6 +240,13 @@ enum SystemErrorCode {
240
240
  SYSTEM_ERROR_CODE_NOSPC = 28; // ENOSPC: No space left on device
241
241
  }
242
242
 
243
+ enum TaskSnapshotBehavior {
244
+ TASK_SNAPSHOT_BEHAVIOR_UNSPECIFIED = 0;
245
+ TASK_SNAPSHOT_BEHAVIOR_SNAPSHOT = 1;
246
+ TASK_SNAPSHOT_BEHAVIOR_RESTORE = 2;
247
+ TASK_SNAPSHOT_BEHAVIOR_NONE = 3;
248
+ }
249
+
243
250
  enum TaskState {
244
251
  TASK_STATE_UNSPECIFIED = 0;
245
252
  TASK_STATE_CREATED = 6;
@@ -2098,6 +2105,16 @@ message MapAwaitResponse {
2098
2105
  string last_entry_id = 2;
2099
2106
  }
2100
2107
 
2108
+ message MapCheckInputsRequest {
2109
+ string last_entry_id = 1;
2110
+ float timeout = 2;
2111
+ repeated string attempt_tokens = 3;
2112
+ }
2113
+
2114
+ message MapCheckInputsResponse {
2115
+ repeated bool lost = 1;
2116
+ }
2117
+
2101
2118
  message MapStartOrContinueItem {
2102
2119
  FunctionPutInputsItem input = 1;
2103
2120
  optional string attempt_token = 2; // None if this is a fresh input, otherwise it is the attempt token for a retry.
@@ -2961,6 +2978,7 @@ message TaskInfo {
2961
2978
  double enqueued_at = 5;
2962
2979
  string gpu_type = 6;
2963
2980
  string sandbox_id = 7;
2981
+ TaskSnapshotBehavior snapshot_behavior = 8;
2964
2982
  }
2965
2983
 
2966
2984
  message TaskListRequest {
@@ -3464,6 +3482,7 @@ service ModalClient {
3464
3482
 
3465
3483
  // Input Plane Map
3466
3484
  rpc MapAwait(MapAwaitRequest) returns (MapAwaitResponse);
3485
+ rpc MapCheckInputs(MapCheckInputsRequest) returns (MapCheckInputsResponse);
3467
3486
  rpc MapStartOrContinue(MapStartOrContinueRequest) returns (MapStartOrContinueResponse);
3468
3487
 
3469
3488
  // Mounts
@@ -366,6 +366,10 @@ class ModalClientBase(abc.ABC):
366
366
  async def MapAwait(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MapAwaitRequest, modal_proto.api_pb2.MapAwaitResponse]') -> None:
367
367
  pass
368
368
 
369
+ @abc.abstractmethod
370
+ async def MapCheckInputs(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MapCheckInputsRequest, modal_proto.api_pb2.MapCheckInputsResponse]') -> None:
371
+ pass
372
+
369
373
  @abc.abstractmethod
370
374
  async def MapStartOrContinue(self, stream: 'grpclib.server.Stream[modal_proto.api_pb2.MapStartOrContinueRequest, modal_proto.api_pb2.MapStartOrContinueResponse]') -> None:
371
375
  pass
@@ -1186,6 +1190,12 @@ class ModalClientBase(abc.ABC):
1186
1190
  modal_proto.api_pb2.MapAwaitRequest,
1187
1191
  modal_proto.api_pb2.MapAwaitResponse,
1188
1192
  ),
1193
+ '/modal.client.ModalClient/MapCheckInputs': grpclib.const.Handler(
1194
+ self.MapCheckInputs,
1195
+ grpclib.const.Cardinality.UNARY_UNARY,
1196
+ modal_proto.api_pb2.MapCheckInputsRequest,
1197
+ modal_proto.api_pb2.MapCheckInputsResponse,
1198
+ ),
1189
1199
  '/modal.client.ModalClient/MapStartOrContinue': grpclib.const.Handler(
1190
1200
  self.MapStartOrContinue,
1191
1201
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -2158,6 +2168,12 @@ class ModalClientStub:
2158
2168
  modal_proto.api_pb2.MapAwaitRequest,
2159
2169
  modal_proto.api_pb2.MapAwaitResponse,
2160
2170
  )
2171
+ self.MapCheckInputs = grpclib.client.UnaryUnaryMethod(
2172
+ channel,
2173
+ '/modal.client.ModalClient/MapCheckInputs',
2174
+ modal_proto.api_pb2.MapCheckInputsRequest,
2175
+ modal_proto.api_pb2.MapCheckInputsResponse,
2176
+ )
2161
2177
  self.MapStartOrContinue = grpclib.client.UnaryUnaryMethod(
2162
2178
  channel,
2163
2179
  '/modal.client.ModalClient/MapStartOrContinue',