modal 1.5.5.dev14__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.dev14 → modal-1.5.5.dev15}/PKG-INFO +1 -1
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_functions.py +31 -3
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_object.py +4 -1
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/app.py +11 -1
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/app.pyi +20 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/client.pyi +2 -2
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cls.py +8 -2
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cls.pyi +20 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/functions.pyi +76 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/object.pyi +11 -30
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/sandbox.py +8 -3
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_version/__init__.py +1 -1
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/LICENSE +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/README.md +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/__main__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_billing.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_clustered_functions.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_clustered_functions.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_container_entrypoint.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_environments.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_function_variants.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_grpc_client.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_image.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_ipython.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_load_context.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_location.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_logs.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_logs_manager.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_logs_manager.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_output/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_output/manager.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_output/pty.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_output/rich.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_output/status.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_partial_function.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_resolver.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_resources.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/asgi.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/execution_context.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/telemetry.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_serialization.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_server.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_supports_logs.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_traceback.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_tunnel.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_tunnel.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_type_manager.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/app_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/async_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/blob_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/browser_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/curl_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/deprecation.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/display_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/docker_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/function_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/git_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/hash_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/http_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/logger.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/mount_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/name_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/package_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/proxy_support.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/shell_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_utils/time_utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_vendor/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_vendor/tblib.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_vendor/version.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_watcher.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/_workspace.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/billing.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/billing.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/2023.12.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/2024.04.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/2024.10.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/2025.06.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/README.md +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/builder/base-images.json +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/call_graph.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/_download.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/_help.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/_traceback.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/app.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/billing.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/bootstrap.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/changelog.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/cluster.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/config.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/container.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/curl.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/dashboard.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/dict.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/endpoint.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/entry_point.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/environment.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/image.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/import_refs.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/launch.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/logo.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/network_file_system.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/profile.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/programs/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/programs/vscode.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/queues.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/run.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/secret.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/selector.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/shell.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/skills.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/token.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/utils.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/volume.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cli/workspace.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/client.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/config.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/container_process.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/container_process.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/dict.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/dict.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/environments.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/environments.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/exception.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/experimental/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/experimental/flash.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/experimental/flash.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/experimental/ipython.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/file_io.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/file_io.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/file_pattern_matcher.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/functions.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/image.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/image.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/io_streams.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/io_streams.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/mount.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/mount.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/network_file_system.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/network_file_system.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/object.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/output.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/parallel_map.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/parallel_map.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/partial_function.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/partial_function.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/proxy.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/proxy.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/py.typed +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/queue.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/queue.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/retries.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/runner.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/runner.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/running_app.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/sandbox.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/sandbox_fs.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/sandbox_fs.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/schedule.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/scheduler_placement.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/secret.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/secret.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/server.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/server.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/serving.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/serving.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/snapshot.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/snapshot.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/stream_type.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/token_flow.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/token_flow.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/types.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/volume.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/volume.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/workspace.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal/workspace.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal.egg-info/requires.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal.egg-info/top_level.txt +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/mdmd/types.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_docs/reference_intro.md +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/__init__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/api_grpc.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/api_pb2.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/py.typed +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/modal_version/__main__.py +0 -0
- {modal-1.5.5.dev14 → modal-1.5.5.dev15}/pyproject.toml +0 -0
- {modal-1.5.5.dev14 → 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":
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|