modal 1.1.1.dev1__tar.gz → 1.1.1.dev3__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.1.dev1 → modal-1.1.1.dev3}/PKG-INFO +1 -1
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/client.pyi +2 -2
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/functions.pyi +6 -6
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/sandbox.py +6 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/sandbox.pyi +8 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/api.proto +4 -1
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/api_pb2.py +579 -566
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/api_pb2.pyi +27 -2
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_version/__init__.py +1 -1
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/LICENSE +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/README.md +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/__main__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_clustered_functions.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_clustered_functions.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_container_entrypoint.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_functions.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_ipython.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_location.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_object.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_output.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_partial_function.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_pty.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_resolver.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_resources.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/asgi.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/execution_context.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/telemetry.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_serialization.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_traceback.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_tunnel.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_tunnel.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_type_manager.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/app_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/async_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/blob_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/deprecation.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/docker_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/function_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/git_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/hash_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/http_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/logger.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/mount_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/name_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/package_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/shell_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_utils/time_utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_vendor/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_vendor/tblib.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/_watcher.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/app.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/app.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/call_graph.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/_download.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/_traceback.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/app.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/cluster.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/config.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/container.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/dict.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/entry_point.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/environment.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/import_refs.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/launch.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/network_file_system.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/profile.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/programs/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/programs/vscode.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/queues.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/run.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/secret.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/token.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/utils.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cli/volume.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/client.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cls.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/cls.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/config.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/container_process.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/container_process.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/dict.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/dict.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/environments.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/environments.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/exception.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/experimental/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/experimental/flash.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/experimental/flash.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/experimental/ipython.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/file_io.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/file_io.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/file_pattern_matcher.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/functions.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/gpu.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/image.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/image.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/io_streams.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/io_streams.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/mount.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/mount.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/network_file_system.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/network_file_system.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/object.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/object.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/output.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/parallel_map.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/parallel_map.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/partial_function.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/partial_function.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/proxy.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/proxy.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/py.typed +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/queue.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/queue.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/2023.12.312.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/2023.12.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/2024.04.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/2024.10.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/2025.06.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/PREVIEW.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/README.md +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/requirements/base-images.json +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/retries.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/runner.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/runner.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/running_app.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/schedule.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/scheduler_placement.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/secret.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/secret.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/serving.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/serving.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/snapshot.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/snapshot.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/stream_type.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/token_flow.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/token_flow.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/volume.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal/volume.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal.egg-info/requires.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal.egg-info/top_level.txt +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_docs/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/__init__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/api_grpc.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/modal_options_grpc.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/options.proto +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/options_grpc.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/options_pb2.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/options_pb2.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_proto/py.typed +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/modal_version/__main__.py +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/pyproject.toml +0 -0
- {modal-1.1.1.dev1 → modal-1.1.1.dev3}/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.1.
|
36
|
+
version: str = "1.1.1.dev3",
|
37
37
|
):
|
38
38
|
"""mdmd:hidden
|
39
39
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -163,7 +163,7 @@ class Client:
|
|
163
163
|
server_url: str,
|
164
164
|
client_type: int,
|
165
165
|
credentials: typing.Optional[tuple[str, str]],
|
166
|
-
version: str = "1.1.1.
|
166
|
+
version: str = "1.1.1.dev3",
|
167
167
|
):
|
168
168
|
"""mdmd:hidden
|
169
169
|
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[
|
431
|
+
class __remote_spec(typing_extensions.Protocol[P_INNER, ReturnType_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.
|
440
|
+
remote: __remote_spec[modal._functions.P, modal._functions.ReturnType, 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[
|
467
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_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.
|
491
|
+
modal._functions.P, modal._functions.ReturnType, 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[
|
500
|
+
class __spawn_spec(typing_extensions.Protocol[P_INNER, ReturnType_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.
|
521
|
+
spawn: __spawn_spec[modal._functions.P, modal._functions.ReturnType, 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."""
|
@@ -110,6 +110,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
110
110
|
h2_ports: Sequence[int] = [],
|
111
111
|
unencrypted_ports: Sequence[int] = [],
|
112
112
|
proxy: Optional[_Proxy] = None,
|
113
|
+
experimental_options: Optional[dict[str, bool]] = None,
|
113
114
|
_experimental_scheduler_placement: Optional[SchedulerPlacement] = None,
|
114
115
|
enable_snapshot: bool = False,
|
115
116
|
verbose: bool = False,
|
@@ -215,6 +216,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
215
216
|
proxy_id=(proxy.object_id if proxy else None),
|
216
217
|
enable_snapshot=enable_snapshot,
|
217
218
|
verbose=verbose,
|
219
|
+
experimental_options=experimental_options,
|
218
220
|
)
|
219
221
|
|
220
222
|
create_req = api_pb2.SandboxCreateRequest(app_id=resolver.app_id, definition=definition)
|
@@ -261,6 +263,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
261
263
|
proxy: Optional[_Proxy] = None,
|
262
264
|
# Enable verbose logging for sandbox operations.
|
263
265
|
verbose: bool = False,
|
266
|
+
experimental_options: Optional[dict[str, bool]] = None,
|
264
267
|
# Enable memory snapshots.
|
265
268
|
_experimental_enable_snapshot: bool = False,
|
266
269
|
_experimental_scheduler_placement: Optional[
|
@@ -310,6 +313,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
310
313
|
h2_ports=h2_ports,
|
311
314
|
unencrypted_ports=unencrypted_ports,
|
312
315
|
proxy=proxy,
|
316
|
+
experimental_options=experimental_options,
|
313
317
|
_experimental_enable_snapshot=_experimental_enable_snapshot,
|
314
318
|
_experimental_scheduler_placement=_experimental_scheduler_placement,
|
315
319
|
client=client,
|
@@ -351,6 +355,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
351
355
|
unencrypted_ports: Sequence[int] = [],
|
352
356
|
# Reference to a Modal Proxy to use in front of this Sandbox.
|
353
357
|
proxy: Optional[_Proxy] = None,
|
358
|
+
experimental_options: Optional[dict[str, bool]] = None,
|
354
359
|
# Enable memory snapshots.
|
355
360
|
_experimental_enable_snapshot: bool = False,
|
356
361
|
_experimental_scheduler_placement: Optional[
|
@@ -388,6 +393,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
388
393
|
h2_ports=h2_ports,
|
389
394
|
unencrypted_ports=unencrypted_ports,
|
390
395
|
proxy=proxy,
|
396
|
+
experimental_options=experimental_options,
|
391
397
|
_experimental_scheduler_placement=_experimental_scheduler_placement,
|
392
398
|
enable_snapshot=_experimental_enable_snapshot,
|
393
399
|
verbose=verbose,
|
@@ -67,6 +67,7 @@ class _Sandbox(modal._object._Object):
|
|
67
67
|
h2_ports: collections.abc.Sequence[int] = [],
|
68
68
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
69
69
|
proxy: typing.Optional[modal.proxy._Proxy] = None,
|
70
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
70
71
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
71
72
|
enable_snapshot: bool = False,
|
72
73
|
verbose: bool = False,
|
@@ -100,6 +101,7 @@ class _Sandbox(modal._object._Object):
|
|
100
101
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
101
102
|
proxy: typing.Optional[modal.proxy._Proxy] = None,
|
102
103
|
verbose: bool = False,
|
104
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
103
105
|
_experimental_enable_snapshot: bool = False,
|
104
106
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
105
107
|
client: typing.Optional[modal.client._Client] = None,
|
@@ -145,6 +147,7 @@ class _Sandbox(modal._object._Object):
|
|
145
147
|
h2_ports: collections.abc.Sequence[int] = [],
|
146
148
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
147
149
|
proxy: typing.Optional[modal.proxy._Proxy] = None,
|
150
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
148
151
|
_experimental_enable_snapshot: bool = False,
|
149
152
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
150
153
|
client: typing.Optional[modal.client._Client] = None,
|
@@ -351,6 +354,7 @@ class Sandbox(modal.object.Object):
|
|
351
354
|
h2_ports: collections.abc.Sequence[int] = [],
|
352
355
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
353
356
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
357
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
354
358
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
355
359
|
enable_snapshot: bool = False,
|
356
360
|
verbose: bool = False,
|
@@ -388,6 +392,7 @@ class Sandbox(modal.object.Object):
|
|
388
392
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
389
393
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
390
394
|
verbose: bool = False,
|
395
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
391
396
|
_experimental_enable_snapshot: bool = False,
|
392
397
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
393
398
|
client: typing.Optional[modal.client.Client] = None,
|
@@ -436,6 +441,7 @@ class Sandbox(modal.object.Object):
|
|
436
441
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
437
442
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
438
443
|
verbose: bool = False,
|
444
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
439
445
|
_experimental_enable_snapshot: bool = False,
|
440
446
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
441
447
|
client: typing.Optional[modal.client.Client] = None,
|
@@ -487,6 +493,7 @@ class Sandbox(modal.object.Object):
|
|
487
493
|
h2_ports: collections.abc.Sequence[int] = [],
|
488
494
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
489
495
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
496
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
490
497
|
_experimental_enable_snapshot: bool = False,
|
491
498
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
492
499
|
client: typing.Optional[modal.client.Client] = None,
|
@@ -521,6 +528,7 @@ class Sandbox(modal.object.Object):
|
|
521
528
|
h2_ports: collections.abc.Sequence[int] = [],
|
522
529
|
unencrypted_ports: collections.abc.Sequence[int] = [],
|
523
530
|
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
531
|
+
experimental_options: typing.Optional[dict[str, bool]] = None,
|
524
532
|
_experimental_enable_snapshot: bool = False,
|
525
533
|
_experimental_scheduler_placement: typing.Optional[modal.scheduler_placement.SchedulerPlacement] = None,
|
526
534
|
client: typing.Optional[modal.client.Client] = None,
|
@@ -1487,7 +1487,7 @@ message FunctionCallCancelRequest {
|
|
1487
1487
|
message FunctionCallGetDataRequest {
|
1488
1488
|
string function_call_id = 1;
|
1489
1489
|
uint64 last_index = 2;
|
1490
|
-
|
1490
|
+
optional string attempt_token = 3;
|
1491
1491
|
}
|
1492
1492
|
|
1493
1493
|
message FunctionCallInfo {
|
@@ -2520,6 +2520,9 @@ message Sandbox {
|
|
2520
2520
|
|
2521
2521
|
// If set, the sandbox will be created with a name.
|
2522
2522
|
optional string name = 30;
|
2523
|
+
|
2524
|
+
// Experimental options
|
2525
|
+
map<string, bool> experimental_options = 31;
|
2523
2526
|
}
|
2524
2527
|
|
2525
2528
|
message SandboxCreateRequest {
|