modal 1.1.4.dev26__tar.gz → 1.1.4.dev27__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.4.dev26 → modal-1.1.4.dev27}/PKG-INFO +1 -1
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_functions.py +3 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/app.py +6 -2
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/app.pyi +4 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/client.pyi +2 -2
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/functions.pyi +7 -6
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_version/__init__.py +1 -1
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/LICENSE +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/README.md +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/__main__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_clustered_functions.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_clustered_functions.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_container_entrypoint.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_ipython.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_location.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_object.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_output.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_partial_function.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_pty.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_resolver.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_resources.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/asgi.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/execution_context.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/telemetry.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_serialization.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_traceback.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_tunnel.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_tunnel.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_type_manager.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/app_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/async_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/blob_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/deprecation.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/docker_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/function_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/git_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/hash_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/http_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/logger.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/mount_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/name_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/package_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/shell_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_utils/time_utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_vendor/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_vendor/tblib.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/_watcher.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/2023.12.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/2024.04.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/2024.10.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/2025.06.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/README.md +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/builder/base-images.json +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/call_graph.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/_download.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/_traceback.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/app.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/cluster.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/config.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/container.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/dict.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/entry_point.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/environment.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/import_refs.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/launch.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/network_file_system.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/profile.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/programs/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/programs/launch_instance_ssh.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/programs/run_marimo.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/programs/vscode.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/queues.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/run.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/secret.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/token.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/utils.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cli/volume.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/client.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cls.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/cls.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/config.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/container_process.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/container_process.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/dict.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/dict.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/environments.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/environments.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/exception.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/experimental/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/experimental/flash.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/experimental/flash.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/experimental/ipython.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/file_io.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/file_io.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/file_pattern_matcher.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/functions.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/gpu.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/image.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/image.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/io_streams.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/io_streams.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/mount.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/mount.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/network_file_system.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/network_file_system.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/object.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/object.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/output.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/parallel_map.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/parallel_map.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/partial_function.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/partial_function.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/proxy.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/proxy.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/py.typed +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/queue.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/queue.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/retries.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/runner.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/runner.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/running_app.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/sandbox.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/sandbox.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/schedule.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/scheduler_placement.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/secret.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/secret.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/serving.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/serving.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/snapshot.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/snapshot.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/stream_type.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/token_flow.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/token_flow.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/volume.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal/volume.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal.egg-info/requires.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal.egg-info/top_level.txt +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_docs/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/__init__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/api.proto +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/api_grpc.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/api_pb2.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/modal_options_grpc.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/options.proto +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/options_grpc.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/options_pb2.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/options_pb2.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_proto/py.typed +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/modal_version/__main__.py +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/pyproject.toml +0 -0
- {modal-1.1.4.dev26 → modal-1.1.4.dev27}/setup.cfg +0 -0
@@ -674,6 +674,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
674
674
|
proxy: Optional[_Proxy] = None,
|
675
675
|
retries: Optional[Union[int, Retries]] = None,
|
676
676
|
timeout: int = 300,
|
677
|
+
startup_timeout: Optional[int] = None,
|
677
678
|
min_containers: Optional[int] = None,
|
678
679
|
max_containers: Optional[int] = None,
|
679
680
|
buffer_containers: Optional[int] = None,
|
@@ -966,6 +967,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
966
967
|
proxy_id=(proxy.object_id if proxy else None),
|
967
968
|
retry_policy=retry_policy,
|
968
969
|
timeout_secs=timeout_secs or 0,
|
970
|
+
startup_timeout_secs=startup_timeout or timeout_secs,
|
969
971
|
pty_info=pty_info,
|
970
972
|
cloud_provider_str=cloud if cloud else "",
|
971
973
|
runtime=config.get("function_runtime"),
|
@@ -1019,6 +1021,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
1019
1021
|
autoscaler_settings=function_definition.autoscaler_settings,
|
1020
1022
|
worker_id=function_definition.worker_id,
|
1021
1023
|
timeout_secs=function_definition.timeout_secs,
|
1024
|
+
startup_timeout_secs=function_definition.startup_timeout_secs,
|
1022
1025
|
web_url=function_definition.web_url,
|
1023
1026
|
web_url_info=function_definition.web_url_info,
|
1024
1027
|
webhook_config=function_definition.webhook_config,
|
@@ -641,7 +641,8 @@ class _App:
|
|
641
641
|
scaledown_window: Optional[int] = None, # Max time (in seconds) a container can remain idle while scaling down.
|
642
642
|
proxy: Optional[_Proxy] = None, # Reference to a Modal Proxy to use in front of this function.
|
643
643
|
retries: Optional[Union[int, Retries]] = None, # Number of times to retry each input in case of failure.
|
644
|
-
timeout: int = 300, # Maximum execution time in seconds.
|
644
|
+
timeout: int = 300, # Maximum execution time for inputs and startup time in seconds.
|
645
|
+
startup_timeout: Optional[int] = None, # Maximum startup time in seconds with higher precedence than `timeout`.
|
645
646
|
name: Optional[str] = None, # Sets the Modal name of the function within the app
|
646
647
|
is_generator: Optional[
|
647
648
|
bool
|
@@ -816,6 +817,7 @@ class _App:
|
|
816
817
|
batch_max_size=batch_max_size,
|
817
818
|
batch_wait_ms=batch_wait_ms,
|
818
819
|
timeout=timeout,
|
820
|
+
startup_timeout=startup_timeout or timeout,
|
819
821
|
cloud=cloud,
|
820
822
|
webhook_config=webhook_config,
|
821
823
|
enable_memory_snapshot=enable_memory_snapshot,
|
@@ -869,7 +871,8 @@ class _App:
|
|
869
871
|
scaledown_window: Optional[int] = None, # Max time (in seconds) a container can remain idle while scaling down.
|
870
872
|
proxy: Optional[_Proxy] = None, # Reference to a Modal Proxy to use in front of this function.
|
871
873
|
retries: Optional[Union[int, Retries]] = None, # Number of times to retry each input in case of failure.
|
872
|
-
timeout: int = 300, # Maximum execution time
|
874
|
+
timeout: int = 300, # Maximum execution time for inputs and startup time in seconds.
|
875
|
+
startup_timeout: Optional[int] = None, # Maximum startup time in seconds with higher precedence than `timeout`.
|
873
876
|
cloud: Optional[str] = None, # Cloud provider to run the function on. Possible values are aws, gcp, oci, auto.
|
874
877
|
region: Optional[Union[str, Sequence[str]]] = None, # Region or regions to run the function on.
|
875
878
|
enable_memory_snapshot: bool = False, # Enable memory checkpointing for faster cold starts.
|
@@ -1002,6 +1005,7 @@ class _App:
|
|
1002
1005
|
batch_max_size=batch_max_size,
|
1003
1006
|
batch_wait_ms=batch_wait_ms,
|
1004
1007
|
timeout=timeout,
|
1008
|
+
startup_timeout=startup_timeout or timeout,
|
1005
1009
|
cloud=cloud,
|
1006
1010
|
enable_memory_snapshot=enable_memory_snapshot,
|
1007
1011
|
block_network=block_network,
|
@@ -411,6 +411,7 @@ class _App:
|
|
411
411
|
proxy: typing.Optional[modal.proxy._Proxy] = None,
|
412
412
|
retries: typing.Union[int, modal.retries.Retries, None] = None,
|
413
413
|
timeout: int = 300,
|
414
|
+
startup_timeout: typing.Optional[int] = None,
|
414
415
|
name: typing.Optional[str] = None,
|
415
416
|
is_generator: typing.Optional[bool] = None,
|
416
417
|
cloud: typing.Optional[str] = None,
|
@@ -464,6 +465,7 @@ class _App:
|
|
464
465
|
proxy: typing.Optional[modal.proxy._Proxy] = None,
|
465
466
|
retries: typing.Union[int, modal.retries.Retries, None] = None,
|
466
467
|
timeout: int = 300,
|
468
|
+
startup_timeout: typing.Optional[int] = None,
|
467
469
|
cloud: typing.Optional[str] = None,
|
468
470
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
469
471
|
enable_memory_snapshot: bool = False,
|
@@ -1014,6 +1016,7 @@ class App:
|
|
1014
1016
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
1015
1017
|
retries: typing.Union[int, modal.retries.Retries, None] = None,
|
1016
1018
|
timeout: int = 300,
|
1019
|
+
startup_timeout: typing.Optional[int] = None,
|
1017
1020
|
name: typing.Optional[str] = None,
|
1018
1021
|
is_generator: typing.Optional[bool] = None,
|
1019
1022
|
cloud: typing.Optional[str] = None,
|
@@ -1067,6 +1070,7 @@ class App:
|
|
1067
1070
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
1068
1071
|
retries: typing.Union[int, modal.retries.Retries, None] = None,
|
1069
1072
|
timeout: int = 300,
|
1073
|
+
startup_timeout: typing.Optional[int] = None,
|
1070
1074
|
cloud: typing.Optional[str] = None,
|
1071
1075
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
1072
1076
|
enable_memory_snapshot: bool = False,
|
@@ -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.
|
36
|
+
version: str = "1.1.4.dev27",
|
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.
|
167
|
+
version: str = "1.1.4.dev27",
|
168
168
|
):
|
169
169
|
"""mdmd:hidden
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -85,6 +85,7 @@ class Function(
|
|
85
85
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
86
86
|
retries: typing.Union[int, modal.retries.Retries, None] = None,
|
87
87
|
timeout: int = 300,
|
88
|
+
startup_timeout: typing.Optional[int] = None,
|
88
89
|
min_containers: typing.Optional[int] = None,
|
89
90
|
max_containers: typing.Optional[int] = None,
|
90
91
|
buffer_containers: typing.Optional[int] = None,
|
@@ -444,7 +445,7 @@ class Function(
|
|
444
445
|
|
445
446
|
_call_generator: ___call_generator_spec[typing_extensions.Self]
|
446
447
|
|
447
|
-
class __remote_spec(typing_extensions.Protocol[
|
448
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
448
449
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
449
450
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
450
451
|
...
|
@@ -453,7 +454,7 @@ class Function(
|
|
453
454
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
454
455
|
...
|
455
456
|
|
456
|
-
remote: __remote_spec[modal._functions.
|
457
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
|
457
458
|
|
458
459
|
class __remote_gen_spec(typing_extensions.Protocol[SUPERSELF]):
|
459
460
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
@@ -480,7 +481,7 @@ class Function(
|
|
480
481
|
"""
|
481
482
|
...
|
482
483
|
|
483
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
484
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
484
485
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
485
486
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
486
487
|
|
@@ -504,7 +505,7 @@ class Function(
|
|
504
505
|
...
|
505
506
|
|
506
507
|
_experimental_spawn: ___experimental_spawn_spec[
|
507
|
-
modal._functions.
|
508
|
+
modal._functions.ReturnType, modal._functions.P, typing_extensions.Self
|
508
509
|
]
|
509
510
|
|
510
511
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER, SUPERSELF]):
|
@@ -513,7 +514,7 @@ class Function(
|
|
513
514
|
|
514
515
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P, typing_extensions.Self]
|
515
516
|
|
516
|
-
class __spawn_spec(typing_extensions.Protocol[
|
517
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER, SUPERSELF]):
|
517
518
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
518
519
|
"""Calls the function with the given arguments, without waiting for the results.
|
519
520
|
|
@@ -534,7 +535,7 @@ class Function(
|
|
534
535
|
"""
|
535
536
|
...
|
536
537
|
|
537
|
-
spawn: __spawn_spec[modal._functions.
|
538
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P, typing_extensions.Self]
|
538
539
|
|
539
540
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
|
540
541
|
"""Return the inner Python object wrapped by this Modal Function."""
|
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
|
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
|