modal 1.5.5.dev13__tar.gz → 1.5.5.dev15__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.5.5.dev13 → modal-1.5.5.dev15}/PKG-INFO +1 -1
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_functions.py +31 -3
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_object.py +4 -1
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/app.py +11 -1
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/app.pyi +20 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/client.pyi +2 -2
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cls.py +8 -2
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cls.pyi +20 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/functions.pyi +76 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/object.pyi +11 -30
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/sandbox.py +8 -3
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2.py +20 -20
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2.pyi +5 -1
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_version/__init__.py +1 -1
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/LICENSE +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/README.md +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/__main__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_billing.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_clustered_functions.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_clustered_functions.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_container_entrypoint.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_environments.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_function_variants.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_grpc_client.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_image.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_ipython.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_load_context.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_location.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_logs.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_logs_manager.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_logs_manager.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_output/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_output/manager.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_output/pty.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_output/rich.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_output/status.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_partial_function.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_resolver.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_resources.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/asgi.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/execution_context.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/telemetry.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_serialization.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_server.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_supports_logs.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_traceback.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_tunnel.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_tunnel.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_type_manager.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/app_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/async_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/blob_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/browser_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/curl_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/deprecation.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/display_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/docker_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/function_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/git_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/hash_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/http_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/logger.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/mount_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/name_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/package_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/proxy_support.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/shell_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_utils/time_utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_vendor/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_vendor/tblib.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_vendor/version.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_watcher.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/_workspace.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/billing.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/billing.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/2023.12.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/2024.04.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/2024.10.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/2025.06.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/README.md +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/builder/base-images.json +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/call_graph.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/_download.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/_help.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/_traceback.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/app.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/billing.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/bootstrap.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/changelog.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/cluster.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/config.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/container.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/curl.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/dashboard.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/dict.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/endpoint.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/entry_point.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/environment.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/image.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/import_refs.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/launch.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/logo.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/network_file_system.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/profile.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/programs/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/programs/vscode.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/queues.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/run.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/secret.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/selector.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/shell.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/skills.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/token.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/utils.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/volume.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cli/workspace.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/client.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/config.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/container_process.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/container_process.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/dict.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/dict.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/environments.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/environments.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/exception.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/experimental/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/experimental/flash.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/experimental/flash.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/experimental/ipython.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/file_io.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/file_io.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/file_pattern_matcher.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/functions.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/image.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/image.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/io_streams.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/io_streams.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/mount.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/mount.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/network_file_system.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/network_file_system.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/object.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/output.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/parallel_map.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/parallel_map.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/partial_function.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/partial_function.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/proxy.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/proxy.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/py.typed +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/queue.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/queue.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/retries.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/runner.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/runner.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/running_app.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/sandbox.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/sandbox_fs.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/sandbox_fs.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/schedule.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/scheduler_placement.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/secret.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/secret.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/server.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/server.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/serving.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/serving.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/snapshot.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/snapshot.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/stream_type.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/token_flow.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/token_flow.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/types.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/volume.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/volume.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/workspace.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal/workspace.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal.egg-info/requires.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal.egg-info/top_level.txt +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/mdmd/types.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_docs/reference_intro.md +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/__init__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/api_grpc.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/api_pb2.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/py.typed +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/modal_version/__main__.py +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/pyproject.toml +0 -0
- {modal-1.5.5.dev13 → modal-1.5.5.dev15}/setup.cfg +0 -0
|
@@ -663,7 +663,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
663
663
|
return _FunctionLogsManager(self)
|
|
664
664
|
|
|
665
665
|
@staticmethod
|
|
666
|
-
def
|
|
666
|
+
def _from_local(
|
|
667
667
|
info: FunctionInfo,
|
|
668
668
|
app: "modal.app._App | None", # App here should only be None in case of Image.run_function
|
|
669
669
|
image: _Image,
|
|
@@ -1164,7 +1164,9 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1164
1164
|
# the only way to infer a LoadContext for an `@app.function`, and the App doesn't
|
|
1165
1165
|
# get its client until *after* the Function is created.
|
|
1166
1166
|
load_context = app._root_load_context if app else LoadContext.empty()
|
|
1167
|
-
obj = _Function._from_loader(
|
|
1167
|
+
obj: _Function = _Function._from_loader(
|
|
1168
|
+
_load, rep, preload=_preload, deps=_deps, load_context_overrides=load_context
|
|
1169
|
+
)
|
|
1168
1170
|
|
|
1169
1171
|
obj._raw_f = info.raw_f
|
|
1170
1172
|
obj._info = info
|
|
@@ -1192,6 +1194,9 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1192
1194
|
|
|
1193
1195
|
return obj
|
|
1194
1196
|
|
|
1197
|
+
from_local = _from_local
|
|
1198
|
+
"""mdmd:hidden"""
|
|
1199
|
+
|
|
1195
1200
|
async def _update_autoscaler(
|
|
1196
1201
|
self,
|
|
1197
1202
|
*,
|
|
@@ -1386,6 +1391,10 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1386
1391
|
@property
|
|
1387
1392
|
def tag(self) -> str:
|
|
1388
1393
|
"""mdmd:hidden"""
|
|
1394
|
+
return self._tag_
|
|
1395
|
+
|
|
1396
|
+
@property
|
|
1397
|
+
def _tag_(self) -> str:
|
|
1389
1398
|
assert self._tag
|
|
1390
1399
|
return self._tag
|
|
1391
1400
|
|
|
@@ -1406,12 +1415,20 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1406
1415
|
@property
|
|
1407
1416
|
def info(self) -> FunctionInfo:
|
|
1408
1417
|
"""mdmd:hidden"""
|
|
1418
|
+
return self._info_
|
|
1419
|
+
|
|
1420
|
+
@property
|
|
1421
|
+
def _info_(self) -> FunctionInfo:
|
|
1409
1422
|
assert self._info
|
|
1410
1423
|
return self._info
|
|
1411
1424
|
|
|
1412
1425
|
@property
|
|
1413
1426
|
def spec(self) -> _FunctionSpec:
|
|
1414
1427
|
"""mdmd:hidden"""
|
|
1428
|
+
return self._spec_
|
|
1429
|
+
|
|
1430
|
+
@property
|
|
1431
|
+
def _spec_(self) -> _FunctionSpec:
|
|
1415
1432
|
assert self._spec
|
|
1416
1433
|
return self._spec
|
|
1417
1434
|
|
|
@@ -1419,13 +1436,16 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1419
1436
|
# only defined in definition scope/locally, and not for class methods at the moment
|
|
1420
1437
|
return bool(self._webhook_config and self._webhook_config.type != api_pb2.WEBHOOK_TYPE_UNSPECIFIED)
|
|
1421
1438
|
|
|
1422
|
-
def
|
|
1439
|
+
def _get_build_def(self) -> str:
|
|
1423
1440
|
"""mdmd:hidden"""
|
|
1424
1441
|
# Plaintext source and arg definition for the function, so it's part of the image
|
|
1425
1442
|
# hash. We can't use the cloudpickle hash because it's not very stable.
|
|
1426
1443
|
assert hasattr(self, "_raw_f") and hasattr(self, "_build_args") and self._raw_f is not None
|
|
1427
1444
|
return f"{inspect.getsource(self._raw_f)}\n{repr(self._build_args)}"
|
|
1428
1445
|
|
|
1446
|
+
get_build_def = _get_build_def
|
|
1447
|
+
"""mdmd:hidden"""
|
|
1448
|
+
|
|
1429
1449
|
# Live handle methods
|
|
1430
1450
|
|
|
1431
1451
|
def _initialize_from_empty(self):
|
|
@@ -1675,6 +1695,10 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1675
1695
|
@property
|
|
1676
1696
|
async def is_generator(self) -> bool:
|
|
1677
1697
|
"""mdmd:hidden"""
|
|
1698
|
+
return await self._is_generator_
|
|
1699
|
+
|
|
1700
|
+
@property
|
|
1701
|
+
async def _is_generator_(self) -> bool:
|
|
1678
1702
|
# hacky: kind of like @live_method, but not hydrating if we have the value already from local source
|
|
1679
1703
|
# TODO(michael) use a common / lightweight method for handling unhydrated metadata properties
|
|
1680
1704
|
if self._is_generator is not None:
|
|
@@ -2014,6 +2038,10 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
2014
2038
|
Returns:
|
|
2015
2039
|
The original function object registered with Modal.
|
|
2016
2040
|
"""
|
|
2041
|
+
return self._raw_f_
|
|
2042
|
+
|
|
2043
|
+
@property
|
|
2044
|
+
def _raw_f_(self) -> Callable[..., Any]:
|
|
2017
2045
|
assert self._raw_f is not None
|
|
2018
2046
|
return self._raw_f
|
|
2019
2047
|
|
|
@@ -209,7 +209,7 @@ class _Object:
|
|
|
209
209
|
name: str | None = None,
|
|
210
210
|
*,
|
|
211
211
|
load_context_overrides: LoadContext,
|
|
212
|
-
):
|
|
212
|
+
) -> Self:
|
|
213
213
|
# TODO(erikbern): flip the order of the two first arguments
|
|
214
214
|
obj = _Object.__new__(cls)
|
|
215
215
|
obj._init(
|
|
@@ -313,7 +313,10 @@ class _Object:
|
|
|
313
313
|
@property
|
|
314
314
|
def deps(self) -> Callable[..., Sequence["_Object"]]:
|
|
315
315
|
"""mdmd:hidden"""
|
|
316
|
+
return self._deps_
|
|
316
317
|
|
|
318
|
+
@property
|
|
319
|
+
def _deps_(self) -> Callable[..., Sequence["_Object"]]:
|
|
317
320
|
def default_deps(*args, **kwargs) -> Sequence["_Object"]:
|
|
318
321
|
return []
|
|
319
322
|
|
|
@@ -275,6 +275,11 @@ class _App:
|
|
|
275
275
|
|
|
276
276
|
@property
|
|
277
277
|
def is_interactive(self) -> bool:
|
|
278
|
+
"""mdmd:hidden"""
|
|
279
|
+
return self._is_interactive_
|
|
280
|
+
|
|
281
|
+
@property
|
|
282
|
+
def _is_interactive_(self) -> bool:
|
|
278
283
|
"""mdmd:hidden
|
|
279
284
|
Whether the current app for the app is running in interactive mode.
|
|
280
285
|
|
|
@@ -305,6 +310,11 @@ class _App:
|
|
|
305
310
|
"""
|
|
306
311
|
return self._description
|
|
307
312
|
|
|
313
|
+
@description.setter
|
|
314
|
+
def description(self, value):
|
|
315
|
+
"""mdmd:hidden"""
|
|
316
|
+
self._description = value
|
|
317
|
+
|
|
308
318
|
@staticmethod
|
|
309
319
|
async def lookup(
|
|
310
320
|
name: str,
|
|
@@ -379,7 +389,7 @@ class _App:
|
|
|
379
389
|
|
|
380
390
|
Note: we don't recommend using the method and may deprecate it in the future.
|
|
381
391
|
"""
|
|
382
|
-
self.
|
|
392
|
+
self.description = description
|
|
383
393
|
|
|
384
394
|
def _validate_blueprint_value(self, key: str, value: Any):
|
|
385
395
|
if not isinstance(value, _Object):
|
|
@@ -205,6 +205,11 @@ class _App:
|
|
|
205
205
|
|
|
206
206
|
@property
|
|
207
207
|
def is_interactive(self) -> bool:
|
|
208
|
+
"""mdmd:hidden"""
|
|
209
|
+
...
|
|
210
|
+
|
|
211
|
+
@property
|
|
212
|
+
def _is_interactive_(self) -> bool:
|
|
208
213
|
"""mdmd:hidden
|
|
209
214
|
Whether the current app for the app is running in interactive mode.
|
|
210
215
|
|
|
@@ -230,6 +235,11 @@ class _App:
|
|
|
230
235
|
"""
|
|
231
236
|
...
|
|
232
237
|
|
|
238
|
+
@description.setter
|
|
239
|
+
def description(self, value):
|
|
240
|
+
"""mdmd:hidden"""
|
|
241
|
+
...
|
|
242
|
+
|
|
233
243
|
@staticmethod
|
|
234
244
|
async def lookup(
|
|
235
245
|
name: str,
|
|
@@ -1023,6 +1033,11 @@ class App:
|
|
|
1023
1033
|
|
|
1024
1034
|
@property
|
|
1025
1035
|
def is_interactive(self) -> bool:
|
|
1036
|
+
"""mdmd:hidden"""
|
|
1037
|
+
...
|
|
1038
|
+
|
|
1039
|
+
@property
|
|
1040
|
+
def _is_interactive_(self) -> bool:
|
|
1026
1041
|
"""mdmd:hidden
|
|
1027
1042
|
Whether the current app for the app is running in interactive mode.
|
|
1028
1043
|
|
|
@@ -1048,6 +1063,11 @@ class App:
|
|
|
1048
1063
|
"""
|
|
1049
1064
|
...
|
|
1050
1065
|
|
|
1066
|
+
@description.setter
|
|
1067
|
+
def description(self, value):
|
|
1068
|
+
"""mdmd:hidden"""
|
|
1069
|
+
...
|
|
1070
|
+
|
|
1051
1071
|
class __lookup_spec(typing_extensions.Protocol):
|
|
1052
1072
|
def __call__(
|
|
1053
1073
|
self,
|
|
@@ -38,7 +38,7 @@ class _Client:
|
|
|
38
38
|
server_url: str,
|
|
39
39
|
client_type: int,
|
|
40
40
|
credentials: typing.Optional[tuple[str, str]],
|
|
41
|
-
version: str = "1.5.5.
|
|
41
|
+
version: str = "1.5.5.dev15",
|
|
42
42
|
):
|
|
43
43
|
"""mdmd:hidden
|
|
44
44
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -209,7 +209,7 @@ class Client:
|
|
|
209
209
|
server_url: str,
|
|
210
210
|
client_type: int,
|
|
211
211
|
credentials: typing.Optional[tuple[str, str]],
|
|
212
|
-
version: str = "1.5.5.
|
|
212
|
+
version: str = "1.5.5.dev15",
|
|
213
213
|
):
|
|
214
214
|
"""mdmd:hidden
|
|
215
215
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -563,7 +563,7 @@ class _Cls(_Object, type_prefix="cs"):
|
|
|
563
563
|
self._method_metadata = method_metadata
|
|
564
564
|
|
|
565
565
|
@staticmethod
|
|
566
|
-
def
|
|
566
|
+
def _validate_construction_mechanism(user_cls):
|
|
567
567
|
"""mdmd:hidden"""
|
|
568
568
|
params = {k: v for k, v in user_cls.__dict__.items() if is_parameter(v)}
|
|
569
569
|
has_custom_constructor = user_cls.__init__ != object.__init__
|
|
@@ -600,8 +600,11 @@ More information on class parameterization can be found here: https://modal.com/
|
|
|
600
600
|
except TypeError as exc:
|
|
601
601
|
raise InvalidError(f"Class parameter '{k}': {exc}")
|
|
602
602
|
|
|
603
|
+
validate_construction_mechanism = _validate_construction_mechanism
|
|
604
|
+
"""mdmd:hidden"""
|
|
605
|
+
|
|
603
606
|
@staticmethod
|
|
604
|
-
def
|
|
607
|
+
def _from_local(user_cls, app: "modal.app._App", class_service_function: _Function) -> "_Cls":
|
|
605
608
|
"""mdmd:hidden"""
|
|
606
609
|
# validate signature
|
|
607
610
|
_Cls.validate_construction_mechanism(user_cls)
|
|
@@ -642,6 +645,9 @@ More information on class parameterization can be found here: https://modal.com/
|
|
|
642
645
|
cls._name = user_cls.__name__
|
|
643
646
|
return cls
|
|
644
647
|
|
|
648
|
+
from_local = _from_local
|
|
649
|
+
"""mdmd:hidden"""
|
|
650
|
+
|
|
645
651
|
@classmethod
|
|
646
652
|
def from_name(
|
|
647
653
|
cls: type["_Cls"],
|
|
@@ -288,11 +288,21 @@ class _Cls(modal._object._Object):
|
|
|
288
288
|
...
|
|
289
289
|
|
|
290
290
|
def _hydrate_metadata(self, metadata: google.protobuf.message.Message): ...
|
|
291
|
+
@staticmethod
|
|
292
|
+
def _validate_construction_mechanism(user_cls):
|
|
293
|
+
"""mdmd:hidden"""
|
|
294
|
+
...
|
|
295
|
+
|
|
291
296
|
@staticmethod
|
|
292
297
|
def validate_construction_mechanism(user_cls):
|
|
293
298
|
"""mdmd:hidden"""
|
|
294
299
|
...
|
|
295
300
|
|
|
301
|
+
@staticmethod
|
|
302
|
+
def _from_local(user_cls, app: modal.app._App, class_service_function: modal._functions._Function) -> _Cls:
|
|
303
|
+
"""mdmd:hidden"""
|
|
304
|
+
...
|
|
305
|
+
|
|
296
306
|
@staticmethod
|
|
297
307
|
def from_local(user_cls, app: modal.app._App, class_service_function: modal._functions._Function) -> _Cls:
|
|
298
308
|
"""mdmd:hidden"""
|
|
@@ -504,11 +514,21 @@ class Cls(modal.object.Object):
|
|
|
504
514
|
_experimental_get_flash_urls: ___experimental_get_flash_urls_spec
|
|
505
515
|
|
|
506
516
|
def _hydrate_metadata(self, metadata: google.protobuf.message.Message): ...
|
|
517
|
+
@staticmethod
|
|
518
|
+
def _validate_construction_mechanism(user_cls):
|
|
519
|
+
"""mdmd:hidden"""
|
|
520
|
+
...
|
|
521
|
+
|
|
507
522
|
@staticmethod
|
|
508
523
|
def validate_construction_mechanism(user_cls):
|
|
509
524
|
"""mdmd:hidden"""
|
|
510
525
|
...
|
|
511
526
|
|
|
527
|
+
@staticmethod
|
|
528
|
+
def _from_local(user_cls, app: modal.app.App, class_service_function: modal.functions.Function) -> Cls:
|
|
529
|
+
"""mdmd:hidden"""
|
|
530
|
+
...
|
|
531
|
+
|
|
512
532
|
@staticmethod
|
|
513
533
|
def from_local(user_cls, app: modal.app.App, class_service_function: modal.functions.Function) -> Cls:
|
|
514
534
|
"""mdmd:hidden"""
|
|
@@ -87,6 +87,66 @@ class Function(
|
|
|
87
87
|
"""
|
|
88
88
|
...
|
|
89
89
|
|
|
90
|
+
@staticmethod
|
|
91
|
+
def _from_local(
|
|
92
|
+
info: modal._utils.function_utils.FunctionInfo,
|
|
93
|
+
app: typing.Optional[modal.app.App],
|
|
94
|
+
image: modal.image.Image,
|
|
95
|
+
env: typing.Optional[dict[str, typing.Optional[str]]] = None,
|
|
96
|
+
secrets: typing.Optional[collections.abc.Collection[modal.secret.Secret]] = None,
|
|
97
|
+
schedule: typing.Optional[modal.schedule.Schedule] = None,
|
|
98
|
+
is_generator: bool = False,
|
|
99
|
+
gpu: typing.Union[str, list[str], None] = None,
|
|
100
|
+
network_file_systems: dict[
|
|
101
|
+
typing.Union[str, pathlib.PurePosixPath], modal.network_file_system.NetworkFileSystem
|
|
102
|
+
] = {},
|
|
103
|
+
volumes: dict[
|
|
104
|
+
typing.Union[str, pathlib.PurePosixPath],
|
|
105
|
+
typing.Union[modal.volume.Volume, modal.cloud_bucket_mount.CloudBucketMount],
|
|
106
|
+
] = {},
|
|
107
|
+
webhook_config: typing.Optional[modal_proto.api_pb2.WebhookConfig] = None,
|
|
108
|
+
cpu: typing.Union[float, tuple[float, float], None] = None,
|
|
109
|
+
memory: typing.Union[int, tuple[int, int], None] = None,
|
|
110
|
+
proxy: typing.Optional[modal.proxy.Proxy] = None,
|
|
111
|
+
retries: typing.Union[int, modal.retries.Retries, None] = None,
|
|
112
|
+
timeout: int = 300,
|
|
113
|
+
startup_timeout: typing.Optional[int] = None,
|
|
114
|
+
min_containers: typing.Optional[int] = None,
|
|
115
|
+
max_containers: typing.Optional[int] = None,
|
|
116
|
+
buffer_containers: typing.Optional[int] = None,
|
|
117
|
+
scaleup_window: typing.Optional[int] = None,
|
|
118
|
+
scaledown_window: typing.Optional[int] = None,
|
|
119
|
+
max_concurrent_inputs: typing.Optional[int] = None,
|
|
120
|
+
target_concurrent_inputs: typing.Optional[float] = None,
|
|
121
|
+
batch_max_size: typing.Optional[int] = None,
|
|
122
|
+
batch_wait_ms: typing.Optional[int] = None,
|
|
123
|
+
cloud: typing.Optional[str] = None,
|
|
124
|
+
region: typing.Union[str, collections.abc.Sequence[str], None] = None,
|
|
125
|
+
routing_region: typing.Optional[str] = None,
|
|
126
|
+
nonpreemptible: bool = False,
|
|
127
|
+
is_builder_function: bool = False,
|
|
128
|
+
is_auto_snapshot: bool = False,
|
|
129
|
+
is_server: bool = False,
|
|
130
|
+
enable_memory_snapshot: bool = False,
|
|
131
|
+
block_network: bool = False,
|
|
132
|
+
restrict_modal_access: bool = False,
|
|
133
|
+
i6pn_enabled: bool = False,
|
|
134
|
+
cluster_size: typing.Optional[int] = None,
|
|
135
|
+
rdma: typing.Optional[bool] = None,
|
|
136
|
+
fabric_size: typing.Optional[int] = None,
|
|
137
|
+
single_use_containers: bool = False,
|
|
138
|
+
ephemeral_disk: typing.Optional[int] = None,
|
|
139
|
+
include_source: bool = True,
|
|
140
|
+
experimental_options: typing.Optional[dict[str, str]] = None,
|
|
141
|
+
restrict_output: bool = False,
|
|
142
|
+
http_config: typing.Optional[modal_proto.api_pb2.HTTPConfig] = None,
|
|
143
|
+
) -> Function:
|
|
144
|
+
"""mdmd:hidden
|
|
145
|
+
|
|
146
|
+
Note: This is not intended to be public API.
|
|
147
|
+
"""
|
|
148
|
+
...
|
|
149
|
+
|
|
90
150
|
@staticmethod
|
|
91
151
|
def from_local(
|
|
92
152
|
info: modal._utils.function_utils.FunctionInfo,
|
|
@@ -336,6 +396,8 @@ class Function(
|
|
|
336
396
|
"""mdmd:hidden"""
|
|
337
397
|
...
|
|
338
398
|
|
|
399
|
+
@property
|
|
400
|
+
def _tag_(self) -> str: ...
|
|
339
401
|
@property
|
|
340
402
|
def app(self) -> modal.app.App:
|
|
341
403
|
"""mdmd:hidden"""
|
|
@@ -351,12 +413,20 @@ class Function(
|
|
|
351
413
|
"""mdmd:hidden"""
|
|
352
414
|
...
|
|
353
415
|
|
|
416
|
+
@property
|
|
417
|
+
def _info_(self) -> modal._utils.function_utils.FunctionInfo: ...
|
|
354
418
|
@property
|
|
355
419
|
def spec(self) -> modal._functions._FunctionSpec:
|
|
356
420
|
"""mdmd:hidden"""
|
|
357
421
|
...
|
|
358
422
|
|
|
423
|
+
@property
|
|
424
|
+
def _spec_(self) -> modal._functions._FunctionSpec: ...
|
|
359
425
|
def _is_web_endpoint(self) -> bool: ...
|
|
426
|
+
def _get_build_def(self) -> str:
|
|
427
|
+
"""mdmd:hidden"""
|
|
428
|
+
...
|
|
429
|
+
|
|
360
430
|
def get_build_def(self) -> str:
|
|
361
431
|
"""mdmd:hidden"""
|
|
362
432
|
...
|
|
@@ -487,6 +557,9 @@ class Function(
|
|
|
487
557
|
"""mdmd:hidden"""
|
|
488
558
|
...
|
|
489
559
|
|
|
560
|
+
@property
|
|
561
|
+
def _is_generator_(self) -> bool: ...
|
|
562
|
+
|
|
490
563
|
class ___map_spec(typing_extensions.Protocol):
|
|
491
564
|
def __call__(
|
|
492
565
|
self, /, input_queue: modal.parallel_map.SynchronizedQueue, order_outputs: bool, return_exceptions: bool
|
|
@@ -705,6 +778,9 @@ class Function(
|
|
|
705
778
|
"""
|
|
706
779
|
...
|
|
707
780
|
|
|
781
|
+
@property
|
|
782
|
+
def _raw_f_(self) -> collections.abc.Callable[..., typing.Any]: ...
|
|
783
|
+
|
|
708
784
|
class __get_current_stats_spec(typing_extensions.Protocol):
|
|
709
785
|
def __call__(self, /) -> modal.types.FunctionStats:
|
|
710
786
|
"""Return a `FunctionStats` object describing the current function's queue and runner counts.
|
|
@@ -86,30 +86,18 @@ class Object:
|
|
|
86
86
|
def _get_metadata(self) -> typing.Optional[google.protobuf.message.Message]: ...
|
|
87
87
|
def _validate_is_hydrated(self): ...
|
|
88
88
|
|
|
89
|
-
class ___from_loader_spec(typing_extensions.Protocol):
|
|
89
|
+
class ___from_loader_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
90
90
|
def __call__(
|
|
91
91
|
self,
|
|
92
92
|
/,
|
|
93
93
|
load: collections.abc.Callable[
|
|
94
|
-
[
|
|
95
|
-
typing_extensions.Self,
|
|
96
|
-
modal._resolver.Resolver,
|
|
97
|
-
modal._load_context.LoadContext,
|
|
98
|
-
typing.Optional[str],
|
|
99
|
-
],
|
|
100
|
-
None,
|
|
94
|
+
[SUPERSELF, modal._resolver.Resolver, modal._load_context.LoadContext, typing.Optional[str]], None
|
|
101
95
|
],
|
|
102
96
|
rep: str,
|
|
103
97
|
skip_reload: bool = False,
|
|
104
98
|
preload: typing.Optional[
|
|
105
99
|
collections.abc.Callable[
|
|
106
|
-
[
|
|
107
|
-
typing_extensions.Self,
|
|
108
|
-
modal._resolver.Resolver,
|
|
109
|
-
modal._load_context.LoadContext,
|
|
110
|
-
typing.Optional[str],
|
|
111
|
-
],
|
|
112
|
-
None,
|
|
100
|
+
[SUPERSELF, modal._resolver.Resolver, modal._load_context.LoadContext, typing.Optional[str]], None
|
|
113
101
|
]
|
|
114
102
|
] = None,
|
|
115
103
|
hydrate_lazily: bool = False,
|
|
@@ -118,29 +106,19 @@ class Object:
|
|
|
118
106
|
name: typing.Optional[str] = None,
|
|
119
107
|
*,
|
|
120
108
|
load_context_overrides: modal._load_context.LoadContext,
|
|
121
|
-
): ...
|
|
109
|
+
) -> SUPERSELF: ...
|
|
122
110
|
def aio(
|
|
123
111
|
self,
|
|
124
112
|
/,
|
|
125
113
|
load: collections.abc.Callable[
|
|
126
|
-
[
|
|
127
|
-
typing_extensions.Self,
|
|
128
|
-
modal._resolver.Resolver,
|
|
129
|
-
modal._load_context.LoadContext,
|
|
130
|
-
typing.Optional[str],
|
|
131
|
-
],
|
|
114
|
+
[SUPERSELF, modal._resolver.Resolver, modal._load_context.LoadContext, typing.Optional[str]],
|
|
132
115
|
collections.abc.Awaitable[None],
|
|
133
116
|
],
|
|
134
117
|
rep: str,
|
|
135
118
|
skip_reload: bool = False,
|
|
136
119
|
preload: typing.Optional[
|
|
137
120
|
collections.abc.Callable[
|
|
138
|
-
[
|
|
139
|
-
typing_extensions.Self,
|
|
140
|
-
modal._resolver.Resolver,
|
|
141
|
-
modal._load_context.LoadContext,
|
|
142
|
-
typing.Optional[str],
|
|
143
|
-
],
|
|
121
|
+
[SUPERSELF, modal._resolver.Resolver, modal._load_context.LoadContext, typing.Optional[str]],
|
|
144
122
|
collections.abc.Awaitable[None],
|
|
145
123
|
]
|
|
146
124
|
] = None,
|
|
@@ -152,9 +130,9 @@ class Object:
|
|
|
152
130
|
name: typing.Optional[str] = None,
|
|
153
131
|
*,
|
|
154
132
|
load_context_overrides: modal._load_context.LoadContext,
|
|
155
|
-
): ...
|
|
133
|
+
) -> SUPERSELF: ...
|
|
156
134
|
|
|
157
|
-
_from_loader: typing.ClassVar[___from_loader_spec]
|
|
135
|
+
_from_loader: typing.ClassVar[___from_loader_spec[typing_extensions.Self]]
|
|
158
136
|
|
|
159
137
|
@staticmethod
|
|
160
138
|
def _get_type_from_id(object_id: str) -> type[Object]: ...
|
|
@@ -209,6 +187,9 @@ class Object:
|
|
|
209
187
|
"""mdmd:hidden"""
|
|
210
188
|
...
|
|
211
189
|
|
|
190
|
+
@property
|
|
191
|
+
def _deps_(self) -> collections.abc.Callable[..., collections.abc.Sequence[Object]]: ...
|
|
192
|
+
|
|
212
193
|
class __hydrate_spec(typing_extensions.Protocol[SUPERSELF]):
|
|
213
194
|
def __call__(self, /, client: typing.Optional[modal.client.Client] = None) -> SUPERSELF:
|
|
214
195
|
"""Synchronize the local object with its identity on the Modal server.
|
|
@@ -1473,9 +1473,14 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
1473
1473
|
|
|
1474
1474
|
while True:
|
|
1475
1475
|
request_timeout = 10.0 if deadline is None else min(10.0, max(0.0, deadline - time.monotonic()))
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1476
|
+
req = api_pb2.SandboxGetExitSnapshotRequest(sandbox_id=self.object_id, timeout=request_timeout)
|
|
1477
|
+
resp: api_pb2.SandboxGetExitSnapshotResponse
|
|
1478
|
+
if self._is_v2:
|
|
1479
|
+
assert client._auth_token_manager
|
|
1480
|
+
auth_token = await client._auth_token_manager.get_token()
|
|
1481
|
+
resp = await client.stub.SandboxGetExitSnapshotV2(req, metadata=[("x-modal-auth-token", auth_token)])
|
|
1482
|
+
else:
|
|
1483
|
+
resp = await client.stub.SandboxGetExitSnapshot(req)
|
|
1479
1484
|
outcome = resp.WhichOneof("outcome")
|
|
1480
1485
|
|
|
1481
1486
|
if outcome == "success":
|
|
@@ -17,7 +17,7 @@ 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\"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\"C\n\x1aSandboxStdioReadV2Response\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x17\n\x0fstarting_offset\x18\x02 \x01(\x04\"C\n\x1fSandboxWaitUntilReadyTcrRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"4\n SandboxWaitUntilReadyTcrResponse\x12\x10\n\x08ready_at\x18\x01 \x01(\x01\"\xbd\x03\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\x12\x30\n\rvolume_mounts\x18\t \x03(\x0b\x32\x19.modal.client.VolumeMount\x12\x38\n\x0enetwork_access\x18\n \x01(\x0b\x32\x1b.modal.client.NetworkAccessH\x00\x88\x01\x01\x12,\n\x08pty_info\x18\x0b \x01(\x0b\x32\x15.modal.client.PTYInfoH\x01\x88\x01\x01\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x11\n\x0f_network_accessB\x0b\n\t_pty_info\"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\">\n\x1aTaskExecStdinStatusRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"H\n\x1bTaskExecStdinStatusResponse\x12\x19\n\x11num_bytes_written\x18\x01 \x01(\x04\x12\x0e\n\x06\x63losed\x18\x02 \x01(\x08\"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\"\x1d\n\x1bTaskExecStdinWriteStreamEnd\"\xce\x01\n\x1fTaskExecStdinWriteStreamRequest\x12I\n\x05start\x18\x01 \x01(\x0b\x32\x38.modal.task_command_router.TaskExecStdinWriteStreamStartH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x12\x45\n\x03\x65nd\x18\x03 \x01(\x0b\x32\x36.modal.task_command_router.TaskExecStdinWriteStreamEndH\x00\x42\t\n\x07payload\"\"\n TaskExecStdinWriteStreamResponse\"Q\n\x1dTaskExecStdinWriteStreamStart\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\"\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\"\xa0\x01\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\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x42#\n!_customer_supplied_encryption_key\"A\n\x18TaskReloadVolumesRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\"\x1b\n\x19TaskReloadVolumesResponse\"c\n\x1bTaskSetNetworkAccessRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x33\n\x0enetwork_access\x18\x02 \x01(\x0b\x32\x1b.modal.client.NetworkAccess\"\x1e\n\x1cTaskSetNetworkAccessResponse\"\xd0\x01\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\x12\x18\n\x0bttl_seconds\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"1\n\x1dTaskSnapshotDirectoryResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"\xc3\x01\n\x1dTaskSnapshotFilesystemRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x13\n\x0bsnapshot_id\x18\x02 \x01(\t\x12\x18\n\x0bttl_seconds\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"2\n\x1eTaskSnapshotFilesystemResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"E\n\x19TaskSnapshotMemoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x17\n\x0fidempotency_key\x18\x02 \x01(\t\"1\n\x1aTaskSnapshotMemoryResponse\x12\x13\n\x0bsnapshot_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\xba\x16\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\x90\x01\n\x15SandboxWaitUntilReady\x12:.modal.task_command_router.SandboxWaitUntilReadyTcrRequest\x1a;.modal.task_command_router.SandboxWaitUntilReadyTcrResponse\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\x84\x01\n\x13TaskExecStdinStatus\x12\x35.modal.task_command_router.TaskExecStdinStatusRequest\x1a\x36.modal.task_command_router.TaskExecStdinStatusResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x95\x01\n\x18TaskExecStdinWriteStream\x12:.modal.task_command_router.TaskExecStdinWriteStreamRequest\x1a;.modal.task_command_router.TaskExecStdinWriteStreamResponse(\x01\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~\n\x11TaskReloadVolumes\x12\x33.modal.task_command_router.TaskReloadVolumesRequest\x1a\x34.modal.task_command_router.TaskReloadVolumesResponse\x12\x87\x01\n\x14TaskSetNetworkAccess\x12\x36.modal.task_command_router.TaskSetNetworkAccessRequest\x1a\x37.modal.task_command_router.TaskSetNetworkAccessResponse\x12\x8a\x01\n\x15TaskSnapshotDirectory\x12\x37.modal.task_command_router.TaskSnapshotDirectoryRequest\x1a\x38.modal.task_command_router.TaskSnapshotDirectoryResponse\x12\x8d\x01\n\x16TaskSnapshotFilesystem\x12\x38.modal.task_command_router.TaskSnapshotFilesystemRequest\x1a\x39.modal.task_command_router.TaskSnapshotFilesystemResponse\x12\x81\x01\n\x12TaskSnapshotMemory\x12\x34.modal.task_command_router.TaskSnapshotMemoryRequest\x1a\x35.modal.task_command_router.TaskSnapshotMemoryResponse\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')
|
|
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\"C\n\x1aSandboxStdioReadV2Response\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x17\n\x0fstarting_offset\x18\x02 \x01(\x04\"C\n\x1fSandboxWaitUntilReadyTcrRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07timeout\x18\x02 \x01(\x02\"4\n SandboxWaitUntilReadyTcrResponse\x12\x10\n\x08ready_at\x18\x01 \x01(\x01\"\xbd\x03\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\x12\x30\n\rvolume_mounts\x18\t \x03(\x0b\x32\x19.modal.client.VolumeMount\x12\x38\n\x0enetwork_access\x18\n \x01(\x0b\x32\x1b.modal.client.NetworkAccessH\x00\x88\x01\x01\x12,\n\x08pty_info\x18\x0b \x01(\x0b\x32\x15.modal.client.PTYInfoH\x01\x88\x01\x01\x1a*\n\x08\x45nvEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x11\n\x0f_network_accessB\x0b\n\t_pty_info\"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\">\n\x1aTaskExecStdinStatusRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x0f\n\x07\x65xec_id\x18\x02 \x01(\t\"H\n\x1bTaskExecStdinStatusResponse\x12\x19\n\x11num_bytes_written\x18\x01 \x01(\x04\x12\x0e\n\x06\x63losed\x18\x02 \x01(\x08\"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\"\x1d\n\x1bTaskExecStdinWriteStreamEnd\"\xce\x01\n\x1fTaskExecStdinWriteStreamRequest\x12I\n\x05start\x18\x01 \x01(\x0b\x32\x38.modal.task_command_router.TaskExecStdinWriteStreamStartH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x0cH\x00\x12\x45\n\x03\x65nd\x18\x03 \x01(\x0b\x32\x36.modal.task_command_router.TaskExecStdinWriteStreamEndH\x00\x42\t\n\x07payload\"\"\n TaskExecStdinWriteStreamResponse\"Q\n\x1dTaskExecStdinWriteStreamStart\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\"\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\"\xa0\x01\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\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x00\x88\x01\x01\x42#\n!_customer_supplied_encryption_key\"A\n\x18TaskReloadVolumesRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x14\n\x0c\x63ontainer_id\x18\x02 \x01(\t\"\x1b\n\x19TaskReloadVolumesResponse\"c\n\x1bTaskSetNetworkAccessRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x33\n\x0enetwork_access\x18\x02 \x01(\x0b\x32\x1b.modal.client.NetworkAccess\"\x1e\n\x1cTaskSetNetworkAccessResponse\"\xd0\x01\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\x12\x18\n\x0bttl_seconds\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x05 \x01(\x0cH\x01\x88\x01\x01\x42\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"1\n\x1dTaskSnapshotDirectoryResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"\xd9\x01\n\x1dTaskSnapshotFilesystemRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x13\n\x0bsnapshot_id\x18\x02 \x01(\t\x12\x18\n\x0bttl_seconds\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12-\n customer_supplied_encryption_key\x18\x04 \x01(\x0cH\x01\x88\x01\x01\x12\x14\n\x0c\x63ontainer_id\x18\x05 \x01(\tB\x0e\n\x0c_ttl_secondsB#\n!_customer_supplied_encryption_key\"2\n\x1eTaskSnapshotFilesystemResponse\x12\x10\n\x08image_id\x18\x01 \x01(\t\"E\n\x19TaskSnapshotMemoryRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\t\x12\x17\n\x0fidempotency_key\x18\x02 \x01(\t\"1\n\x1aTaskSnapshotMemoryResponse\x12\x13\n\x0bsnapshot_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\xba\x16\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\x90\x01\n\x15SandboxWaitUntilReady\x12:.modal.task_command_router.SandboxWaitUntilReadyTcrRequest\x1a;.modal.task_command_router.SandboxWaitUntilReadyTcrResponse\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\x84\x01\n\x13TaskExecStdinStatus\x12\x35.modal.task_command_router.TaskExecStdinStatusRequest\x1a\x36.modal.task_command_router.TaskExecStdinStatusResponse\x12\x81\x01\n\x12TaskExecStdinWrite\x12\x34.modal.task_command_router.TaskExecStdinWriteRequest\x1a\x35.modal.task_command_router.TaskExecStdinWriteResponse\x12\x95\x01\n\x18TaskExecStdinWriteStream\x12:.modal.task_command_router.TaskExecStdinWriteStreamRequest\x1a;.modal.task_command_router.TaskExecStdinWriteStreamResponse(\x01\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~\n\x11TaskReloadVolumes\x12\x33.modal.task_command_router.TaskReloadVolumesRequest\x1a\x34.modal.task_command_router.TaskReloadVolumesResponse\x12\x87\x01\n\x14TaskSetNetworkAccess\x12\x36.modal.task_command_router.TaskSetNetworkAccessRequest\x1a\x37.modal.task_command_router.TaskSetNetworkAccessResponse\x12\x8a\x01\n\x15TaskSnapshotDirectory\x12\x37.modal.task_command_router.TaskSnapshotDirectoryRequest\x1a\x38.modal.task_command_router.TaskSnapshotDirectoryResponse\x12\x8d\x01\n\x16TaskSnapshotFilesystem\x12\x38.modal.task_command_router.TaskSnapshotFilesystemRequest\x1a\x39.modal.task_command_router.TaskSnapshotFilesystemResponse\x12\x81\x01\n\x12TaskSnapshotMemory\x12\x34.modal.task_command_router.TaskSnapshotMemoryRequest\x1a\x35.modal.task_command_router.TaskSnapshotMemoryResponse\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
22
|
_SANDBOXSTDIOFILEDESCRIPTOR = DESCRIPTOR.enum_types_by_name['SandboxStdioFileDescriptor']
|
|
23
23
|
SandboxStdioFileDescriptor = enum_type_wrapper.EnumTypeWrapper(_SANDBOXSTDIOFILEDESCRIPTOR)
|
|
@@ -425,14 +425,14 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
425
425
|
_TASKCONTAINERCREATEREQUEST_ENVENTRY._serialized_options = b'8\001'
|
|
426
426
|
_TASKEXECSTARTREQUEST_ENVENTRY._options = None
|
|
427
427
|
_TASKEXECSTARTREQUEST_ENVENTRY._serialized_options = b'8\001'
|
|
428
|
-
_SANDBOXSTDIOFILEDESCRIPTOR._serialized_start=
|
|
429
|
-
_SANDBOXSTDIOFILEDESCRIPTOR._serialized_end=
|
|
430
|
-
_TASKEXECSTDERRCONFIG._serialized_start=
|
|
431
|
-
_TASKEXECSTDERRCONFIG._serialized_end=
|
|
432
|
-
_TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=
|
|
433
|
-
_TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=
|
|
434
|
-
_TASKEXECSTDOUTCONFIG._serialized_start=
|
|
435
|
-
_TASKEXECSTDOUTCONFIG._serialized_end=
|
|
428
|
+
_SANDBOXSTDIOFILEDESCRIPTOR._serialized_start=4623
|
|
429
|
+
_SANDBOXSTDIOFILEDESCRIPTOR._serialized_end=4735
|
|
430
|
+
_TASKEXECSTDERRCONFIG._serialized_start=4738
|
|
431
|
+
_TASKEXECSTDERRCONFIG._serialized_end=4867
|
|
432
|
+
_TASKEXECSTDIOFILEDESCRIPTOR._serialized_start=4869
|
|
433
|
+
_TASKEXECSTDIOFILEDESCRIPTOR._serialized_end=4986
|
|
434
|
+
_TASKEXECSTDOUTCONFIG._serialized_start=4988
|
|
435
|
+
_TASKEXECSTDOUTCONFIG._serialized_end=5081
|
|
436
436
|
_SANDBOXSTDINWRITEV2REQUEST._serialized_start=120
|
|
437
437
|
_SANDBOXSTDINWRITEV2REQUEST._serialized_end=208
|
|
438
438
|
_SANDBOXSTDINWRITEV2RESPONSE._serialized_start=210
|
|
@@ -518,15 +518,15 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
518
518
|
_TASKSNAPSHOTDIRECTORYRESPONSE._serialized_start=4116
|
|
519
519
|
_TASKSNAPSHOTDIRECTORYRESPONSE._serialized_end=4165
|
|
520
520
|
_TASKSNAPSHOTFILESYSTEMREQUEST._serialized_start=4168
|
|
521
|
-
_TASKSNAPSHOTFILESYSTEMREQUEST._serialized_end=
|
|
522
|
-
_TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_start=
|
|
523
|
-
_TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_end=
|
|
524
|
-
_TASKSNAPSHOTMEMORYREQUEST._serialized_start=
|
|
525
|
-
_TASKSNAPSHOTMEMORYREQUEST._serialized_end=
|
|
526
|
-
_TASKSNAPSHOTMEMORYRESPONSE._serialized_start=
|
|
527
|
-
_TASKSNAPSHOTMEMORYRESPONSE._serialized_end=
|
|
528
|
-
_TASKUNMOUNTDIRECTORYREQUEST._serialized_start=
|
|
529
|
-
_TASKUNMOUNTDIRECTORYREQUEST._serialized_end=
|
|
530
|
-
_TASKCOMMANDROUTER._serialized_start=
|
|
531
|
-
_TASKCOMMANDROUTER._serialized_end=
|
|
521
|
+
_TASKSNAPSHOTFILESYSTEMREQUEST._serialized_end=4385
|
|
522
|
+
_TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_start=4387
|
|
523
|
+
_TASKSNAPSHOTFILESYSTEMRESPONSE._serialized_end=4437
|
|
524
|
+
_TASKSNAPSHOTMEMORYREQUEST._serialized_start=4439
|
|
525
|
+
_TASKSNAPSHOTMEMORYREQUEST._serialized_end=4508
|
|
526
|
+
_TASKSNAPSHOTMEMORYRESPONSE._serialized_start=4510
|
|
527
|
+
_TASKSNAPSHOTMEMORYRESPONSE._serialized_end=4559
|
|
528
|
+
_TASKUNMOUNTDIRECTORYREQUEST._serialized_start=4561
|
|
529
|
+
_TASKUNMOUNTDIRECTORYREQUEST._serialized_end=4621
|
|
530
|
+
_TASKCOMMANDROUTER._serialized_start=5084
|
|
531
|
+
_TASKCOMMANDROUTER._serialized_end=7958
|
|
532
532
|
# @@protoc_insertion_point(module_scope)
|