modal 1.4.4.dev8__tar.gz → 1.4.4.dev9__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.4.4.dev8 → modal-1.4.4.dev9}/PKG-INFO +1 -1
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/client.pyi +2 -2
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/sandbox.py +9 -5
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/sandbox.pyi +3 -3
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/api_pb2.py +358 -358
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/api_pb2.pyi +7 -1
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/task_command_router_pb2.py +80 -80
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/task_command_router_pb2.pyi +4 -1
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_version/__init__.py +1 -1
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/LICENSE +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/README.md +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/__main__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_billing.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_clustered_functions.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_clustered_functions.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_container_entrypoint.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_environments.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_function_variants.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_functions.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_grpc_client.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_ipython.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_load_context.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_location.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_logs.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_object.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_output/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_output/manager.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_output/pty.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_output/rich.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_output/status.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_partial_function.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_resolver.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_resources.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/asgi.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/execution_context.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/telemetry.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_serialization.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_server.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_traceback.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_tunnel.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_tunnel.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_type_manager.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/app_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/async_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/blob_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/browser_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/deprecation.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/docker_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/function_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/git_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/hash_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/http_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/logger.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/mount_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/name_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/package_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/shell_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_utils/time_utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_vendor/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_vendor/tblib.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_vendor/version.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/_watcher.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/app.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/app.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/billing.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/2023.12.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/2024.04.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/2024.10.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/2025.06.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/README.md +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/builder/base-images.json +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/call_graph.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/_download.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/_help.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/_traceback.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/app.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/billing.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/bootstrap.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/changelog.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/cluster.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/config.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/container.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/dashboard.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/dict.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/entry_point.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/environment.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/import_refs.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/launch.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/logo.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/network_file_system.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/profile.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/programs/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/programs/vscode.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/queues.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/run.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/secret.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/selector.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/shell.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/token.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/utils.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cli/volume.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/client.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cls.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/cls.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/config.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/container_process.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/container_process.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/dict.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/dict.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/environments.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/environments.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/exception.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/experimental/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/experimental/flash.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/experimental/flash.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/experimental/ipython.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/file_io.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/file_io.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/file_pattern_matcher.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/functions.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/functions.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/image.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/image.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/io_streams.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/io_streams.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/mount.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/mount.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/network_file_system.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/network_file_system.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/object.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/object.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/output.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/parallel_map.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/parallel_map.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/partial_function.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/partial_function.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/proxy.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/proxy.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/py.typed +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/queue.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/queue.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/retries.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/runner.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/runner.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/running_app.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/sandbox_fs.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/sandbox_fs.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/schedule.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/scheduler_placement.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/secret.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/secret.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/server.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/server.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/serving.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/serving.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/snapshot.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/snapshot.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/stream_type.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/token_flow.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/token_flow.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/volume.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal/volume.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal.egg-info/requires.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal.egg-info/top_level.txt +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/__init__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/api_grpc.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/py.typed +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/modal_version/__main__.py +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/pyproject.toml +0 -0
- {modal-1.4.4.dev8 → modal-1.4.4.dev9}/setup.cfg +0 -0
|
@@ -35,7 +35,7 @@ class _Client:
|
|
|
35
35
|
server_url: str,
|
|
36
36
|
client_type: int,
|
|
37
37
|
credentials: typing.Optional[tuple[str, str]],
|
|
38
|
-
version: str = "1.4.4.
|
|
38
|
+
version: str = "1.4.4.dev9",
|
|
39
39
|
):
|
|
40
40
|
"""mdmd:hidden
|
|
41
41
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -175,7 +175,7 @@ class Client:
|
|
|
175
175
|
server_url: str,
|
|
176
176
|
client_type: int,
|
|
177
177
|
credentials: typing.Optional[tuple[str, str]],
|
|
178
|
-
version: str = "1.4.4.
|
|
178
|
+
version: str = "1.4.4.dev9",
|
|
179
179
|
):
|
|
180
180
|
"""mdmd:hidden
|
|
181
181
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -695,7 +695,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
695
695
|
cloud: Optional[str] = None,
|
|
696
696
|
region: Optional[Union[str, Sequence[str]]] = None,
|
|
697
697
|
block_network: bool = False,
|
|
698
|
-
|
|
698
|
+
outbound_cidr_allowlist: Optional[Sequence[str]] = None,
|
|
699
699
|
inbound_cidr_allowlist: Optional[Sequence[str]] = None,
|
|
700
700
|
volumes: dict[Union[str, os.PathLike], Union[_Volume, _CloudBucketMount]] = {},
|
|
701
701
|
pty: bool = False,
|
|
@@ -773,21 +773,21 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
773
773
|
)
|
|
774
774
|
|
|
775
775
|
if block_network:
|
|
776
|
-
if
|
|
777
|
-
raise InvalidError("`
|
|
776
|
+
if outbound_cidr_allowlist is not None:
|
|
777
|
+
raise InvalidError("`outbound_cidr_allowlist` cannot be used when `block_network` is enabled")
|
|
778
778
|
if inbound_cidr_allowlist is not None:
|
|
779
779
|
raise InvalidError("`inbound_cidr_allowlist` cannot be used when `block_network` is enabled")
|
|
780
780
|
network_access = api_pb2.NetworkAccess(
|
|
781
781
|
network_access_type=api_pb2.NetworkAccess.NetworkAccessType.BLOCKED,
|
|
782
782
|
)
|
|
783
|
-
elif
|
|
783
|
+
elif outbound_cidr_allowlist is None:
|
|
784
784
|
network_access = api_pb2.NetworkAccess(
|
|
785
785
|
network_access_type=api_pb2.NetworkAccess.NetworkAccessType.OPEN,
|
|
786
786
|
)
|
|
787
787
|
else:
|
|
788
788
|
network_access = api_pb2.NetworkAccess(
|
|
789
789
|
network_access_type=api_pb2.NetworkAccess.NetworkAccessType.ALLOWLIST,
|
|
790
|
-
allowed_cidrs=
|
|
790
|
+
allowed_cidrs=outbound_cidr_allowlist,
|
|
791
791
|
)
|
|
792
792
|
|
|
793
793
|
async def _load(
|
|
@@ -1661,6 +1661,10 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
1661
1661
|
sandbox_name_override=name,
|
|
1662
1662
|
sandbox_name_override_type=api_pb2.SandboxRestoreRequest.SANDBOX_NAME_OVERRIDE_TYPE_STRING,
|
|
1663
1663
|
)
|
|
1664
|
+
# Pin the restored Sandbox to a specific worker when MODAL_WORKER_ID is
|
|
1665
|
+
# set.
|
|
1666
|
+
if worker_id := config.get("worker_id"):
|
|
1667
|
+
restore_req.worker_id = worker_id
|
|
1664
1668
|
restore_resp: api_pb2.SandboxRestoreResponse = await client.stub.SandboxRestore(restore_req)
|
|
1665
1669
|
|
|
1666
1670
|
sandbox = await _Sandbox.from_id(restore_resp.sandbox_id, client)
|
|
@@ -323,7 +323,7 @@ class _Sandbox(modal._object._Object):
|
|
|
323
323
|
cloud: typing.Optional[str] = None,
|
|
324
324
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
325
325
|
block_network: bool = False,
|
|
326
|
-
|
|
326
|
+
outbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
327
327
|
inbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
328
328
|
volumes: dict[
|
|
329
329
|
typing.Union[str, os.PathLike],
|
|
@@ -1272,7 +1272,7 @@ class Sandbox(modal.object.Object):
|
|
|
1272
1272
|
cloud: typing.Optional[str] = None,
|
|
1273
1273
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
1274
1274
|
block_network: bool = False,
|
|
1275
|
-
|
|
1275
|
+
outbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1276
1276
|
inbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1277
1277
|
volumes: dict[
|
|
1278
1278
|
typing.Union[str, os.PathLike],
|
|
@@ -1320,7 +1320,7 @@ class Sandbox(modal.object.Object):
|
|
|
1320
1320
|
cloud: typing.Optional[str] = None,
|
|
1321
1321
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
1322
1322
|
block_network: bool = False,
|
|
1323
|
-
|
|
1323
|
+
outbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1324
1324
|
inbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1325
1325
|
volumes: dict[
|
|
1326
1326
|
typing.Union[str, os.PathLike],
|