modal 1.1.3.dev7__tar.gz → 1.1.4.dev1__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.
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/PKG-INFO +1 -1
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/client.pyi +2 -2
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/functions.pyi +6 -6
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/parallel_map.py +11 -2
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/api.proto +1 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/api_pb2.py +166 -166
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/api_pb2.pyi +4 -1
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_version/__init__.py +1 -1
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/LICENSE +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/README.md +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/__main__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_clustered_functions.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_clustered_functions.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_container_entrypoint.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_functions.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_ipython.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_location.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_object.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_output.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_partial_function.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_pty.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_resolver.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_resources.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/asgi.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/execution_context.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/telemetry.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_serialization.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_traceback.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_tunnel.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_tunnel.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_type_manager.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/app_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/async_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/blob_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/deprecation.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/docker_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/function_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/git_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/hash_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/http_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/logger.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/mount_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/name_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/package_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/shell_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_utils/time_utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_vendor/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_vendor/tblib.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/_watcher.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/app.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/app.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/2023.12.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/2024.04.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/2024.10.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/2025.06.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/README.md +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/builder/base-images.json +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/call_graph.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/_download.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/_traceback.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/app.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/cluster.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/config.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/container.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/dict.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/entry_point.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/environment.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/import_refs.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/launch.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/network_file_system.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/profile.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/programs/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/programs/launch_instance_ssh.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/programs/run_marimo.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/programs/vscode.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/queues.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/run.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/secret.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/token.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/utils.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cli/volume.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/client.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cls.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/cls.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/config.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/container_process.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/container_process.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/dict.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/dict.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/environments.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/environments.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/exception.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/experimental/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/experimental/flash.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/experimental/flash.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/experimental/ipython.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/file_io.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/file_io.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/file_pattern_matcher.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/functions.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/gpu.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/image.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/image.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/io_streams.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/io_streams.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/mount.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/mount.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/network_file_system.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/network_file_system.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/object.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/object.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/output.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/parallel_map.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/partial_function.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/partial_function.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/proxy.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/proxy.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/py.typed +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/queue.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/queue.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/retries.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/runner.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/runner.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/running_app.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/sandbox.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/sandbox.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/schedule.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/scheduler_placement.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/secret.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/secret.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/serving.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/serving.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/snapshot.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/snapshot.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/stream_type.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/token_flow.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/token_flow.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/volume.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal/volume.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal.egg-info/requires.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal.egg-info/top_level.txt +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_docs/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/__init__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/api_grpc.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/modal_options_grpc.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/options.proto +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/options_grpc.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/options_pb2.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/options_pb2.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_proto/py.typed +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/modal_version/__main__.py +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/pyproject.toml +0 -0
- {modal-1.1.3.dev7 → modal-1.1.4.dev1}/setup.cfg +0 -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.
|
36
|
+
version: str = "1.1.4.dev1",
|
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.
|
167
|
+
version: str = "1.1.4.dev1",
|
168
168
|
):
|
169
169
|
"""mdmd:hidden
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -433,7 +433,7 @@ class Function(
|
|
433
433
|
|
434
434
|
_call_generator: ___call_generator_spec[typing_extensions.Self]
|
435
435
|
|
436
|
-
class __remote_spec(typing_extensions.Protocol[
|
436
|
+
class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
437
437
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
438
438
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
439
439
|
...
|
@@ -442,7 +442,7 @@ class Function(
|
|
442
442
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
443
443
|
...
|
444
444
|
|
445
|
-
remote: __remote_spec[modal._functions.
|
445
|
+
remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
|
446
446
|
|
447
447
|
class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
|
448
448
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
@@ -469,7 +469,7 @@ class Function(
|
|
469
469
|
"""
|
470
470
|
...
|
471
471
|
|
472
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
472
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
473
473
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
474
474
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
475
475
|
|
@@ -493,7 +493,7 @@ class Function(
|
|
493
493
|
...
|
494
494
|
|
495
495
|
_experimental_spawn: ___experimental_spawn_spec[
|
496
|
-
modal._functions.
|
496
|
+
modal._functions.P, modal._functions.ReturnType, typing_extensions.Self
|
497
497
|
]
|
498
498
|
|
499
499
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
|
@@ -502,7 +502,7 @@ class Function(
|
|
502
502
|
|
503
503
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
|
504
504
|
|
505
|
-
class __spawn_spec(typing_extensions.Protocol[
|
505
|
+
class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_INNER, SUPERSELF]):
|
506
506
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
507
507
|
"""Calls the function with the given arguments, without waiting for the results.
|
508
508
|
|
@@ -523,7 +523,7 @@ class Function(
|
|
523
523
|
"""
|
524
524
|
...
|
525
525
|
|
526
|
-
spawn: __spawn_spec[modal._functions.
|
526
|
+
spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, typing_extensions.Self]
|
527
527
|
|
528
528
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
|
529
529
|
"""Return the inner Python object wrapped by this Modal Function."""
|
@@ -762,7 +762,12 @@ async def _map_invocation_inputplane(
|
|
762
762
|
metadata = await client.get_input_plane_metadata(function._input_plane_region)
|
763
763
|
|
764
764
|
response: api_pb2.MapStartOrContinueResponse = await retry_transient_errors(
|
765
|
-
input_plane_stub.MapStartOrContinue,
|
765
|
+
input_plane_stub.MapStartOrContinue,
|
766
|
+
request,
|
767
|
+
metadata=metadata,
|
768
|
+
additional_status_codes=[Status.RESOURCE_EXHAUSTED],
|
769
|
+
max_delay=PUMP_INPUTS_MAX_RETRY_DELAY,
|
770
|
+
max_retries=None,
|
766
771
|
)
|
767
772
|
|
768
773
|
# match response items to the corresponding request item index
|
@@ -794,7 +799,11 @@ async def _map_invocation_inputplane(
|
|
794
799
|
await function_call_id_received.wait()
|
795
800
|
continue
|
796
801
|
|
797
|
-
|
802
|
+
sleep_task = asyncio.create_task(asyncio.sleep(1))
|
803
|
+
map_done_task = asyncio.create_task(map_done_event.wait())
|
804
|
+
done, _ = await asyncio.wait([sleep_task, map_done_task], return_when=FIRST_COMPLETED)
|
805
|
+
if map_done_task in done:
|
806
|
+
break
|
798
807
|
|
799
808
|
# check_inputs = [(idx, attempt_token), ...]
|
800
809
|
check_inputs = map_items_manager.get_input_idxs_waiting_for_output()
|