modal 1.4.3.dev7__tar.gz → 1.4.3.dev8__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.3.dev7 → modal-1.4.3.dev8}/PKG-INFO +1 -1
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/cluster.py +25 -7
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/container.py +22 -7
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/client.pyi +2 -2
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/functions.pyi +6 -6
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/sandbox.py +2 -2
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/sandbox.pyi +3 -3
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/task_command_router_grpc.py +32 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/task_command_router_pb2.py +109 -63
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/task_command_router_pb2.pyi +81 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/task_command_router_pb2_grpc.py +66 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/task_command_router_pb2_grpc.pyi +20 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_version/__init__.py +1 -1
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/LICENSE +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/README.md +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/__main__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_billing.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_clustered_functions.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_clustered_functions.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_container_entrypoint.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_functions.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_grpc_client.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_ipython.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_load_context.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_location.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_logs.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_object.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_output/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_output/manager.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_output/pty.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_output/rich.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_output/status.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_partial_function.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_resolver.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_resources.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/asgi.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/execution_context.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/telemetry.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_serialization.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_server.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_traceback.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_tunnel.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_tunnel.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_type_manager.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/app_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/async_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/blob_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/browser_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/deprecation.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/docker_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/function_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/git_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/hash_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/http_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/logger.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/mount_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/name_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/package_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/shell_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_utils/time_utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_vendor/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_vendor/tblib.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_vendor/version.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/_watcher.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/app.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/app.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/billing.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/2023.12.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/2024.04.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/2024.10.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/2025.06.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/README.md +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/builder/base-images.json +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/call_graph.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/_download.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/_help.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/_traceback.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/app.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/billing.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/bootstrap.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/changelog.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/config.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/dashboard.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/dict.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/entry_point.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/environment.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/import_refs.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/launch.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/logo.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/network_file_system.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/profile.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/programs/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/programs/vscode.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/queues.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/run.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/secret.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/selector.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/shell.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/token.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/utils.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cli/volume.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/client.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cls.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/cls.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/config.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/container_process.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/container_process.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/dict.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/dict.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/environments.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/environments.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/exception.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/experimental/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/experimental/flash.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/experimental/flash.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/experimental/ipython.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/file_io.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/file_io.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/file_pattern_matcher.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/functions.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/image.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/image.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/io_streams.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/io_streams.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/mount.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/mount.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/network_file_system.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/network_file_system.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/object.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/object.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/output.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/parallel_map.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/parallel_map.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/partial_function.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/partial_function.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/proxy.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/proxy.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/py.typed +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/queue.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/queue.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/retries.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/runner.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/runner.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/running_app.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/sandbox_fs.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/sandbox_fs.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/schedule.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/scheduler_placement.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/secret.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/secret.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/server.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/server.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/serving.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/serving.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/snapshot.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/snapshot.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/stream_type.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/token_flow.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/token_flow.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/volume.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal/volume.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal.egg-info/requires.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal.egg-info/top_level.txt +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/__init__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/api_grpc.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/api_pb2.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_proto/py.typed +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/modal_version/__main__.py +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/pyproject.toml +0 -0
- {modal-1.4.3.dev7 → modal-1.4.3.dev8}/setup.cfg +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Copyright Modal Labs 2022
|
|
2
|
+
import uuid
|
|
2
3
|
from typing import Optional, Union
|
|
3
4
|
|
|
4
5
|
import click
|
|
@@ -8,15 +9,17 @@ from rich.text import Text
|
|
|
8
9
|
from modal._object import _get_environment_name
|
|
9
10
|
from modal._output.pty import get_pty_info
|
|
10
11
|
from modal._utils.async_utils import synchronizer
|
|
12
|
+
from modal._utils.task_command_router_client import TaskCommandRouterClient
|
|
11
13
|
from modal._utils.time_utils import timestamp_to_localized_str
|
|
12
14
|
from modal.cli.utils import display_table, env_option, is_tty
|
|
13
15
|
from modal.client import _Client
|
|
14
16
|
from modal.config import config
|
|
15
17
|
from modal.container_process import _ContainerProcess
|
|
16
18
|
from modal.environments import ensure_env
|
|
19
|
+
from modal.exception import InvalidError
|
|
17
20
|
from modal.output import OutputManager
|
|
18
21
|
from modal.stream_type import StreamType
|
|
19
|
-
from modal_proto import api_pb2
|
|
22
|
+
from modal_proto import api_pb2, task_command_router_pb2 as sr_pb2
|
|
20
23
|
|
|
21
24
|
from ._help import ModalGroup
|
|
22
25
|
|
|
@@ -75,17 +78,32 @@ async def shell(cluster_id: str, rank: int = 0):
|
|
|
75
78
|
)
|
|
76
79
|
|
|
77
80
|
pty = is_tty()
|
|
78
|
-
|
|
81
|
+
|
|
82
|
+
command_router_client = await TaskCommandRouterClient.try_init(client, task_id)
|
|
83
|
+
if command_router_client is None:
|
|
84
|
+
raise InvalidError(f"Command router access is not available for container {task_id}")
|
|
85
|
+
|
|
86
|
+
process_id = str(uuid.uuid4())
|
|
87
|
+
|
|
88
|
+
start_req = sr_pb2.TaskExecStartRequest(
|
|
79
89
|
task_id=task_id,
|
|
80
|
-
|
|
90
|
+
exec_id=process_id,
|
|
91
|
+
command_args=["/bin/bash"],
|
|
92
|
+
stdout_config=sr_pb2.TaskExecStdoutConfig.TASK_EXEC_STDOUT_CONFIG_PIPE,
|
|
93
|
+
stderr_config=sr_pb2.TaskExecStderrConfig.TASK_EXEC_STDERR_CONFIG_PIPE,
|
|
81
94
|
pty_info=get_pty_info(shell=True) if pty else None,
|
|
82
95
|
runtime_debug=config.get("function_runtime_debug"),
|
|
83
96
|
)
|
|
84
|
-
|
|
97
|
+
await command_router_client.exec_start(start_req)
|
|
98
|
+
|
|
85
99
|
if pty:
|
|
86
|
-
await _ContainerProcess(
|
|
100
|
+
await _ContainerProcess(process_id, task_id, client, command_router_client=command_router_client).attach()
|
|
87
101
|
else:
|
|
88
|
-
# TODO: redirect stderr to its own stream?
|
|
89
102
|
await _ContainerProcess(
|
|
90
|
-
|
|
103
|
+
process_id,
|
|
104
|
+
task_id,
|
|
105
|
+
client,
|
|
106
|
+
command_router_client=command_router_client,
|
|
107
|
+
stdout=StreamType.STDOUT,
|
|
108
|
+
stderr=StreamType.STDOUT,
|
|
91
109
|
).wait()
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# Copyright Modal Labs 2022
|
|
2
|
+
import uuid
|
|
2
3
|
import warnings
|
|
3
4
|
from datetime import datetime, timezone
|
|
4
5
|
from typing import Optional, Union
|
|
@@ -12,6 +13,7 @@ from modal._logs import _FETCH_LIMIT, _MAX_FETCH_RANGE, LogsFilters
|
|
|
12
13
|
from modal._object import _get_environment_name
|
|
13
14
|
from modal._output.pty import get_pty_info
|
|
14
15
|
from modal._utils.async_utils import synchronizer
|
|
16
|
+
from modal._utils.task_command_router_client import TaskCommandRouterClient
|
|
15
17
|
from modal._utils.time_utils import timestamp_to_localized_str
|
|
16
18
|
from modal.cli.app import _DEFAULT_LOGS_TAIL, _SOURCE_OPTIONS, _parse_time_arg
|
|
17
19
|
from modal.cli.utils import (
|
|
@@ -30,7 +32,7 @@ from modal.container_process import _ContainerProcess
|
|
|
30
32
|
from modal.environments import ensure_env
|
|
31
33
|
from modal.exception import InvalidError
|
|
32
34
|
from modal.stream_type import StreamType
|
|
33
|
-
from modal_proto import api_pb2
|
|
35
|
+
from modal_proto import api_pb2, task_command_router_pb2 as sr_pb2
|
|
34
36
|
|
|
35
37
|
from ._help import ModalGroup
|
|
36
38
|
|
|
@@ -276,20 +278,33 @@ async def _exec_impl(
|
|
|
276
278
|
|
|
277
279
|
client = await _Client.from_env()
|
|
278
280
|
|
|
279
|
-
|
|
281
|
+
command_router_client = await TaskCommandRouterClient.try_init(client, container_id)
|
|
282
|
+
if command_router_client is None:
|
|
283
|
+
raise InvalidError(f"Command router access is not available for container {container_id}")
|
|
284
|
+
|
|
285
|
+
process_id = str(uuid.uuid4())
|
|
286
|
+
|
|
287
|
+
start_req = sr_pb2.TaskExecStartRequest(
|
|
280
288
|
task_id=container_id,
|
|
281
|
-
|
|
289
|
+
exec_id=process_id,
|
|
290
|
+
command_args=command,
|
|
291
|
+
stdout_config=sr_pb2.TaskExecStdoutConfig.TASK_EXEC_STDOUT_CONFIG_PIPE,
|
|
292
|
+
stderr_config=sr_pb2.TaskExecStderrConfig.TASK_EXEC_STDERR_CONFIG_PIPE,
|
|
282
293
|
pty_info=get_pty_info(shell=True) if pty else None,
|
|
283
294
|
runtime_debug=config.get("function_runtime_debug"),
|
|
284
295
|
)
|
|
285
|
-
|
|
296
|
+
await command_router_client.exec_start(start_req)
|
|
286
297
|
|
|
287
298
|
if pty:
|
|
288
|
-
await _ContainerProcess(
|
|
299
|
+
await _ContainerProcess(process_id, container_id, client, command_router_client=command_router_client).attach()
|
|
289
300
|
else:
|
|
290
|
-
# TODO: redirect stderr to its own stream?
|
|
291
301
|
await _ContainerProcess(
|
|
292
|
-
|
|
302
|
+
process_id,
|
|
303
|
+
container_id,
|
|
304
|
+
client,
|
|
305
|
+
command_router_client=command_router_client,
|
|
306
|
+
stdout=StreamType.STDOUT,
|
|
307
|
+
stderr=StreamType.STDOUT,
|
|
293
308
|
).wait()
|
|
294
309
|
|
|
295
310
|
|
|
@@ -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.3.
|
|
38
|
+
version: str = "1.4.3.dev8",
|
|
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.3.
|
|
178
|
+
version: str = "1.4.3.dev8",
|
|
179
179
|
):
|
|
180
180
|
"""mdmd:hidden
|
|
181
181
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -347,7 +347,7 @@ class Function(
|
|
|
347
347
|
|
|
348
348
|
_call_generator: ___call_generator_spec
|
|
349
349
|
|
|
350
|
-
class __remote_spec(typing_extensions.Protocol[
|
|
350
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
351
351
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
|
352
352
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
|
353
353
|
...
|
|
@@ -356,7 +356,7 @@ class Function(
|
|
|
356
356
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result."""
|
|
357
357
|
...
|
|
358
358
|
|
|
359
|
-
remote: __remote_spec[modal._functions.
|
|
359
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
|
|
360
360
|
|
|
361
361
|
class __remote_gen_spec(typing_extensions.Protocol):
|
|
362
362
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
|
@@ -383,7 +383,7 @@ class Function(
|
|
|
383
383
|
"""
|
|
384
384
|
...
|
|
385
385
|
|
|
386
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
|
386
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
387
387
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
388
388
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
|
389
389
|
|
|
@@ -406,7 +406,7 @@ class Function(
|
|
|
406
406
|
"""
|
|
407
407
|
...
|
|
408
408
|
|
|
409
|
-
_experimental_spawn: ___experimental_spawn_spec[modal._functions.
|
|
409
|
+
_experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
410
410
|
|
|
411
411
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
|
|
412
412
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
|
|
@@ -414,7 +414,7 @@ class Function(
|
|
|
414
414
|
|
|
415
415
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
|
|
416
416
|
|
|
417
|
-
class __spawn_spec(typing_extensions.Protocol[
|
|
417
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
418
418
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
419
419
|
"""Calls the function with the given arguments, without waiting for the results.
|
|
420
420
|
|
|
@@ -435,7 +435,7 @@ class Function(
|
|
|
435
435
|
"""
|
|
436
436
|
...
|
|
437
437
|
|
|
438
|
-
spawn: __spawn_spec[modal._functions.
|
|
438
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
439
439
|
|
|
440
440
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
|
|
441
441
|
"""Return the inner Python object wrapped by this Modal Function."""
|
|
@@ -628,6 +628,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
628
628
|
idle_timeout: Optional[int] = None,
|
|
629
629
|
workdir: Optional[str] = None,
|
|
630
630
|
cpu: Optional[float] = None,
|
|
631
|
+
memory: Optional[int] = None,
|
|
631
632
|
cloud: Optional[str] = None,
|
|
632
633
|
region: Optional[Union[str, Sequence[str]]] = None,
|
|
633
634
|
block_network: bool = False,
|
|
@@ -642,7 +643,6 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
642
643
|
) -> "_Sandbox":
|
|
643
644
|
"""Create a sandbox using the V2 backend.
|
|
644
645
|
|
|
645
|
-
Only CPU is configurable; memory is derived as a fixed ratio of CPU.
|
|
646
646
|
Features like tags, snapshots, exec, volumes, network file systems,
|
|
647
647
|
GPUs, custom domains, and proxies are not supported.
|
|
648
648
|
"""
|
|
@@ -714,7 +714,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
714
714
|
timeout_secs=timeout,
|
|
715
715
|
idle_timeout_secs=idle_timeout,
|
|
716
716
|
workdir=workdir,
|
|
717
|
-
resources=convert_fn_config_to_resources_config(cpu=cpu, memory=
|
|
717
|
+
resources=convert_fn_config_to_resources_config(cpu=cpu, memory=memory, gpu=None, ephemeral_disk=None),
|
|
718
718
|
cloud_provider_str=cloud if cloud else None,
|
|
719
719
|
runtime=config.get("function_runtime"),
|
|
720
720
|
runtime_debug=config.get("function_runtime_debug"),
|
|
@@ -304,6 +304,7 @@ class _Sandbox(modal._object._Object):
|
|
|
304
304
|
idle_timeout: typing.Optional[int] = None,
|
|
305
305
|
workdir: typing.Optional[str] = None,
|
|
306
306
|
cpu: typing.Optional[float] = None,
|
|
307
|
+
memory: typing.Optional[int] = None,
|
|
307
308
|
cloud: typing.Optional[str] = None,
|
|
308
309
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
309
310
|
block_network: bool = False,
|
|
@@ -318,7 +319,6 @@ class _Sandbox(modal._object._Object):
|
|
|
318
319
|
) -> _Sandbox:
|
|
319
320
|
"""Create a sandbox using the V2 backend.
|
|
320
321
|
|
|
321
|
-
Only CPU is configurable; memory is derived as a fixed ratio of CPU.
|
|
322
322
|
Features like tags, snapshots, exec, volumes, network file systems,
|
|
323
323
|
GPUs, custom domains, and proxies are not supported.
|
|
324
324
|
"""
|
|
@@ -1190,6 +1190,7 @@ class Sandbox(modal.object.Object):
|
|
|
1190
1190
|
idle_timeout: typing.Optional[int] = None,
|
|
1191
1191
|
workdir: typing.Optional[str] = None,
|
|
1192
1192
|
cpu: typing.Optional[float] = None,
|
|
1193
|
+
memory: typing.Optional[int] = None,
|
|
1193
1194
|
cloud: typing.Optional[str] = None,
|
|
1194
1195
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
1195
1196
|
block_network: bool = False,
|
|
@@ -1204,7 +1205,6 @@ class Sandbox(modal.object.Object):
|
|
|
1204
1205
|
) -> Sandbox:
|
|
1205
1206
|
"""Create a sandbox using the V2 backend.
|
|
1206
1207
|
|
|
1207
|
-
Only CPU is configurable; memory is derived as a fixed ratio of CPU.
|
|
1208
1208
|
Features like tags, snapshots, exec, volumes, network file systems,
|
|
1209
1209
|
GPUs, custom domains, and proxies are not supported.
|
|
1210
1210
|
"""
|
|
@@ -1223,6 +1223,7 @@ class Sandbox(modal.object.Object):
|
|
|
1223
1223
|
idle_timeout: typing.Optional[int] = None,
|
|
1224
1224
|
workdir: typing.Optional[str] = None,
|
|
1225
1225
|
cpu: typing.Optional[float] = None,
|
|
1226
|
+
memory: typing.Optional[int] = None,
|
|
1226
1227
|
cloud: typing.Optional[str] = None,
|
|
1227
1228
|
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
1228
1229
|
block_network: bool = False,
|
|
@@ -1237,7 +1238,6 @@ class Sandbox(modal.object.Object):
|
|
|
1237
1238
|
) -> Sandbox:
|
|
1238
1239
|
"""Create a sandbox using the V2 backend.
|
|
1239
1240
|
|
|
1240
|
-
Only CPU is configurable; memory is derived as a fixed ratio of CPU.
|
|
1241
1241
|
Features like tags, snapshots, exec, volumes, network file systems,
|
|
1242
1242
|
GPUs, custom domains, and proxies are not supported.
|
|
1243
1243
|
"""
|
|
@@ -16,6 +16,14 @@ import modal_proto.task_command_router_pb2
|
|
|
16
16
|
|
|
17
17
|
class TaskCommandRouterBase(abc.ABC):
|
|
18
18
|
|
|
19
|
+
@abc.abstractmethod
|
|
20
|
+
async def SandboxStdinWriteV2(self, stream: 'grpclib.server.Stream[modal_proto.task_command_router_pb2.SandboxStdinWriteV2Request, modal_proto.task_command_router_pb2.SandboxStdinWriteV2Response]') -> None:
|
|
21
|
+
pass
|
|
22
|
+
|
|
23
|
+
@abc.abstractmethod
|
|
24
|
+
async def SandboxStdioReadV2(self, stream: 'grpclib.server.Stream[modal_proto.task_command_router_pb2.SandboxStdioReadV2Request, modal_proto.task_command_router_pb2.SandboxStdioReadV2Response]') -> None:
|
|
25
|
+
pass
|
|
26
|
+
|
|
19
27
|
@abc.abstractmethod
|
|
20
28
|
async def TaskContainerCreate(self, stream: 'grpclib.server.Stream[modal_proto.task_command_router_pb2.TaskContainerCreateRequest, modal_proto.task_command_router_pb2.TaskContainerCreateResponse]') -> None:
|
|
21
29
|
pass
|
|
@@ -70,6 +78,18 @@ class TaskCommandRouterBase(abc.ABC):
|
|
|
70
78
|
|
|
71
79
|
def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
|
|
72
80
|
return {
|
|
81
|
+
'/modal.task_command_router.TaskCommandRouter/SandboxStdinWriteV2': grpclib.const.Handler(
|
|
82
|
+
self.SandboxStdinWriteV2,
|
|
83
|
+
grpclib.const.Cardinality.UNARY_UNARY,
|
|
84
|
+
modal_proto.task_command_router_pb2.SandboxStdinWriteV2Request,
|
|
85
|
+
modal_proto.task_command_router_pb2.SandboxStdinWriteV2Response,
|
|
86
|
+
),
|
|
87
|
+
'/modal.task_command_router.TaskCommandRouter/SandboxStdioReadV2': grpclib.const.Handler(
|
|
88
|
+
self.SandboxStdioReadV2,
|
|
89
|
+
grpclib.const.Cardinality.UNARY_STREAM,
|
|
90
|
+
modal_proto.task_command_router_pb2.SandboxStdioReadV2Request,
|
|
91
|
+
modal_proto.task_command_router_pb2.SandboxStdioReadV2Response,
|
|
92
|
+
),
|
|
73
93
|
'/modal.task_command_router.TaskCommandRouter/TaskContainerCreate': grpclib.const.Handler(
|
|
74
94
|
self.TaskContainerCreate,
|
|
75
95
|
grpclib.const.Cardinality.UNARY_UNARY,
|
|
@@ -154,6 +174,18 @@ class TaskCommandRouterBase(abc.ABC):
|
|
|
154
174
|
class TaskCommandRouterStub:
|
|
155
175
|
|
|
156
176
|
def __init__(self, channel: grpclib.client.Channel) -> None:
|
|
177
|
+
self.SandboxStdinWriteV2 = grpclib.client.UnaryUnaryMethod(
|
|
178
|
+
channel,
|
|
179
|
+
'/modal.task_command_router.TaskCommandRouter/SandboxStdinWriteV2',
|
|
180
|
+
modal_proto.task_command_router_pb2.SandboxStdinWriteV2Request,
|
|
181
|
+
modal_proto.task_command_router_pb2.SandboxStdinWriteV2Response,
|
|
182
|
+
)
|
|
183
|
+
self.SandboxStdioReadV2 = grpclib.client.UnaryStreamMethod(
|
|
184
|
+
channel,
|
|
185
|
+
'/modal.task_command_router.TaskCommandRouter/SandboxStdioReadV2',
|
|
186
|
+
modal_proto.task_command_router_pb2.SandboxStdioReadV2Request,
|
|
187
|
+
modal_proto.task_command_router_pb2.SandboxStdioReadV2Response,
|
|
188
|
+
)
|
|
157
189
|
self.TaskContainerCreate = grpclib.client.UnaryUnaryMethod(
|
|
158
190
|
channel,
|
|
159
191
|
'/modal.task_command_router.TaskCommandRouter/TaskContainerCreate',
|
|
@@ -17,14 +17,18 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
|
|
17
17
|
from modal_proto import api_pb2 as modal__proto_dot_api__pb2
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x1bgoogle/protobuf/empty.proto\x1a\x15modal_proto/api.proto\"\x83\x02\n\x1aTaskContainerCreateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x05 \x03(\t\x12K\n\x03\x65nv\x18\x06 \x03(\x0b\x32>.modal.task_command_router.TaskContainerCreateRequest.EnvEntry\x12\x0f\n\x07workdir\x18\x07 \x01(\t\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"K\n\x1bTaskContainerCreateResponse\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\"^\n\x17TaskContainerGetRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x1a\n\x12include_terminated\x18\x03 \x01(\x08\"[\n\x18TaskContainerGetResponse\x12?\n\tcontainer\x18\x01 \x01(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"~\n\x11TaskContainerInfo\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12+\n\x06result\x18\x04 \x01(\x0b\x32\x1b.modal.client.GenericResult\"G\n\x18TaskContainerListRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x1a\n\x12include_terminated\x18\x02 \x01(\x08\"]\n\x19TaskContainerListResponse\x12@\n\ncontainers\x18\x01 \x03(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"F\n\x1dTaskContainerTerminateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\" \n\x1eTaskContainerTerminateResponse\"R\n\x18TaskContainerWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\"H\n\x19TaskContainerWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x9b\x04\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x12\x14\n\x0c\x63ontainer_id\x18\x0b \x01(\t\x12\x45\n\x03\x65nv\x18\x0c \x03(\x0b\x32\x38.modal.task_command_router.TaskExecStartRequest.EnvEntry\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"L\n\x19TaskMountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x10\n\x08image_id\x18\x03 \x01(\t\"R\n\x1cTaskSnapshotDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x13\n\x0bsnapshot_id\x18\x03 \x01(\t\"1\n\x1dTaskSnapshotDirectoryResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"<\n\x1bTaskUnmountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\
|
|
20
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%modal_proto/task_command_router.proto\x12\x19modal.task_command_router\x1a\x1bgoogle/protobuf/empty.proto\x1a\x15modal_proto/api.proto\"X\n\x1aSandboxStdinWriteV2Request\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x04 \x01(\x08\"\x1d\n\x1bSandboxStdinWriteV2Response\"\x8c\x01\n\x19SandboxStdioReadV2Request\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0e\n\x06offset\x18\x02 \x01(\x04\x12N\n\x0f\x66ile_descriptor\x18\x03 \x01(\x0e\x32\x35.modal.task_command_router.SandboxStdioFileDescriptor\"*\n\x1aSandboxStdioReadV2Response\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x83\x02\n\x1aTaskContainerCreateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x10\n\x08image_id\x18\x03 \x01(\t\x12\x0c\n\x04\x61rgs\x18\x05 \x03(\t\x12K\n\x03\x65nv\x18\x06 \x03(\x0b\x32>.modal.task_command_router.TaskContainerCreateRequest.EnvEntry\x12\x0f\n\x07workdir\x18\x07 \x01(\t\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"K\n\x1bTaskContainerCreateResponse\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\"^\n\x17TaskContainerGetRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x1a\n\x12include_terminated\x18\x03 \x01(\x08\"[\n\x18TaskContainerGetResponse\x12?\n\tcontainer\x18\x01 \x01(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"~\n\x11TaskContainerInfo\x12\x14\n\x0c\x63ontainer_id\x18\x01 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12+\n\x06result\x18\x04 \x01(\x0b\x32\x1b.modal.client.GenericResult\"G\n\x18TaskContainerListRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x1a\n\x12include_terminated\x18\x02 \x01(\x08\"]\n\x19TaskContainerListResponse\x12@\n\ncontainers\x18\x01 \x03(\x0b\x32,.modal.task_command_router.TaskContainerInfo\"F\n\x1dTaskContainerTerminateRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\" \n\x1eTaskContainerTerminateResponse\"R\n\x18TaskContainerWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\"H\n\x19TaskContainerWaitResponse\x12+\n\x06result\x18\x01 \x01(\x0b\x32\x1b.modal.client.GenericResult\"7\n\x13TaskExecPollRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecPollResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"\x9b\x04\n\x14TaskExecStartRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x14\n\x0c\x63ommand_args\x18\x03 \x03(\t\x12\x46\n\rstdout_config\x18\x04 \x01(\x0e\x32/.modal.task_command_router.TaskExecStdoutConfig\x12\x46\n\rstderr_config\x18\x05 \x01(\x0e\x32/.modal.task_command_router.TaskExecStderrConfig\x12\x19\n\x0ctimeout_secs\x18\x06 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07workdir\x18\x07 \x01(\tH\x01\x88\x01\x01\x12\x12\n\nsecret_ids\x18\x08 \x03(\t\x12,\n\x08pty_info\x18\t \x01(\x0b\x32\x15.modal.client.PTYInfoH\x02\x88\x01\x01\x12\x15\n\rruntime_debug\x18\n \x01(\x08\x12\x14\n\x0c\x63ontainer_id\x18\x0b \x01(\t\x12\x45\n\x03\x65nv\x18\x0c \x03(\x0b\x32\x38.modal.task_command_router.TaskExecStartRequest.EnvEntry\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0f\n\r_timeout_secsB\n\n\x08_workdirB\x0b\n\t_pty_info\"\x17\n\x15TaskExecStartResponse\"h\n\x19TaskExecStdinWriteRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\x0b\n\x03\x65of\x18\x05 \x01(\x08\"\x1c\n\x1aTaskExecStdinWriteResponse\"\x9d\x01\n\x18TaskExecStdioReadRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\x12\x0e\n\x06offset\x18\x03 \x01(\x04\x12O\n\x0f\x66ile_descriptor\x18\x04 \x01(\x0e\x32\x36.modal.task_command_router.TaskExecStdioFileDescriptor\")\n\x19TaskExecStdioReadResponse\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"7\n\x13TaskExecWaitRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"G\n\x14TaskExecWaitResponse\x12\x0e\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x12\x10\n\x06signal\x18\x02 \x01(\x05H\x00\x42\r\n\x0b\x65xit_status\"L\n\x19TaskMountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x10\n\x08image_id\x18\x03 \x01(\t\"R\n\x1cTaskSnapshotDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c\x12\x13\n\x0bsnapshot_id\x18\x03 \x01(\t\"1\n\x1dTaskSnapshotDirectoryResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"<\n\x1bTaskUnmountDirectoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\x0c*p\n\x1aSandboxStdioFileDescriptor\x12(\n$SANDBOX_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12(\n$SANDBOX_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*\x81\x01\n\x14TaskExecStderrConfig\x12#\n\x1fTASK_EXEC_STDERR_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDERR_CONFIG_PIPE\x10\x01\x12\"\n\x1eTASK_EXEC_STDERR_CONFIG_STDOUT\x10\x02*u\n\x1bTaskExecStdioFileDescriptor\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDOUT\x10\x00\x12*\n&TASK_EXEC_STDIO_FILE_DESCRIPTOR_STDERR\x10\x01*]\n\x14TaskExecStdoutConfig\x12#\n\x1fTASK_EXEC_STDOUT_CONFIG_DEVNULL\x10\x00\x12 \n\x1cTASK_EXEC_STDOUT_CONFIG_PIPE\x10\x01\x32\xea\x0e\n\x11TaskCommandRouter\x12\x84\x01\n\x13SandboxStdinWriteV2\x12\x35.modal.task_command_router.SandboxStdinWriteV2Request\x1a\x36.modal.task_command_router.SandboxStdinWriteV2Response\x12\x83\x01\n\x12SandboxStdioReadV2\x12\x34.modal.task_command_router.SandboxStdioReadV2Request\x1a\x35.modal.task_command_router.SandboxStdioReadV2Response0\x01\x12\x84\x01\n\x13TaskContainerCreate\x12\x35.modal.task_command_router.TaskContainerCreateRequest\x1a\x36.modal.task_command_router.TaskContainerCreateResponse\x12{\n\x10TaskContainerGet\x12\x32.modal.task_command_router.TaskContainerGetRequest\x1a\x33.modal.task_command_router.TaskContainerGetResponse\x12~\n\x11TaskContainerList\x12\x33.modal.task_command_router.TaskContainerListRequest\x1a\x34.modal.task_command_router.TaskContainerListResponse\x12\x8d\x01\n\x16TaskContainerTerminate\x12\x38.modal.task_command_router.TaskContainerTerminateRequest\x1a\x39.modal.task_command_router.TaskContainerTerminateResponse\x12~\n\x11TaskContainerWait\x12\x33.modal.task_command_router.TaskContainerWaitRequest\x1a\x34.modal.task_command_router.TaskContainerWaitResponse\x12o\n\x0cTaskExecPoll\x12..modal.task_command_router.TaskExecPollRequest\x1a/.modal.task_command_router.TaskExecPollResponse\x12r\n\rTaskExecStart\x12/.modal.task_command_router.TaskExecStartRequest\x1a\x30.modal.task_command_router.TaskExecStartResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x80\x01\n\x11TaskExecStdioRead\x12\x33.modal.task_command_router.TaskExecStdioReadRequest\x1a\x34.modal.task_command_router.TaskExecStdioReadResponse0\x01\x12o\n\x0cTaskExecWait\x12..modal.task_command_router.TaskExecWaitRequest\x1a/.modal.task_command_router.TaskExecWaitResponse\x12\x62\n\x12TaskMountDirectory\x12\x34.modal.task_command_router.TaskMountDirectoryRequest\x1a\x16.google.protobuf.Empty\x12\x8a\x01\n\x15TaskSnapshotDirectory\x12\x37.modal.task_command_router.TaskSnapshotDirectoryRequest\x1a\x38.modal.task_command_router.TaskSnapshotDirectoryResponse\x12\x66\n\x14TaskUnmountDirectory\x12\x36.modal.task_command_router.TaskUnmountDirectoryRequest\x1a\x16.google.protobuf.EmptyB&Z$github.com/modal-labs/modal/go/protob\x06proto3')
|
|
21
21
|
|
|
22
|
+
_SANDBOXSTDIOFILEDESCRIPTOR = DESCRIPTOR.enum_types_by_name['SandboxStdioFileDescriptor']
|
|
23
|
+
SandboxStdioFileDescriptor = enum_type_wrapper.EnumTypeWrapper(_SANDBOXSTDIOFILEDESCRIPTOR)
|
|
22
24
|
_TASKEXECSTDERRCONFIG = DESCRIPTOR.enum_types_by_name['TaskExecStderrConfig']
|
|
23
25
|
TaskExecStderrConfig = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDERRCONFIG)
|
|
24
26
|
_TASKEXECSTDIOFILEDESCRIPTOR = DESCRIPTOR.enum_types_by_name['TaskExecStdioFileDescriptor']
|
|
25
27
|
TaskExecStdioFileDescriptor = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDIOFILEDESCRIPTOR)
|
|
26
28
|
_TASKEXECSTDOUTCONFIG = DESCRIPTOR.enum_types_by_name['TaskExecStdoutConfig']
|
|
27
29
|
TaskExecStdoutConfig = enum_type_wrapper.EnumTypeWrapper(_TASKEXECSTDOUTCONFIG)
|
|
30
|
+
SANDBOX_STDIO_FILE_DESCRIPTOR_STDOUT = 0
|
|
31
|
+
SANDBOX_STDIO_FILE_DESCRIPTOR_STDERR = 1
|
|
28
32
|
TASK_EXEC_STDERR_CONFIG_DEVNULL = 0
|
|
29
33
|
TASK_EXEC_STDERR_CONFIG_PIPE = 1
|
|
30
34
|
TASK_EXEC_STDERR_CONFIG_STDOUT = 2
|
|
@@ -34,6 +38,10 @@ TASK_EXEC_STDOUT_CONFIG_DEVNULL = 0
|
|
|
34
38
|
TASK_EXEC_STDOUT_CONFIG_PIPE = 1
|
|
35
39
|
|
|
36
40
|
|
|
41
|
+
_SANDBOXSTDINWRITEV2REQUEST = DESCRIPTOR.message_types_by_name['SandboxStdinWriteV2Request']
|
|
42
|
+
_SANDBOXSTDINWRITEV2RESPONSE = DESCRIPTOR.message_types_by_name['SandboxStdinWriteV2Response']
|
|
43
|
+
_SANDBOXSTDIOREADV2REQUEST = DESCRIPTOR.message_types_by_name['SandboxStdioReadV2Request']
|
|
44
|
+
_SANDBOXSTDIOREADV2RESPONSE = DESCRIPTOR.message_types_by_name['SandboxStdioReadV2Response']
|
|
37
45
|
_TASKCONTAINERCREATEREQUEST = DESCRIPTOR.message_types_by_name['TaskContainerCreateRequest']
|
|
38
46
|
_TASKCONTAINERCREATEREQUEST_ENVENTRY = _TASKCONTAINERCREATEREQUEST.nested_types_by_name['EnvEntry']
|
|
39
47
|
_TASKCONTAINERCREATERESPONSE = DESCRIPTOR.message_types_by_name['TaskContainerCreateResponse']
|
|
@@ -61,6 +69,34 @@ _TASKMOUNTDIRECTORYREQUEST = DESCRIPTOR.message_types_by_name['TaskMountDirector
|
|
|
61
69
|
_TASKSNAPSHOTDIRECTORYREQUEST = DESCRIPTOR.message_types_by_name['TaskSnapshotDirectoryRequest']
|
|
62
70
|
_TASKSNAPSHOTDIRECTORYRESPONSE = DESCRIPTOR.message_types_by_name['TaskSnapshotDirectoryResponse']
|
|
63
71
|
_TASKUNMOUNTDIRECTORYREQUEST = DESCRIPTOR.message_types_by_name['TaskUnmountDirectoryRequest']
|
|
72
|
+
SandboxStdinWriteV2Request = _reflection.GeneratedProtocolMessageType('SandboxStdinWriteV2Request', (_message.Message,), {
|
|
73
|
+
'DESCRIPTOR' : _SANDBOXSTDINWRITEV2REQUEST,
|
|
74
|
+
'__module__' : 'modal_proto.task_command_router_pb2'
|
|
75
|
+
# @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdinWriteV2Request)
|
|
76
|
+
})
|
|
77
|
+
_sym_db.RegisterMessage(SandboxStdinWriteV2Request)
|
|
78
|
+
|
|
79
|
+
SandboxStdinWriteV2Response = _reflection.GeneratedProtocolMessageType('SandboxStdinWriteV2Response', (_message.Message,), {
|
|
80
|
+
'DESCRIPTOR' : _SANDBOXSTDINWRITEV2RESPONSE,
|
|
81
|
+
'__module__' : 'modal_proto.task_command_router_pb2'
|
|
82
|
+
# @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdinWriteV2Response)
|
|
83
|
+
})
|
|
84
|
+
_sym_db.RegisterMessage(SandboxStdinWriteV2Response)
|
|
85
|
+
|
|
86
|
+
SandboxStdioReadV2Request = _reflection.GeneratedProtocolMessageType('SandboxStdioReadV2Request', (_message.Message,), {
|
|
87
|
+
'DESCRIPTOR' : _SANDBOXSTDIOREADV2REQUEST,
|
|
88
|
+
'__module__' : 'modal_proto.task_command_router_pb2'
|
|
89
|
+
# @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdioReadV2Request)
|
|
90
|
+
})
|
|
91
|
+
_sym_db.RegisterMessage(SandboxStdioReadV2Request)
|
|
92
|
+
|
|
93
|
+
SandboxStdioReadV2Response = _reflection.GeneratedProtocolMessageType('SandboxStdioReadV2Response', (_message.Message,), {
|
|
94
|
+
'DESCRIPTOR' : _SANDBOXSTDIOREADV2RESPONSE,
|
|
95
|
+
'__module__' : 'modal_proto.task_command_router_pb2'
|
|
96
|
+
# @@protoc_insertion_point(class_scope:modal.task_command_router.SandboxStdioReadV2Response)
|
|
97
|
+
})
|
|
98
|
+
_sym_db.RegisterMessage(SandboxStdioReadV2Response)
|
|
99
|
+
|
|
64
100
|
TaskContainerCreateRequest = _reflection.GeneratedProtocolMessageType('TaskContainerCreateRequest', (_message.Message,), {
|
|
65
101
|
|
|
66
102
|
'EnvEntry' : _reflection.GeneratedProtocolMessageType('EnvEntry', (_message.Message,), {
|
|
@@ -261,66 +297,76 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
261
297
|
_TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_options = b'8\001'
|
|
262
298
|
_TASKEXECSTARTREQUEST_ENVENTRY._options = None
|
|
263
299
|
_TASKEXECSTARTREQUEST_ENVENTRY._serialized_options = b'8\001'
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
300
|
+
_SANDBOXSTDIOFILEDESCRIPTOR._serialized_start=2957
|
|
301
|
+
_SANDBOXSTDIOFILEDESCRIPTOR._serialized_end=3069
|
|
302
|
+
_TASKEXECSTDERRCONFIG._serialized_start=3072
|
|
303
|
+
_TASKEXECSTDERRCONFIG._serialized_end=3201
|
|
304
|
+
_TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=3203
|
|
305
|
+
_TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=3320
|
|
306
|
+
_TASKEXECSTDOUTCONFIG._serialized_start=3322
|
|
307
|
+
_TASKEXECSTDOUTCONFIG._serialized_end=3415
|
|
308
|
+
_SANDBOXSTDINWRITEV2REQUEST._serialized_start=120
|
|
309
|
+
_SANDBOXSTDINWRITEV2REQUEST._serialized_end=208
|
|
310
|
+
_SANDBOXSTDINWRITEV2RESPONSE._serialized_start=210
|
|
311
|
+
_SANDBOXSTDINWRITEV2RESPONSE._serialized_end=239
|
|
312
|
+
_SANDBOXSTDIOREADV2REQUEST._serialized_start=242
|
|
313
|
+
_SANDBOXSTDIOREADV2REQUEST._serialized_end=382
|
|
314
|
+
_SANDBOXSTDIOREADV2RESPONSE._serialized_start=384
|
|
315
|
+
_SANDBOXSTDIOREADV2RESPONSE._serialized_end=426
|
|
316
|
+
_TASKCONTAINERCREATEREQUEST._serialized_start=429
|
|
317
|
+
_TASKCONTAINERCREATEREQUEST._serialized_end=688
|
|
318
|
+
_TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_start=646
|
|
319
|
+
_TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_end=688
|
|
320
|
+
_TASKCONTAINERCREATERESPONSE._serialized_start=690
|
|
321
|
+
_TASKCONTAINERCREATERESPONSE._serialized_end=765
|
|
322
|
+
_TASKCONTAINERGETREQUEST._serialized_start=767
|
|
323
|
+
_TASKCONTAINERGETREQUEST._serialized_end=861
|
|
324
|
+
_TASKCONTAINERGETRESPONSE._serialized_start=863
|
|
325
|
+
_TASKCONTAINERGETRESPONSE._serialized_end=954
|
|
326
|
+
_TASKCONTAINERINFO._serialized_start=956
|
|
327
|
+
_TASKCONTAINERINFO._serialized_end=1082
|
|
328
|
+
_TASKCONTAINERLISTREQUEST._serialized_start=1084
|
|
329
|
+
_TASKCONTAINERLISTREQUEST._serialized_end=1155
|
|
330
|
+
_TASKCONTAINERLISTRESPONSE._serialized_start=1157
|
|
331
|
+
_TASKCONTAINERLISTRESPONSE._serialized_end=1250
|
|
332
|
+
_TASKCONTAINERTERMINATEREQUEST._serialized_start=1252
|
|
333
|
+
_TASKCONTAINERTERMINATEREQUEST._serialized_end=1322
|
|
334
|
+
_TASKCONTAINERTERMINATERESPONSE._serialized_start=1324
|
|
335
|
+
_TASKCONTAINERTERMINATERESPONSE._serialized_end=1356
|
|
336
|
+
_TASKCONTAINERWAITREQUEST._serialized_start=1358
|
|
337
|
+
_TASKCONTAINERWAITREQUEST._serialized_end=1440
|
|
338
|
+
_TASKCONTAINERWAITRESPONSE._serialized_start=1442
|
|
339
|
+
_TASKCONTAINERWAITRESPONSE._serialized_end=1514
|
|
340
|
+
_TASKEXECPOLLREQUEST._serialized_start=1516
|
|
341
|
+
_TASKEXECPOLLREQUEST._serialized_end=1571
|
|
342
|
+
_TASKEXECPOLLRESPONSE._serialized_start=1573
|
|
343
|
+
_TASKEXECPOLLRESPONSE._serialized_end=1644
|
|
344
|
+
_TASKEXECSTARTREQUEST._serialized_start=1647
|
|
345
|
+
_TASKEXECSTARTREQUEST._serialized_end=2186
|
|
346
|
+
_TASKEXECSTARTREQUEST_ENVENTRY._serialized_start=646
|
|
347
|
+
_TASKEXECSTARTREQUEST_ENVENTRY._serialized_end=688
|
|
348
|
+
_TASKEXECSTARTRESPONSE._serialized_start=2188
|
|
349
|
+
_TASKEXECSTARTRESPONSE._serialized_end=2211
|
|
350
|
+
_TASKEXECSTDINWRITEREQUEST._serialized_start=2213
|
|
351
|
+
_TASKEXECSTDINWRITEREQUEST._serialized_end=2317
|
|
352
|
+
_TASKEXECSTDINWRITERESPONSE._serialized_start=2319
|
|
353
|
+
_TASKEXECSTDINWRITERESPONSE._serialized_end=2347
|
|
354
|
+
_TASKEXECSTDIOREADREQUEST._serialized_start=2350
|
|
355
|
+
_TASKEXECSTDIOREADREQUEST._serialized_end=2507
|
|
356
|
+
_TASKEXECSTDIOREADRESPONSE._serialized_start=2509
|
|
357
|
+
_TASKEXECSTDIOREADRESPONSE._serialized_end=2550
|
|
358
|
+
_TASKEXECWAITREQUEST._serialized_start=2552
|
|
359
|
+
_TASKEXECWAITREQUEST._serialized_end=2607
|
|
360
|
+
_TASKEXECWAITRESPONSE._serialized_start=2609
|
|
361
|
+
_TASKEXECWAITRESPONSE._serialized_end=2680
|
|
362
|
+
_TASKMOUNTDIRECTORYREQUEST._serialized_start=2682
|
|
363
|
+
_TASKMOUNTDIRECTORYREQUEST._serialized_end=2758
|
|
364
|
+
_TASKSNAPSHOTDIRECTORYREQUEST._serialized_start=2760
|
|
365
|
+
_TASKSNAPSHOTDIRECTORYREQUEST._serialized_end=2842
|
|
366
|
+
_TASKSNAPSHOTDIRECTORYRESPONSE._serialized_start=2844
|
|
367
|
+
_TASKSNAPSHOTDIRECTORYRESPONSE._serialized_end=2893
|
|
368
|
+
_TASKUNMOUNTDIRECTORYREQUEST._serialized_start=2895
|
|
369
|
+
_TASKUNMOUNTDIRECTORYREQUEST._serialized_end=2955
|
|
370
|
+
_TASKCOMMANDROUTER._serialized_start=3418
|
|
371
|
+
_TASKCOMMANDROUTER._serialized_end=5316
|
|
326
372
|
# @@protoc_insertion_point(module_scope)
|