modal 1.1.1.dev9__tar.gz → 1.1.1.dev10__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.
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/PKG-INFO +1 -1
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/client.pyi +2 -2
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/exception.py +4 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/sandbox.py +17 -7
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/sandbox.pyi +6 -6
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_version/__init__.py +1 -1
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/LICENSE +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/README.md +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/__main__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_clustered_functions.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_clustered_functions.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_container_entrypoint.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_functions.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_ipython.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_location.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_object.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_output.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_partial_function.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_pty.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_resolver.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_resources.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/asgi.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/execution_context.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/telemetry.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_serialization.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_traceback.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_tunnel.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_tunnel.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_type_manager.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/app_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/async_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/blob_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/deprecation.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/docker_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/function_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/git_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/hash_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/http_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/logger.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/mount_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/name_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/package_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/shell_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_utils/time_utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_vendor/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_vendor/tblib.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/_watcher.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/app.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/app.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/call_graph.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/_download.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/_traceback.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/app.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/cluster.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/config.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/container.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/dict.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/entry_point.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/environment.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/import_refs.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/launch.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/network_file_system.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/profile.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/programs/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/programs/vscode.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/queues.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/run.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/secret.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/token.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/utils.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cli/volume.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/client.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cls.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/cls.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/config.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/container_process.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/container_process.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/dict.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/dict.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/environments.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/environments.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/experimental/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/experimental/flash.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/experimental/flash.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/experimental/ipython.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/file_io.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/file_io.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/file_pattern_matcher.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/functions.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/functions.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/gpu.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/image.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/image.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/io_streams.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/io_streams.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/mount.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/mount.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/network_file_system.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/network_file_system.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/object.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/object.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/output.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/parallel_map.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/parallel_map.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/partial_function.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/partial_function.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/proxy.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/proxy.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/py.typed +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/queue.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/queue.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/2023.12.312.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/2023.12.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/2024.04.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/2024.10.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/2025.06.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/PREVIEW.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/README.md +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/requirements/base-images.json +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/retries.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/runner.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/runner.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/running_app.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/schedule.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/scheduler_placement.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/secret.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/secret.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/serving.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/serving.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/snapshot.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/snapshot.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/stream_type.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/token_flow.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/token_flow.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/volume.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal/volume.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal.egg-info/requires.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal.egg-info/top_level.txt +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_docs/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/__init__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/api.proto +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/api_grpc.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/api_pb2.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/modal_options_grpc.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/options.proto +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/options_grpc.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/options_pb2.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/options_pb2.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_proto/py.typed +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/modal_version/__main__.py +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/pyproject.toml +0 -0
- {modal-1.1.1.dev9 → modal-1.1.1.dev10}/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.dev10",
|
|
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.dev10",
|
|
167
167
|
):
|
|
168
168
|
"""mdmd:hidden
|
|
169
169
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -27,7 +27,7 @@ from ._utils.mount_utils import validate_network_file_systems, validate_volumes
|
|
|
27
27
|
from .client import _Client
|
|
28
28
|
from .config import config
|
|
29
29
|
from .container_process import _ContainerProcess
|
|
30
|
-
from .exception import ExecutionError, InvalidError, SandboxTerminatedError, SandboxTimeoutError
|
|
30
|
+
from .exception import AlreadyExistsError, ExecutionError, InvalidError, SandboxTerminatedError, SandboxTimeoutError
|
|
31
31
|
from .file_io import FileWatchEvent, FileWatchEventType, _FileIO
|
|
32
32
|
from .gpu import GPU_T
|
|
33
33
|
from .image import _Image
|
|
@@ -236,7 +236,12 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
236
236
|
)
|
|
237
237
|
|
|
238
238
|
create_req = api_pb2.SandboxCreateRequest(app_id=resolver.app_id, definition=definition)
|
|
239
|
-
|
|
239
|
+
try:
|
|
240
|
+
create_resp = await retry_transient_errors(resolver.client.stub.SandboxCreate, create_req)
|
|
241
|
+
except GRPCError as exc:
|
|
242
|
+
if exc.status == Status.ALREADY_EXISTS:
|
|
243
|
+
raise AlreadyExistsError(exc.message)
|
|
244
|
+
raise exc
|
|
240
245
|
|
|
241
246
|
sandbox_id = create_resp.sandbox_id
|
|
242
247
|
self._hydrate(sandbox_id, resolver.client, None)
|
|
@@ -475,8 +480,8 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
475
480
|
) -> "_Sandbox":
|
|
476
481
|
"""Get a running Sandbox by name from the given app.
|
|
477
482
|
|
|
478
|
-
Raises
|
|
479
|
-
is the `name` argument passed to `Sandbox.create`.
|
|
483
|
+
Raises a modal.exception.NotFoundError if no running sandbox is found with the given name.
|
|
484
|
+
A Sandbox's name is the `name` argument passed to `Sandbox.create`.
|
|
480
485
|
"""
|
|
481
486
|
if client is None:
|
|
482
487
|
client = await _Client.from_env()
|
|
@@ -786,10 +791,15 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
786
791
|
sandbox_name_override=name,
|
|
787
792
|
sandbox_name_override_type=api_pb2.SandboxRestoreRequest.SANDBOX_NAME_OVERRIDE_TYPE_STRING,
|
|
788
793
|
)
|
|
794
|
+
try:
|
|
795
|
+
restore_resp: api_pb2.SandboxRestoreResponse = await retry_transient_errors(
|
|
796
|
+
client.stub.SandboxRestore, restore_req
|
|
797
|
+
)
|
|
798
|
+
except GRPCError as exc:
|
|
799
|
+
if exc.status == Status.ALREADY_EXISTS:
|
|
800
|
+
raise AlreadyExistsError(exc.message)
|
|
801
|
+
raise exc
|
|
789
802
|
|
|
790
|
-
restore_resp: api_pb2.SandboxRestoreResponse = await retry_transient_errors(
|
|
791
|
-
client.stub.SandboxRestore, restore_req
|
|
792
|
-
)
|
|
793
803
|
sandbox = await _Sandbox.from_id(restore_resp.sandbox_id, client)
|
|
794
804
|
|
|
795
805
|
task_id_req = api_pb2.SandboxGetTaskIdRequest(
|
|
@@ -178,8 +178,8 @@ class _Sandbox(modal._object._Object):
|
|
|
178
178
|
) -> _Sandbox:
|
|
179
179
|
"""Get a running Sandbox by name from the given app.
|
|
180
180
|
|
|
181
|
-
Raises
|
|
182
|
-
is the `name` argument passed to `Sandbox.create`.
|
|
181
|
+
Raises a modal.exception.NotFoundError if no running sandbox is found with the given name.
|
|
182
|
+
A Sandbox's name is the `name` argument passed to `Sandbox.create`.
|
|
183
183
|
"""
|
|
184
184
|
...
|
|
185
185
|
|
|
@@ -588,8 +588,8 @@ class Sandbox(modal.object.Object):
|
|
|
588
588
|
) -> Sandbox:
|
|
589
589
|
"""Get a running Sandbox by name from the given app.
|
|
590
590
|
|
|
591
|
-
Raises
|
|
592
|
-
is the `name` argument passed to `Sandbox.create`.
|
|
591
|
+
Raises a modal.exception.NotFoundError if no running sandbox is found with the given name.
|
|
592
|
+
A Sandbox's name is the `name` argument passed to `Sandbox.create`.
|
|
593
593
|
"""
|
|
594
594
|
...
|
|
595
595
|
|
|
@@ -604,8 +604,8 @@ class Sandbox(modal.object.Object):
|
|
|
604
604
|
) -> Sandbox:
|
|
605
605
|
"""Get a running Sandbox by name from the given app.
|
|
606
606
|
|
|
607
|
-
Raises
|
|
608
|
-
is the `name` argument passed to `Sandbox.create`.
|
|
607
|
+
Raises a modal.exception.NotFoundError if no running sandbox is found with the given name.
|
|
608
|
+
A Sandbox's name is the `name` argument passed to `Sandbox.create`.
|
|
609
609
|
"""
|
|
610
610
|
...
|
|
611
611
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|