modal 0.74.29__tar.gz → 0.74.31__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 (183) hide show
  1. {modal-0.74.29 → modal-0.74.31}/PKG-INFO +1 -1
  2. {modal-0.74.29 → modal-0.74.31}/modal/_functions.py +3 -10
  3. {modal-0.74.29 → modal-0.74.31}/modal/client.pyi +2 -2
  4. {modal-0.74.29 → modal-0.74.31}/modal/functions.pyi +8 -7
  5. {modal-0.74.29 → modal-0.74.31}/modal.egg-info/PKG-INFO +1 -1
  6. {modal-0.74.29 → modal-0.74.31}/modal_version/_version_generated.py +1 -1
  7. {modal-0.74.29 → modal-0.74.31}/LICENSE +0 -0
  8. {modal-0.74.29 → modal-0.74.31}/README.md +0 -0
  9. {modal-0.74.29 → modal-0.74.31}/modal/__init__.py +0 -0
  10. {modal-0.74.29 → modal-0.74.31}/modal/__main__.py +0 -0
  11. {modal-0.74.29 → modal-0.74.31}/modal/_clustered_functions.py +0 -0
  12. {modal-0.74.29 → modal-0.74.31}/modal/_clustered_functions.pyi +0 -0
  13. {modal-0.74.29 → modal-0.74.31}/modal/_container_entrypoint.py +0 -0
  14. {modal-0.74.29 → modal-0.74.31}/modal/_ipython.py +0 -0
  15. {modal-0.74.29 → modal-0.74.31}/modal/_location.py +0 -0
  16. {modal-0.74.29 → modal-0.74.31}/modal/_object.py +0 -0
  17. {modal-0.74.29 → modal-0.74.31}/modal/_output.py +0 -0
  18. {modal-0.74.29 → modal-0.74.31}/modal/_partial_function.py +0 -0
  19. {modal-0.74.29 → modal-0.74.31}/modal/_pty.py +0 -0
  20. {modal-0.74.29 → modal-0.74.31}/modal/_resolver.py +0 -0
  21. {modal-0.74.29 → modal-0.74.31}/modal/_resources.py +0 -0
  22. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/__init__.py +0 -0
  23. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/asgi.py +0 -0
  24. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/container_io_manager.py +0 -0
  25. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/container_io_manager.pyi +0 -0
  26. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/execution_context.py +0 -0
  27. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/execution_context.pyi +0 -0
  28. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/gpu_memory_snapshot.py +0 -0
  29. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/telemetry.py +0 -0
  30. {modal-0.74.29 → modal-0.74.31}/modal/_runtime/user_code_imports.py +0 -0
  31. {modal-0.74.29 → modal-0.74.31}/modal/_serialization.py +0 -0
  32. {modal-0.74.29 → modal-0.74.31}/modal/_traceback.py +0 -0
  33. {modal-0.74.29 → modal-0.74.31}/modal/_tunnel.py +0 -0
  34. {modal-0.74.29 → modal-0.74.31}/modal/_tunnel.pyi +0 -0
  35. {modal-0.74.29 → modal-0.74.31}/modal/_type_manager.py +0 -0
  36. {modal-0.74.29 → modal-0.74.31}/modal/_utils/__init__.py +0 -0
  37. {modal-0.74.29 → modal-0.74.31}/modal/_utils/app_utils.py +0 -0
  38. {modal-0.74.29 → modal-0.74.31}/modal/_utils/async_utils.py +0 -0
  39. {modal-0.74.29 → modal-0.74.31}/modal/_utils/blob_utils.py +0 -0
  40. {modal-0.74.29 → modal-0.74.31}/modal/_utils/bytes_io_segment_payload.py +0 -0
  41. {modal-0.74.29 → modal-0.74.31}/modal/_utils/deprecation.py +0 -0
  42. {modal-0.74.29 → modal-0.74.31}/modal/_utils/docker_utils.py +0 -0
  43. {modal-0.74.29 → modal-0.74.31}/modal/_utils/function_utils.py +0 -0
  44. {modal-0.74.29 → modal-0.74.31}/modal/_utils/git_utils.py +0 -0
  45. {modal-0.74.29 → modal-0.74.31}/modal/_utils/grpc_testing.py +0 -0
  46. {modal-0.74.29 → modal-0.74.31}/modal/_utils/grpc_utils.py +0 -0
  47. {modal-0.74.29 → modal-0.74.31}/modal/_utils/hash_utils.py +0 -0
  48. {modal-0.74.29 → modal-0.74.31}/modal/_utils/http_utils.py +0 -0
  49. {modal-0.74.29 → modal-0.74.31}/modal/_utils/jwt_utils.py +0 -0
  50. {modal-0.74.29 → modal-0.74.31}/modal/_utils/logger.py +0 -0
  51. {modal-0.74.29 → modal-0.74.31}/modal/_utils/mount_utils.py +0 -0
  52. {modal-0.74.29 → modal-0.74.31}/modal/_utils/name_utils.py +0 -0
  53. {modal-0.74.29 → modal-0.74.31}/modal/_utils/package_utils.py +0 -0
  54. {modal-0.74.29 → modal-0.74.31}/modal/_utils/pattern_utils.py +0 -0
  55. {modal-0.74.29 → modal-0.74.31}/modal/_utils/rand_pb_testing.py +0 -0
  56. {modal-0.74.29 → modal-0.74.31}/modal/_utils/shell_utils.py +0 -0
  57. {modal-0.74.29 → modal-0.74.31}/modal/_vendor/__init__.py +0 -0
  58. {modal-0.74.29 → modal-0.74.31}/modal/_vendor/a2wsgi_wsgi.py +0 -0
  59. {modal-0.74.29 → modal-0.74.31}/modal/_vendor/cloudpickle.py +0 -0
  60. {modal-0.74.29 → modal-0.74.31}/modal/_vendor/tblib.py +0 -0
  61. {modal-0.74.29 → modal-0.74.31}/modal/_watcher.py +0 -0
  62. {modal-0.74.29 → modal-0.74.31}/modal/app.py +0 -0
  63. {modal-0.74.29 → modal-0.74.31}/modal/app.pyi +0 -0
  64. {modal-0.74.29 → modal-0.74.31}/modal/call_graph.py +0 -0
  65. {modal-0.74.29 → modal-0.74.31}/modal/cli/__init__.py +0 -0
  66. {modal-0.74.29 → modal-0.74.31}/modal/cli/_download.py +0 -0
  67. {modal-0.74.29 → modal-0.74.31}/modal/cli/_traceback.py +0 -0
  68. {modal-0.74.29 → modal-0.74.31}/modal/cli/app.py +0 -0
  69. {modal-0.74.29 → modal-0.74.31}/modal/cli/config.py +0 -0
  70. {modal-0.74.29 → modal-0.74.31}/modal/cli/container.py +0 -0
  71. {modal-0.74.29 → modal-0.74.31}/modal/cli/dict.py +0 -0
  72. {modal-0.74.29 → modal-0.74.31}/modal/cli/entry_point.py +0 -0
  73. {modal-0.74.29 → modal-0.74.31}/modal/cli/environment.py +0 -0
  74. {modal-0.74.29 → modal-0.74.31}/modal/cli/import_refs.py +0 -0
  75. {modal-0.74.29 → modal-0.74.31}/modal/cli/launch.py +0 -0
  76. {modal-0.74.29 → modal-0.74.31}/modal/cli/network_file_system.py +0 -0
  77. {modal-0.74.29 → modal-0.74.31}/modal/cli/profile.py +0 -0
  78. {modal-0.74.29 → modal-0.74.31}/modal/cli/programs/__init__.py +0 -0
  79. {modal-0.74.29 → modal-0.74.31}/modal/cli/programs/run_jupyter.py +0 -0
  80. {modal-0.74.29 → modal-0.74.31}/modal/cli/programs/vscode.py +0 -0
  81. {modal-0.74.29 → modal-0.74.31}/modal/cli/queues.py +0 -0
  82. {modal-0.74.29 → modal-0.74.31}/modal/cli/run.py +0 -0
  83. {modal-0.74.29 → modal-0.74.31}/modal/cli/secret.py +0 -0
  84. {modal-0.74.29 → modal-0.74.31}/modal/cli/token.py +0 -0
  85. {modal-0.74.29 → modal-0.74.31}/modal/cli/utils.py +0 -0
  86. {modal-0.74.29 → modal-0.74.31}/modal/cli/volume.py +0 -0
  87. {modal-0.74.29 → modal-0.74.31}/modal/client.py +0 -0
  88. {modal-0.74.29 → modal-0.74.31}/modal/cloud_bucket_mount.py +0 -0
  89. {modal-0.74.29 → modal-0.74.31}/modal/cloud_bucket_mount.pyi +0 -0
  90. {modal-0.74.29 → modal-0.74.31}/modal/cls.py +0 -0
  91. {modal-0.74.29 → modal-0.74.31}/modal/cls.pyi +0 -0
  92. {modal-0.74.29 → modal-0.74.31}/modal/config.py +0 -0
  93. {modal-0.74.29 → modal-0.74.31}/modal/container_process.py +0 -0
  94. {modal-0.74.29 → modal-0.74.31}/modal/container_process.pyi +0 -0
  95. {modal-0.74.29 → modal-0.74.31}/modal/dict.py +0 -0
  96. {modal-0.74.29 → modal-0.74.31}/modal/dict.pyi +0 -0
  97. {modal-0.74.29 → modal-0.74.31}/modal/environments.py +0 -0
  98. {modal-0.74.29 → modal-0.74.31}/modal/environments.pyi +0 -0
  99. {modal-0.74.29 → modal-0.74.31}/modal/exception.py +0 -0
  100. {modal-0.74.29 → modal-0.74.31}/modal/experimental/__init__.py +0 -0
  101. {modal-0.74.29 → modal-0.74.31}/modal/experimental/ipython.py +0 -0
  102. {modal-0.74.29 → modal-0.74.31}/modal/file_io.py +0 -0
  103. {modal-0.74.29 → modal-0.74.31}/modal/file_io.pyi +0 -0
  104. {modal-0.74.29 → modal-0.74.31}/modal/file_pattern_matcher.py +0 -0
  105. {modal-0.74.29 → modal-0.74.31}/modal/functions.py +0 -0
  106. {modal-0.74.29 → modal-0.74.31}/modal/gpu.py +0 -0
  107. {modal-0.74.29 → modal-0.74.31}/modal/image.py +0 -0
  108. {modal-0.74.29 → modal-0.74.31}/modal/image.pyi +0 -0
  109. {modal-0.74.29 → modal-0.74.31}/modal/io_streams.py +0 -0
  110. {modal-0.74.29 → modal-0.74.31}/modal/io_streams.pyi +0 -0
  111. {modal-0.74.29 → modal-0.74.31}/modal/mount.py +0 -0
  112. {modal-0.74.29 → modal-0.74.31}/modal/mount.pyi +0 -0
  113. {modal-0.74.29 → modal-0.74.31}/modal/network_file_system.py +0 -0
  114. {modal-0.74.29 → modal-0.74.31}/modal/network_file_system.pyi +0 -0
  115. {modal-0.74.29 → modal-0.74.31}/modal/object.py +0 -0
  116. {modal-0.74.29 → modal-0.74.31}/modal/object.pyi +0 -0
  117. {modal-0.74.29 → modal-0.74.31}/modal/output.py +0 -0
  118. {modal-0.74.29 → modal-0.74.31}/modal/parallel_map.py +0 -0
  119. {modal-0.74.29 → modal-0.74.31}/modal/parallel_map.pyi +0 -0
  120. {modal-0.74.29 → modal-0.74.31}/modal/partial_function.py +0 -0
  121. {modal-0.74.29 → modal-0.74.31}/modal/partial_function.pyi +0 -0
  122. {modal-0.74.29 → modal-0.74.31}/modal/proxy.py +0 -0
  123. {modal-0.74.29 → modal-0.74.31}/modal/proxy.pyi +0 -0
  124. {modal-0.74.29 → modal-0.74.31}/modal/py.typed +0 -0
  125. {modal-0.74.29 → modal-0.74.31}/modal/queue.py +0 -0
  126. {modal-0.74.29 → modal-0.74.31}/modal/queue.pyi +0 -0
  127. {modal-0.74.29 → modal-0.74.31}/modal/requirements/2023.12.312.txt +0 -0
  128. {modal-0.74.29 → modal-0.74.31}/modal/requirements/2023.12.txt +0 -0
  129. {modal-0.74.29 → modal-0.74.31}/modal/requirements/2024.04.txt +0 -0
  130. {modal-0.74.29 → modal-0.74.31}/modal/requirements/2024.10.txt +0 -0
  131. {modal-0.74.29 → modal-0.74.31}/modal/requirements/PREVIEW.txt +0 -0
  132. {modal-0.74.29 → modal-0.74.31}/modal/requirements/README.md +0 -0
  133. {modal-0.74.29 → modal-0.74.31}/modal/requirements/base-images.json +0 -0
  134. {modal-0.74.29 → modal-0.74.31}/modal/retries.py +0 -0
  135. {modal-0.74.29 → modal-0.74.31}/modal/runner.py +0 -0
  136. {modal-0.74.29 → modal-0.74.31}/modal/runner.pyi +0 -0
  137. {modal-0.74.29 → modal-0.74.31}/modal/running_app.py +0 -0
  138. {modal-0.74.29 → modal-0.74.31}/modal/sandbox.py +0 -0
  139. {modal-0.74.29 → modal-0.74.31}/modal/sandbox.pyi +0 -0
  140. {modal-0.74.29 → modal-0.74.31}/modal/schedule.py +0 -0
  141. {modal-0.74.29 → modal-0.74.31}/modal/scheduler_placement.py +0 -0
  142. {modal-0.74.29 → modal-0.74.31}/modal/secret.py +0 -0
  143. {modal-0.74.29 → modal-0.74.31}/modal/secret.pyi +0 -0
  144. {modal-0.74.29 → modal-0.74.31}/modal/serving.py +0 -0
  145. {modal-0.74.29 → modal-0.74.31}/modal/serving.pyi +0 -0
  146. {modal-0.74.29 → modal-0.74.31}/modal/snapshot.py +0 -0
  147. {modal-0.74.29 → modal-0.74.31}/modal/snapshot.pyi +0 -0
  148. {modal-0.74.29 → modal-0.74.31}/modal/stream_type.py +0 -0
  149. {modal-0.74.29 → modal-0.74.31}/modal/token_flow.py +0 -0
  150. {modal-0.74.29 → modal-0.74.31}/modal/token_flow.pyi +0 -0
  151. {modal-0.74.29 → modal-0.74.31}/modal/volume.py +0 -0
  152. {modal-0.74.29 → modal-0.74.31}/modal/volume.pyi +0 -0
  153. {modal-0.74.29 → modal-0.74.31}/modal.egg-info/SOURCES.txt +0 -0
  154. {modal-0.74.29 → modal-0.74.31}/modal.egg-info/dependency_links.txt +0 -0
  155. {modal-0.74.29 → modal-0.74.31}/modal.egg-info/entry_points.txt +0 -0
  156. {modal-0.74.29 → modal-0.74.31}/modal.egg-info/requires.txt +0 -0
  157. {modal-0.74.29 → modal-0.74.31}/modal.egg-info/top_level.txt +0 -0
  158. {modal-0.74.29 → modal-0.74.31}/modal_docs/__init__.py +0 -0
  159. {modal-0.74.29 → modal-0.74.31}/modal_docs/gen_cli_docs.py +0 -0
  160. {modal-0.74.29 → modal-0.74.31}/modal_docs/gen_reference_docs.py +0 -0
  161. {modal-0.74.29 → modal-0.74.31}/modal_docs/mdmd/__init__.py +0 -0
  162. {modal-0.74.29 → modal-0.74.31}/modal_docs/mdmd/mdmd.py +0 -0
  163. {modal-0.74.29 → modal-0.74.31}/modal_docs/mdmd/signatures.py +0 -0
  164. {modal-0.74.29 → modal-0.74.31}/modal_proto/__init__.py +0 -0
  165. {modal-0.74.29 → modal-0.74.31}/modal_proto/api.proto +0 -0
  166. {modal-0.74.29 → modal-0.74.31}/modal_proto/api_grpc.py +0 -0
  167. {modal-0.74.29 → modal-0.74.31}/modal_proto/api_pb2.py +0 -0
  168. {modal-0.74.29 → modal-0.74.31}/modal_proto/api_pb2.pyi +0 -0
  169. {modal-0.74.29 → modal-0.74.31}/modal_proto/api_pb2_grpc.py +0 -0
  170. {modal-0.74.29 → modal-0.74.31}/modal_proto/api_pb2_grpc.pyi +0 -0
  171. {modal-0.74.29 → modal-0.74.31}/modal_proto/modal_api_grpc.py +0 -0
  172. {modal-0.74.29 → modal-0.74.31}/modal_proto/modal_options_grpc.py +0 -0
  173. {modal-0.74.29 → modal-0.74.31}/modal_proto/options.proto +0 -0
  174. {modal-0.74.29 → modal-0.74.31}/modal_proto/options_grpc.py +0 -0
  175. {modal-0.74.29 → modal-0.74.31}/modal_proto/options_pb2.py +0 -0
  176. {modal-0.74.29 → modal-0.74.31}/modal_proto/options_pb2.pyi +0 -0
  177. {modal-0.74.29 → modal-0.74.31}/modal_proto/options_pb2_grpc.py +0 -0
  178. {modal-0.74.29 → modal-0.74.31}/modal_proto/options_pb2_grpc.pyi +0 -0
  179. {modal-0.74.29 → modal-0.74.31}/modal_proto/py.typed +0 -0
  180. {modal-0.74.29 → modal-0.74.31}/modal_version/__init__.py +0 -0
  181. {modal-0.74.29 → modal-0.74.31}/modal_version/__main__.py +0 -0
  182. {modal-0.74.29 → modal-0.74.31}/pyproject.toml +0 -0
  183. {modal-0.74.29 → modal-0.74.31}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.74.29
3
+ Version: 0.74.31
4
4
  Summary: Python client library for Modal
5
5
  Author-email: Modal Labs <support@modal.com>
6
6
  License: Apache-2.0
@@ -377,6 +377,7 @@ ReturnType = typing.TypeVar("ReturnType", covariant=True)
377
377
  OriginalReturnType = typing.TypeVar(
378
378
  "OriginalReturnType", covariant=True
379
379
  ) # differs from return type if ReturnType is coroutine
380
+ T = typing.TypeVar("T", covariant=True)
380
381
 
381
382
 
382
383
  class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type_prefix="fu"):
@@ -406,7 +407,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
406
407
  _build_args: dict
407
408
 
408
409
  _is_generator: Optional[bool] = None
409
- _cluster_size: Optional[int] = None
410
410
 
411
411
  # when this is the method of a class/object function, invocation of this function
412
412
  # should supply the method name in the FunctionInput:
@@ -930,7 +930,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
930
930
  obj._app = app # needed for CLI right now
931
931
  obj._obj = None
932
932
  obj._is_generator = is_generator
933
- obj._cluster_size = cluster_size
934
933
  obj._is_method = False
935
934
  obj._spec = function_spec # needed for modal shell
936
935
  obj._webhook_config = webhook_config # only set locally
@@ -1235,7 +1234,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
1235
1234
  # Overridden concrete implementation of base class method
1236
1235
  self._progress = None
1237
1236
  self._is_generator = None
1238
- self._cluster_size = None
1239
1237
  self._web_url = None
1240
1238
  self._function_name = None
1241
1239
  self._info = None
@@ -1304,11 +1302,6 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
1304
1302
  assert self._is_generator is not None # should be set now
1305
1303
  return self._is_generator
1306
1304
 
1307
- @property
1308
- def cluster_size(self) -> int:
1309
- """mdmd:hidden"""
1310
- return self._cluster_size or 1
1311
-
1312
1305
  @live_method_gen
1313
1306
  async def _map(
1314
1307
  self, input_queue: _SynchronizedQueue, order_outputs: bool, return_exceptions: bool
@@ -1667,7 +1660,7 @@ class _FunctionCall(typing.Generic[ReturnType], _Object, type_prefix="fc"):
1667
1660
  return fc
1668
1661
 
1669
1662
  @staticmethod
1670
- async def gather(*function_calls: "_FunctionCall[Any]") -> list[Any]:
1663
+ async def gather(*function_calls: "_FunctionCall[T]") -> typing.Sequence[T]:
1671
1664
  """Wait until all Modal FunctionCall objects have results before returning.
1672
1665
 
1673
1666
  Accepts a variable number of `FunctionCall` objects, as returned by `Function.spawn()`.
@@ -1693,7 +1686,7 @@ class _FunctionCall(typing.Generic[ReturnType], _Object, type_prefix="fc"):
1693
1686
  raise exc
1694
1687
 
1695
1688
 
1696
- async def _gather(*function_calls: _FunctionCall[ReturnType]) -> typing.Sequence[ReturnType]:
1689
+ async def _gather(*function_calls: _FunctionCall[T]) -> typing.Sequence[T]:
1697
1690
  """Deprecated: Please use `modal.FunctionCall.gather()` instead."""
1698
1691
  deprecation_warning(
1699
1692
  (2025, 2, 24),
@@ -27,7 +27,7 @@ class _Client:
27
27
  _snapshotted: bool
28
28
 
29
29
  def __init__(
30
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.29"
30
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.31"
31
31
  ): ...
32
32
  def is_closed(self) -> bool: ...
33
33
  @property
@@ -85,7 +85,7 @@ class Client:
85
85
  _snapshotted: bool
86
86
 
87
87
  def __init__(
88
- self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.29"
88
+ self, server_url: str, client_type: int, credentials: typing.Optional[tuple[str, str]], version: str = "0.74.31"
89
89
  ): ...
90
90
  def is_closed(self) -> bool: ...
91
91
  @property
@@ -48,7 +48,6 @@ class Function(
48
48
  _raw_f: typing.Optional[collections.abc.Callable[..., typing.Any]]
49
49
  _build_args: dict
50
50
  _is_generator: typing.Optional[bool]
51
- _cluster_size: typing.Optional[int]
52
51
  _use_method_name: str
53
52
  _class_parameter_info: typing.Optional[modal_proto.api_pb2.ClassParameterInfo]
54
53
  _method_handle_metadata: typing.Optional[dict[str, modal_proto.api_pb2.FunctionHandleMetadata]]
@@ -163,8 +162,6 @@ class Function(
163
162
  def web_url(self) -> typing.Optional[str]: ...
164
163
  @property
165
164
  def is_generator(self) -> bool: ...
166
- @property
167
- def cluster_size(self) -> int: ...
168
165
 
169
166
  class ___map_spec(typing_extensions.Protocol[SUPERSELF]):
170
167
  def __call__(
@@ -330,13 +327,17 @@ class FunctionCall(typing.Generic[modal._functions.ReturnType], modal.object.Obj
330
327
  from_id: __from_id_spec
331
328
 
332
329
  class __gather_spec(typing_extensions.Protocol):
333
- def __call__(self, *function_calls: FunctionCall[typing.Any]) -> list[typing.Any]: ...
334
- async def aio(self, *function_calls: FunctionCall[typing.Any]) -> list[typing.Any]: ...
330
+ def __call__(
331
+ self, *function_calls: FunctionCall[modal._functions.T]
332
+ ) -> typing.Sequence[modal._functions.T]: ...
333
+ async def aio(
334
+ self, *function_calls: FunctionCall[modal._functions.T]
335
+ ) -> typing.Sequence[modal._functions.T]: ...
335
336
 
336
337
  gather: __gather_spec
337
338
 
338
339
  class __gather_spec(typing_extensions.Protocol):
339
- def __call__(self, *function_calls) -> typing.Sequence[modal._functions.ReturnType]: ...
340
- async def aio(self, *function_calls) -> typing.Sequence[modal._functions.ReturnType]: ...
340
+ def __call__(self, *function_calls) -> typing.Sequence[modal._functions.T]: ...
341
+ async def aio(self, *function_calls) -> typing.Sequence[modal._functions.T]: ...
341
342
 
342
343
  gather: __gather_spec
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: modal
3
- Version: 0.74.29
3
+ Version: 0.74.31
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
 
3
3
  # Note: Reset this value to -1 whenever you make a minor `0.X` release of the client.
4
- build_number = 29 # git: 89aa212
4
+ build_number = 31 # git: 6ab0ec1
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
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
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
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