modal 1.1.2.dev34__tar.gz → 1.1.2.dev36__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.2.dev34 → modal-1.1.2.dev36}/PKG-INFO +1 -1
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/client.pyi +2 -2
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/file_io.py +1 -1
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/file_io.pyi +2 -2
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/mount.py +20 -13
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/mount.pyi +16 -3
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/sandbox.py +3 -2
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/sandbox.pyi +9 -6
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_version/__init__.py +1 -1
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/LICENSE +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/README.md +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/__main__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_clustered_functions.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_clustered_functions.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_container_entrypoint.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_functions.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_ipython.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_location.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_object.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_output.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_partial_function.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_pty.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_resolver.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_resources.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/asgi.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/execution_context.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/telemetry.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_serialization.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_traceback.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_tunnel.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_tunnel.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_type_manager.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/app_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/async_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/blob_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/deprecation.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/docker_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/function_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/git_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/hash_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/http_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/logger.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/mount_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/name_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/package_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/shell_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_utils/time_utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_vendor/tblib.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/_watcher.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/app.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/app.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2023.12.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2024.04.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2024.10.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/2025.06.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/README.md +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/builder/base-images.json +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/call_graph.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/_download.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/_traceback.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/app.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/cluster.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/config.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/container.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/dict.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/entry_point.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/environment.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/import_refs.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/launch.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/network_file_system.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/profile.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/launch_instance_ssh.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/run_marimo.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/programs/vscode.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/queues.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/run.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/secret.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/token.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/utils.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cli/volume.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/client.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cls.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/cls.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/config.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/container_process.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/container_process.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/dict.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/dict.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/environments.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/environments.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/exception.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/flash.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/flash.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/experimental/ipython.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/file_pattern_matcher.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/functions.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/functions.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/gpu.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/image.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/image.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/io_streams.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/io_streams.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/network_file_system.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/network_file_system.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/object.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/object.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/output.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/parallel_map.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/parallel_map.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/partial_function.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/partial_function.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/proxy.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/proxy.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/py.typed +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/queue.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/queue.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/retries.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/runner.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/runner.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/running_app.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/schedule.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/scheduler_placement.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/secret.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/secret.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/serving.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/serving.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/snapshot.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/snapshot.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/stream_type.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/token_flow.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/token_flow.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/volume.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal/volume.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/requires.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal.egg-info/top_level.txt +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/__init__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api.proto +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_grpc.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/modal_options_grpc.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options.proto +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_grpc.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2_grpc.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/options_pb2_grpc.pyi +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_proto/py.typed +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/modal_version/__main__.py +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/pyproject.toml +0 -0
- {modal-1.1.2.dev34 → modal-1.1.2.dev36}/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.2.
|
36
|
+
version: str = "1.1.2.dev36",
|
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.2.
|
167
|
+
version: str = "1.1.2.dev36",
|
168
168
|
):
|
169
169
|
"""mdmd:hidden
|
170
170
|
The Modal client object is not intended to be instantiated directly by users.
|
@@ -62,7 +62,7 @@ class _FileIO(typing.Generic[T]):
|
|
62
62
|
|
63
63
|
**Usage**
|
64
64
|
|
65
|
-
```python
|
65
|
+
```python notest
|
66
66
|
import modal
|
67
67
|
|
68
68
|
app = modal.App.lookup("my-app", create_if_missing=True)
|
@@ -232,7 +232,7 @@ class FileIO(typing.Generic[T]):
|
|
232
232
|
|
233
233
|
**Usage**
|
234
234
|
|
235
|
-
```python
|
235
|
+
```python notest
|
236
236
|
import modal
|
237
237
|
|
238
238
|
app = modal.App.lookup("my-app", create_if_missing=True)
|
@@ -13,6 +13,7 @@ from pathlib import Path, PurePosixPath
|
|
13
13
|
from typing import Callable, Optional, Sequence, Union
|
14
14
|
|
15
15
|
from google.protobuf.message import Message
|
16
|
+
from grpclib import GRPCError
|
16
17
|
|
17
18
|
import modal.exception
|
18
19
|
import modal.file_pattern_matcher
|
@@ -929,19 +930,23 @@ async def _create_single_client_dependency_mount(
|
|
929
930
|
remote_path=REMOTE_SITECUSTOMIZE_PATH,
|
930
931
|
)
|
931
932
|
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
933
|
+
try:
|
934
|
+
await python_mount._deploy.aio(
|
935
|
+
mount_name,
|
936
|
+
api_pb2.DEPLOYMENT_NAMESPACE_GLOBAL,
|
937
|
+
environment_name=profile_environment,
|
938
|
+
allow_overwrite=allow_overwrite,
|
939
|
+
client=client,
|
940
|
+
)
|
941
|
+
print(f"✅ Deployed mount {mount_name} to global namespace.")
|
942
|
+
except GRPCError as e:
|
943
|
+
print(f"⚠️ Mount creation failed with {e.status}: {e.message}")
|
940
944
|
|
941
945
|
|
942
946
|
async def _create_client_dependency_mounts(
|
943
947
|
client=None,
|
944
948
|
python_versions: list[str] = list(PYTHON_STANDALONE_VERSIONS),
|
949
|
+
builder_versions: list[str] = ["2025.06"], # Reenable "PREVIEW" during testing
|
945
950
|
check_if_exists=True,
|
946
951
|
):
|
947
952
|
arch = "x86_64"
|
@@ -950,8 +955,8 @@ async def _create_client_dependency_mounts(
|
|
950
955
|
("musllinux_1_2", f"{arch}-unknown-linux-musl"), # musl >= 1.2
|
951
956
|
]
|
952
957
|
coros = []
|
953
|
-
for
|
954
|
-
for
|
958
|
+
for python_version in python_versions:
|
959
|
+
for builder_version in builder_versions:
|
955
960
|
for platform, uv_python_platform in platform_tags:
|
956
961
|
coros.append(
|
957
962
|
_create_single_client_dependency_mount(
|
@@ -961,9 +966,11 @@ async def _create_client_dependency_mounts(
|
|
961
966
|
arch,
|
962
967
|
platform,
|
963
968
|
uv_python_platform,
|
964
|
-
#
|
965
|
-
#
|
966
|
-
#
|
969
|
+
# This check_if_exists / allow_overwrite parameterization is very awkward
|
970
|
+
# Also it doesn't provide a hook for overwriting a non-preview version, which
|
971
|
+
# in theory we may need to do at some point (hopefully not, but...)
|
972
|
+
check_if_exists=check_if_exists and builder_version != "PREVIEW",
|
973
|
+
allow_overwrite=builder_version == "PREVIEW",
|
967
974
|
)
|
968
975
|
)
|
969
976
|
await TaskContext.gather(*coros)
|
@@ -570,15 +570,28 @@ async def _create_single_client_dependency_mount(
|
|
570
570
|
allow_overwrite: bool = False,
|
571
571
|
): ...
|
572
572
|
async def _create_client_dependency_mounts(
|
573
|
-
client=None,
|
573
|
+
client=None,
|
574
|
+
python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"],
|
575
|
+
builder_versions: list[str] = ["2025.06"],
|
576
|
+
check_if_exists=True,
|
574
577
|
): ...
|
575
578
|
|
576
579
|
class __create_client_dependency_mounts_spec(typing_extensions.Protocol):
|
577
580
|
def __call__(
|
578
|
-
self,
|
581
|
+
self,
|
582
|
+
/,
|
583
|
+
client=None,
|
584
|
+
python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"],
|
585
|
+
builder_versions: list[str] = ["2025.06"],
|
586
|
+
check_if_exists=True,
|
579
587
|
): ...
|
580
588
|
async def aio(
|
581
|
-
self,
|
589
|
+
self,
|
590
|
+
/,
|
591
|
+
client=None,
|
592
|
+
python_versions: list[str] = ["3.9", "3.10", "3.11", "3.12", "3.13"],
|
593
|
+
builder_versions: list[str] = ["2025.06"],
|
594
|
+
check_if_exists=True,
|
582
595
|
): ...
|
583
596
|
|
584
597
|
create_client_dependency_mounts: __create_client_dependency_mounts_spec
|
@@ -296,8 +296,9 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
296
296
|
environment_name: Optional[str] = None, # *DEPRECATED* Optionally override the default environment
|
297
297
|
) -> "_Sandbox":
|
298
298
|
"""
|
299
|
-
Create a new Sandbox to run untrusted, arbitrary code.
|
300
|
-
|
299
|
+
Create a new Sandbox to run untrusted, arbitrary code.
|
300
|
+
|
301
|
+
The Sandbox's corresponding container will be created asynchronously.
|
301
302
|
|
302
303
|
**Usage**
|
303
304
|
|
@@ -120,8 +120,9 @@ class _Sandbox(modal._object._Object):
|
|
120
120
|
client: typing.Optional[modal.client._Client] = None,
|
121
121
|
environment_name: typing.Optional[str] = None,
|
122
122
|
) -> _Sandbox:
|
123
|
-
"""Create a new Sandbox to run untrusted, arbitrary code.
|
124
|
-
|
123
|
+
"""Create a new Sandbox to run untrusted, arbitrary code.
|
124
|
+
|
125
|
+
The Sandbox's corresponding container will be created asynchronously.
|
125
126
|
|
126
127
|
**Usage**
|
127
128
|
|
@@ -432,8 +433,9 @@ class Sandbox(modal.object.Object):
|
|
432
433
|
client: typing.Optional[modal.client.Client] = None,
|
433
434
|
environment_name: typing.Optional[str] = None,
|
434
435
|
) -> Sandbox:
|
435
|
-
"""Create a new Sandbox to run untrusted, arbitrary code.
|
436
|
-
|
436
|
+
"""Create a new Sandbox to run untrusted, arbitrary code.
|
437
|
+
|
438
|
+
The Sandbox's corresponding container will be created asynchronously.
|
437
439
|
|
438
440
|
**Usage**
|
439
441
|
|
@@ -482,8 +484,9 @@ class Sandbox(modal.object.Object):
|
|
482
484
|
client: typing.Optional[modal.client.Client] = None,
|
483
485
|
environment_name: typing.Optional[str] = None,
|
484
486
|
) -> Sandbox:
|
485
|
-
"""Create a new Sandbox to run untrusted, arbitrary code.
|
486
|
-
|
487
|
+
"""Create a new Sandbox to run untrusted, arbitrary code.
|
488
|
+
|
489
|
+
The Sandbox's corresponding container will be created asynchronously.
|
487
490
|
|
488
491
|
**Usage**
|
489
492
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|