modal 1.5.3.dev8__tar.gz → 1.5.3.dev10__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.3.dev8 → modal-1.5.3.dev10}/PKG-INFO +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_environments.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_function_variants.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_functions.py +4 -4
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_partial_function.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_server.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/task_command_router_client.py +5 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_workspace.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/app.py +2 -2
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/app.pyi +4 -4
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/billing.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/config.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/environment.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/shell.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/client.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/client.pyi +2 -2
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cloud_bucket_mount.py +15 -3
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cloud_bucket_mount.pyi +2 -2
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cls.py +2 -2
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cls.pyi +4 -4
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/environments.pyi +2 -2
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/exception.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/functions.pyi +6 -6
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/partial_function.pyi +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/sandbox.py +95 -36
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/sandbox.pyi +74 -18
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/schedule.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/secret.py +9 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/secret.pyi +18 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/server.pyi +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/snapshot.py +17 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/snapshot.pyi +22 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/workspace.pyi +2 -2
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal.egg-info/SOURCES.txt +1 -0
- modal-1.5.3.dev10/modal_docs/gen_reference_docs.py +167 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/mdmd/mdmd.py +46 -42
- modal-1.5.3.dev10/modal_docs/reference_intro.md +115 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/api_pb2.py +396 -386
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/api_pb2.pyi +20 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_version/__init__.py +1 -1
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/pyproject.toml +1 -0
- modal-1.5.3.dev8/modal_docs/gen_reference_docs.py +0 -360
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/LICENSE +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/README.md +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/__main__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_billing.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_clustered_functions.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_clustered_functions.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_container_entrypoint.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_grpc_client.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_image.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_ipython.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_load_context.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_location.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_logs.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_object.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_output/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_output/manager.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_output/pty.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_output/rich.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_output/status.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_resolver.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_resources.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/asgi.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/execution_context.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/telemetry.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_serialization.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_traceback.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_tunnel.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_tunnel.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_type_manager.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/app_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/async_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/blob_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/browser_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/curl_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/deprecation.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/docker_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/function_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/git_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/hash_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/http_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/logger.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/mount_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/name_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/package_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/proxy_support.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/shell_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_utils/time_utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_vendor/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_vendor/tblib.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_vendor/version.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/_watcher.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/billing.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/billing.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/2023.12.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/2024.04.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/2024.10.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/2025.06.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/README.md +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/builder/base-images.json +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/call_graph.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/_download.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/_help.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/_traceback.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/app.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/bootstrap.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/changelog.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/cluster.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/container.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/curl.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/dashboard.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/dict.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/endpoint.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/entry_point.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/image.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/import_refs.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/launch.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/logo.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/network_file_system.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/profile.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/programs/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/programs/vscode.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/queues.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/run.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/secret.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/selector.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/skills.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/token.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/utils.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/volume.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/cli/workspace.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/config.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/container_process.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/container_process.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/dict.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/dict.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/environments.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/experimental/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/experimental/flash.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/experimental/flash.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/experimental/ipython.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/file_io.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/file_io.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/file_pattern_matcher.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/functions.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/image.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/image.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/io_streams.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/io_streams.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/mount.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/mount.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/network_file_system.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/network_file_system.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/object.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/object.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/output.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/parallel_map.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/parallel_map.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/partial_function.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/proxy.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/proxy.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/py.typed +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/queue.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/queue.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/retries.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/runner.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/runner.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/running_app.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/sandbox_fs.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/sandbox_fs.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/scheduler_placement.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/server.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/serving.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/serving.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/stream_type.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/token_flow.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/token_flow.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/types.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/volume.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/volume.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal/workspace.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal.egg-info/requires.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal.egg-info/top_level.txt +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_docs/mdmd/types.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/__init__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/api_grpc.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/py.typed +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/modal_version/__main__.py +0 -0
- {modal-1.5.3.dev8 → modal-1.5.3.dev10}/setup.cfg +0 -0
|
@@ -414,7 +414,7 @@ class _EnvironmentBillingManager:
|
|
|
414
414
|
- [`modal environment billing report`](https://modal.com/docs/cli/latest/environment#modal-environment-billing-report):
|
|
415
415
|
An environment report CLI that has convenience features around relative time range queries
|
|
416
416
|
and JSON/CSV output.
|
|
417
|
-
- [`Workspace.billing.report()`](https://modal.com/docs/sdk/py/latest/
|
|
417
|
+
- [`Workspace.billing.report()`](https://modal.com/docs/sdk/py/latest/Workspace#billingreport):
|
|
418
418
|
An analogous report API for the entire Workspace.
|
|
419
419
|
|
|
420
420
|
"""
|
|
@@ -171,7 +171,7 @@ class _FunctionOptions:
|
|
|
171
171
|
replace_secret_ids=bool(self.secrets),
|
|
172
172
|
replace_volume_mounts=len(volume_mounts) > 0,
|
|
173
173
|
volume_mounts=volume_mounts,
|
|
174
|
-
cloud_bucket_mounts=cloud_bucket_mounts_to_proto(self.cloud_bucket_mounts),
|
|
174
|
+
cloud_bucket_mounts=cloud_bucket_mounts_to_proto(self.cloud_bucket_mounts)[0],
|
|
175
175
|
replace_cloud_bucket_mounts=bool(self.cloud_bucket_mounts),
|
|
176
176
|
resources=self.resources,
|
|
177
177
|
retry_policy=self.retry_policy,
|
|
@@ -1000,7 +1000,7 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1000
1000
|
untrusted=restrict_modal_access,
|
|
1001
1001
|
single_use_containers=single_use_containers,
|
|
1002
1002
|
max_inputs=int(single_use_containers), # TODO(michael) remove after worker rollover
|
|
1003
|
-
cloud_bucket_mounts=cloud_bucket_mounts_to_proto(cloud_bucket_mounts),
|
|
1003
|
+
cloud_bucket_mounts=cloud_bucket_mounts_to_proto(cloud_bucket_mounts)[0],
|
|
1004
1004
|
scheduler_placement=scheduler_placement,
|
|
1005
1005
|
is_class=info.is_service_class(),
|
|
1006
1006
|
class_parameter_info=info.class_parameter_info(),
|
|
@@ -1914,9 +1914,9 @@ class _Function(typing.Generic[P, ReturnType, OriginalReturnType], _Object, type
|
|
|
1914
1914
|
**kwargs: Keyword arguments forwarded to the remote function.
|
|
1915
1915
|
|
|
1916
1916
|
Returns:
|
|
1917
|
-
A [`modal.FunctionCall`](https://modal.com/docs/sdk/py/latest/
|
|
1917
|
+
A [`modal.FunctionCall`](https://modal.com/docs/sdk/py/latest/FunctionCall) object
|
|
1918
1918
|
that can later be polled or waited for using
|
|
1919
|
-
[`.get(timeout=...)`](https://modal.com/docs/sdk/py/latest/
|
|
1919
|
+
[`.get(timeout=...)`](https://modal.com/docs/sdk/py/latest/FunctionCall#get).
|
|
1920
1920
|
"""
|
|
1921
1921
|
self._check_no_web_url("spawn")
|
|
1922
1922
|
if self._is_generator:
|
|
@@ -2078,7 +2078,7 @@ class _FunctionCall(typing.Generic[ReturnType], _Object, type_prefix="fc"):
|
|
|
2078
2078
|
Note: the call graph data is not populated in real-time, and its capture is best-effort.
|
|
2079
2079
|
We do not recommend relying on this method for critical use cases.
|
|
2080
2080
|
|
|
2081
|
-
See the [`modal.types`](/docs/sdk/py/latest/
|
|
2081
|
+
See the [`modal.types`](/docs/sdk/py/latest/types) reference for information
|
|
2082
2082
|
on the return values.
|
|
2083
2083
|
|
|
2084
2084
|
Returns:
|
|
@@ -478,7 +478,7 @@ def _wsgi_app(
|
|
|
478
478
|
Web Server Gateway Interface (WSGI) is a standard for synchronous Python web apps.
|
|
479
479
|
It has been [succeeded by the ASGI interface](https://asgi.readthedocs.io/en/latest/introduction.html#wsgi-compatibility)
|
|
480
480
|
which is compatible with ASGI and supports additional functionality such as web sockets.
|
|
481
|
-
Modal supports ASGI via [`asgi_app`](https://modal.com/docs/sdk/py/latest/
|
|
481
|
+
Modal supports ASGI via [`asgi_app`](https://modal.com/docs/sdk/py/latest/asgi_app).
|
|
482
482
|
|
|
483
483
|
Examples:
|
|
484
484
|
```python
|
|
@@ -49,7 +49,7 @@ class _Server:
|
|
|
49
49
|
See the [guide](https://modal.com/docs/guide/servers) for more information.
|
|
50
50
|
|
|
51
51
|
Generally, you will not construct a Server directly.
|
|
52
|
-
Instead, use the [`@app.server()`](https://modal.com/docs/sdk/py/latest/
|
|
52
|
+
Instead, use the [`@app.server()`](https://modal.com/docs/sdk/py/latest/App#server) decorator.
|
|
53
53
|
|
|
54
54
|
```python notest
|
|
55
55
|
@app.server(port=8080, routing_region="us-east")
|
|
@@ -974,3 +974,8 @@ class TaskCommandRouterClient:
|
|
|
974
974
|
return await self._unary_call_with_deadline(
|
|
975
975
|
self._stub.TaskSnapshotFilesystem, request, timeout=timeout, **kwargs
|
|
976
976
|
)
|
|
977
|
+
|
|
978
|
+
async def snapshot_memory(
|
|
979
|
+
self, request: sr_pb2.TaskSnapshotMemoryRequest, *, timeout: float, **kwargs
|
|
980
|
+
) -> sr_pb2.TaskSnapshotMemoryResponse:
|
|
981
|
+
return await self._unary_call_with_deadline(self._stub.TaskSnapshotMemory, request, timeout=timeout, **kwargs)
|
|
@@ -283,7 +283,7 @@ class _WorkspaceBillingManager:
|
|
|
283
283
|
- [`modal billing report`](https://modal.com/docs/cli/latest/billing#modal-billing-report):
|
|
284
284
|
A workspace report CLI that has convenience features around relative time range queries
|
|
285
285
|
and JSON/CSV output.
|
|
286
|
-
- [`Environment.billing.report()`](https://modal.com/docs/sdk/py/latest/
|
|
286
|
+
- [`Environment.billing.report()`](https://modal.com/docs/sdk/py/latest/Environment#billingreport):
|
|
287
287
|
An analogous report API that is scoped to a specific Environment.
|
|
288
288
|
|
|
289
289
|
"""
|
|
@@ -710,7 +710,7 @@ class _App:
|
|
|
710
710
|
Modal functions can also be used as CLI entrypoints, but unlike `local_entrypoint`,
|
|
711
711
|
those functions are executed remotely directly.
|
|
712
712
|
|
|
713
|
-
Note that an explicit [`app.run()`](https://modal.com/docs/sdk/py/latest/
|
|
713
|
+
Note that an explicit [`app.run()`](https://modal.com/docs/sdk/py/latest/App#run) is not needed, as an
|
|
714
714
|
[app](https://modal.com/docs/guide/apps) is automatically created for you.
|
|
715
715
|
|
|
716
716
|
Args:
|
|
@@ -1069,7 +1069,7 @@ class _App:
|
|
|
1069
1069
|
max_inputs: int | None = None,
|
|
1070
1070
|
) -> Callable[[CLS_T | _PartialFunction], CLS_T]:
|
|
1071
1071
|
"""
|
|
1072
|
-
Decorator to register a new Modal [Cls](https://modal.com/docs/sdk/py/latest/
|
|
1072
|
+
Decorator to register a new Modal [Cls](https://modal.com/docs/sdk/py/latest/Cls) with this App.
|
|
1073
1073
|
|
|
1074
1074
|
Args:
|
|
1075
1075
|
image: The image to run as the container for the class service.
|
|
@@ -494,7 +494,7 @@ class _App:
|
|
|
494
494
|
Modal functions can also be used as CLI entrypoints, but unlike `local_entrypoint`,
|
|
495
495
|
those functions are executed remotely directly.
|
|
496
496
|
|
|
497
|
-
Note that an explicit [`app.run()`](https://modal.com/docs/sdk/py/latest/
|
|
497
|
+
Note that an explicit [`app.run()`](https://modal.com/docs/sdk/py/latest/App#run) is not needed, as an
|
|
498
498
|
[app](https://modal.com/docs/guide/apps) is automatically created for you.
|
|
499
499
|
|
|
500
500
|
Args:
|
|
@@ -683,7 +683,7 @@ class _App:
|
|
|
683
683
|
_experimental_restrict_output: bool = False,
|
|
684
684
|
max_inputs: typing.Optional[int] = None,
|
|
685
685
|
) -> collections.abc.Callable[[typing.Union[CLS_T, modal._partial_function._PartialFunction]], CLS_T]:
|
|
686
|
-
"""Decorator to register a new Modal [Cls](https://modal.com/docs/sdk/py/latest/
|
|
686
|
+
"""Decorator to register a new Modal [Cls](https://modal.com/docs/sdk/py/latest/Cls) with this App.
|
|
687
687
|
|
|
688
688
|
Args:
|
|
689
689
|
image: The image to run as the container for the class service.
|
|
@@ -1498,7 +1498,7 @@ class App:
|
|
|
1498
1498
|
Modal functions can also be used as CLI entrypoints, but unlike `local_entrypoint`,
|
|
1499
1499
|
those functions are executed remotely directly.
|
|
1500
1500
|
|
|
1501
|
-
Note that an explicit [`app.run()`](https://modal.com/docs/sdk/py/latest/
|
|
1501
|
+
Note that an explicit [`app.run()`](https://modal.com/docs/sdk/py/latest/App#run) is not needed, as an
|
|
1502
1502
|
[app](https://modal.com/docs/guide/apps) is automatically created for you.
|
|
1503
1503
|
|
|
1504
1504
|
Args:
|
|
@@ -1687,7 +1687,7 @@ class App:
|
|
|
1687
1687
|
_experimental_restrict_output: bool = False,
|
|
1688
1688
|
max_inputs: typing.Optional[int] = None,
|
|
1689
1689
|
) -> collections.abc.Callable[[typing.Union[CLS_T, modal.partial_function.PartialFunction]], CLS_T]:
|
|
1690
|
-
"""Decorator to register a new Modal [Cls](https://modal.com/docs/sdk/py/latest/
|
|
1690
|
+
"""Decorator to register a new Modal [Cls](https://modal.com/docs/sdk/py/latest/Cls) with this App.
|
|
1691
1691
|
|
|
1692
1692
|
Args:
|
|
1693
1693
|
image: The image to run as the container for the class service.
|
|
@@ -107,7 +107,7 @@ async def report(
|
|
|
107
107
|
or by requesting a date range using `--for` (e.g., `--for today`, `--for 'last month'`).
|
|
108
108
|
|
|
109
109
|
This command provides a CLI frontend for the
|
|
110
|
-
[`Workspace.billing.report`](https://modal.com/docs/sdk/py/latest/
|
|
110
|
+
[`Workspace.billing.report`](https://modal.com/docs/sdk/py/latest/Workspace#billingreport) API.
|
|
111
111
|
|
|
112
112
|
Note that, as with the API, the start date is inclusive and the end date is exclusive.
|
|
113
113
|
Data will be reported for full intervals only. Using `--for` is a convenient way to define a
|
|
@@ -14,7 +14,7 @@ config_cli = ModalGroup(
|
|
|
14
14
|
help="""
|
|
15
15
|
Manage client configuration for the current profile.
|
|
16
16
|
|
|
17
|
-
Refer to https://modal.com/docs/sdk/py/latest/
|
|
17
|
+
Refer to https://modal.com/docs/sdk/py/latest/config for a full explanation
|
|
18
18
|
of what these options mean, and how to set them.
|
|
19
19
|
""",
|
|
20
20
|
)
|
|
@@ -229,7 +229,7 @@ async def environment_billing(
|
|
|
229
229
|
or by requesting a date range using `--for` (e.g., `--for today`, `--for 'last month'`).
|
|
230
230
|
|
|
231
231
|
This command provides a CLI frontend for the
|
|
232
|
-
[`Environment.billing.report`](https://modal.com/docs/sdk/py/latest/
|
|
232
|
+
[`Environment.billing.report`](https://modal.com/docs/sdk/py/latest/Environment#billingreport)
|
|
233
233
|
API.
|
|
234
234
|
|
|
235
235
|
Note that, as with the API, the start date is inclusive and the end date is exclusive.
|
|
@@ -373,7 +373,7 @@ def shell(
|
|
|
373
373
|
modal shell hello_world.py::my_function
|
|
374
374
|
```
|
|
375
375
|
|
|
376
|
-
Or, if you're using a [modal.Cls](https://modal.com/docs/sdk/py/latest/
|
|
376
|
+
Or, if you're using a [modal.Cls](https://modal.com/docs/sdk/py/latest/Cls)
|
|
377
377
|
you can refer to a `@modal.method` directly:
|
|
378
378
|
|
|
379
379
|
```
|
|
@@ -241,7 +241,7 @@ class _Client:
|
|
|
241
241
|
else:
|
|
242
242
|
raise AuthError(
|
|
243
243
|
"Token missing. Could not authenticate client."
|
|
244
|
-
" If you have token credentials, see modal.com/docs/sdk/py/latest/
|
|
244
|
+
" If you have token credentials, see modal.com/docs/sdk/py/latest/config for setup help."
|
|
245
245
|
" If you are a new user, register an account at modal.com, then run `modal token new`."
|
|
246
246
|
)
|
|
247
247
|
|
|
@@ -37,7 +37,7 @@ class _Client:
|
|
|
37
37
|
server_url: str,
|
|
38
38
|
client_type: int,
|
|
39
39
|
credentials: typing.Optional[tuple[str, str]],
|
|
40
|
-
version: str = "1.5.3.
|
|
40
|
+
version: str = "1.5.3.dev10",
|
|
41
41
|
):
|
|
42
42
|
"""mdmd:hidden
|
|
43
43
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -207,7 +207,7 @@ class Client:
|
|
|
207
207
|
server_url: str,
|
|
208
208
|
client_type: int,
|
|
209
209
|
credentials: typing.Optional[tuple[str, str]],
|
|
210
|
-
version: str = "1.5.3.
|
|
210
|
+
version: str = "1.5.3.dev10",
|
|
211
211
|
):
|
|
212
212
|
"""mdmd:hidden
|
|
213
213
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -121,11 +121,14 @@ class _CloudBucketMount:
|
|
|
121
121
|
force_path_style: bool = False
|
|
122
122
|
|
|
123
123
|
|
|
124
|
-
def cloud_bucket_mounts_to_proto(
|
|
124
|
+
def cloud_bucket_mounts_to_proto(
|
|
125
|
+
mounts: Sequence[tuple[str, _CloudBucketMount]], split_ephemeral_credentials: bool = False
|
|
126
|
+
) -> tuple[list[api_pb2.CloudBucketMount], dict[str, api_pb2.StringMap]]:
|
|
125
127
|
"""mdmd:hidden
|
|
126
128
|
Helper function to convert `CloudBucketMount` to a list of protobufs that can be passed to the server.
|
|
127
129
|
"""
|
|
128
130
|
cloud_bucket_mounts: list[api_pb2.CloudBucketMount] = []
|
|
131
|
+
cloud_bucket_credentials: dict[str, api_pb2.StringMap] = {}
|
|
129
132
|
|
|
130
133
|
for path, mount in mounts:
|
|
131
134
|
# crude mapping from mount arguments to type.
|
|
@@ -153,11 +156,20 @@ def cloud_bucket_mounts_to_proto(mounts: Sequence[tuple[str, _CloudBucketMount]]
|
|
|
153
156
|
else:
|
|
154
157
|
key_prefix = mount.key_prefix
|
|
155
158
|
|
|
159
|
+
credentials_secret_id = ""
|
|
160
|
+
if secret := mount.secret:
|
|
161
|
+
if split_ephemeral_credentials and secret._load_env_dict:
|
|
162
|
+
env_dict = secret._load_env_dict()
|
|
163
|
+
credientials = api_pb2.StringMap(contents=env_dict)
|
|
164
|
+
cloud_bucket_credentials[path] = credientials
|
|
165
|
+
else:
|
|
166
|
+
credentials_secret_id = secret.object_id
|
|
167
|
+
|
|
156
168
|
cloud_bucket_mount = api_pb2.CloudBucketMount(
|
|
157
169
|
bucket_name=mount.bucket_name,
|
|
158
170
|
bucket_endpoint_url=mount.bucket_endpoint_url,
|
|
159
171
|
mount_path=path,
|
|
160
|
-
credentials_secret_id=
|
|
172
|
+
credentials_secret_id=credentials_secret_id,
|
|
161
173
|
read_only=mount.read_only,
|
|
162
174
|
bucket_type=bucket_type,
|
|
163
175
|
requester_pays=mount.requester_pays,
|
|
@@ -167,7 +179,7 @@ def cloud_bucket_mounts_to_proto(mounts: Sequence[tuple[str, _CloudBucketMount]]
|
|
|
167
179
|
)
|
|
168
180
|
cloud_bucket_mounts.append(cloud_bucket_mount)
|
|
169
181
|
|
|
170
|
-
return cloud_bucket_mounts
|
|
182
|
+
return cloud_bucket_mounts, cloud_bucket_credentials
|
|
171
183
|
|
|
172
184
|
|
|
173
185
|
CloudBucketMount = synchronize_api(_CloudBucketMount)
|
|
@@ -126,8 +126,8 @@ class _CloudBucketMount:
|
|
|
126
126
|
...
|
|
127
127
|
|
|
128
128
|
def cloud_bucket_mounts_to_proto(
|
|
129
|
-
mounts: collections.abc.Sequence[tuple[str, _CloudBucketMount]],
|
|
130
|
-
) -> list[modal_proto.api_pb2.CloudBucketMount]:
|
|
129
|
+
mounts: collections.abc.Sequence[tuple[str, _CloudBucketMount]], split_ephemeral_credentials: bool = False
|
|
130
|
+
) -> tuple[list[modal_proto.api_pb2.CloudBucketMount], dict[str, modal_proto.api_pb2.StringMap]]:
|
|
131
131
|
"""mdmd:hidden
|
|
132
132
|
Helper function to convert `CloudBucketMount` to a list of protobufs that can be passed to the server.
|
|
133
133
|
"""
|
|
@@ -447,10 +447,10 @@ Obj = synchronize_api(_Obj)
|
|
|
447
447
|
class _Cls(_Object, type_prefix="cs"):
|
|
448
448
|
"""
|
|
449
449
|
Cls adds method pooling and [lifecycle hook](https://modal.com/docs/guide/lifecycle-functions) behavior
|
|
450
|
-
to [modal.Function](https://modal.com/docs/sdk/py/latest/
|
|
450
|
+
to [modal.Function](https://modal.com/docs/sdk/py/latest/Function).
|
|
451
451
|
|
|
452
452
|
Generally, you will not construct a Cls directly.
|
|
453
|
-
Instead, use the [`@app.cls()`](https://modal.com/docs/sdk/py/latest/
|
|
453
|
+
Instead, use the [`@app.cls()`](https://modal.com/docs/sdk/py/latest/App#cls) decorator on the App object.
|
|
454
454
|
"""
|
|
455
455
|
|
|
456
456
|
_class_service_function: _Function | None # The _Function (read "service") serving *all* methods of the class
|
|
@@ -241,10 +241,10 @@ class Obj:
|
|
|
241
241
|
|
|
242
242
|
class _Cls(modal._object._Object):
|
|
243
243
|
"""Cls adds method pooling and [lifecycle hook](https://modal.com/docs/guide/lifecycle-functions) behavior
|
|
244
|
-
to [modal.Function](https://modal.com/docs/sdk/py/latest/
|
|
244
|
+
to [modal.Function](https://modal.com/docs/sdk/py/latest/Function).
|
|
245
245
|
|
|
246
246
|
Generally, you will not construct a Cls directly.
|
|
247
|
-
Instead, use the [`@app.cls()`](https://modal.com/docs/sdk/py/latest/
|
|
247
|
+
Instead, use the [`@app.cls()`](https://modal.com/docs/sdk/py/latest/App#cls) decorator on the App object.
|
|
248
248
|
"""
|
|
249
249
|
|
|
250
250
|
_class_service_function: typing.Optional[modal._functions._Function]
|
|
@@ -446,10 +446,10 @@ class _Cls(modal._object._Object):
|
|
|
446
446
|
|
|
447
447
|
class Cls(modal.object.Object):
|
|
448
448
|
"""Cls adds method pooling and [lifecycle hook](https://modal.com/docs/guide/lifecycle-functions) behavior
|
|
449
|
-
to [modal.Function](https://modal.com/docs/sdk/py/latest/
|
|
449
|
+
to [modal.Function](https://modal.com/docs/sdk/py/latest/Function).
|
|
450
450
|
|
|
451
451
|
Generally, you will not construct a Cls directly.
|
|
452
|
-
Instead, use the [`@app.cls()`](https://modal.com/docs/sdk/py/latest/
|
|
452
|
+
Instead, use the [`@app.cls()`](https://modal.com/docs/sdk/py/latest/App#cls) decorator on the App object.
|
|
453
453
|
"""
|
|
454
454
|
|
|
455
455
|
_class_service_function: typing.Optional[modal.functions.Function]
|
|
@@ -288,7 +288,7 @@ class EnvironmentBillingManager:
|
|
|
288
288
|
- [`modal environment billing report`](https://modal.com/docs/cli/latest/environment#modal-environment-billing-report):
|
|
289
289
|
An environment report CLI that has convenience features around relative time range queries
|
|
290
290
|
and JSON/CSV output.
|
|
291
|
-
- [`Workspace.billing.report()`](https://modal.com/docs/sdk/py/latest/
|
|
291
|
+
- [`Workspace.billing.report()`](https://modal.com/docs/sdk/py/latest/Workspace#billingreport):
|
|
292
292
|
An analogous report API for the entire Workspace.
|
|
293
293
|
"""
|
|
294
294
|
...
|
|
@@ -325,7 +325,7 @@ class EnvironmentBillingManager:
|
|
|
325
325
|
- [`modal environment billing report`](https://modal.com/docs/cli/latest/environment#modal-environment-billing-report):
|
|
326
326
|
An environment report CLI that has convenience features around relative time range queries
|
|
327
327
|
and JSON/CSV output.
|
|
328
|
-
- [`Workspace.billing.report()`](https://modal.com/docs/sdk/py/latest/
|
|
328
|
+
- [`Workspace.billing.report()`](https://modal.com/docs/sdk/py/latest/Workspace#billingreport):
|
|
329
329
|
An analogous report API for the entire Workspace.
|
|
330
330
|
"""
|
|
331
331
|
...
|
|
@@ -47,7 +47,7 @@ UserCodeException = synchronicity.exceptions.UserCodeException # Deprecated typ
|
|
|
47
47
|
|
|
48
48
|
class Error(Exception):
|
|
49
49
|
"""
|
|
50
|
-
Base class for all Modal errors. See [`modal.exception`](https://modal.com/docs/sdk/py/latest/
|
|
50
|
+
Base class for all Modal errors. See [`modal.exception`](https://modal.com/docs/sdk/py/latest/exception)
|
|
51
51
|
for the specialized error classes.
|
|
52
52
|
|
|
53
53
|
Examples:
|
|
@@ -620,9 +620,9 @@ class Function(
|
|
|
620
620
|
**kwargs: Keyword arguments forwarded to the remote function.
|
|
621
621
|
|
|
622
622
|
Returns:
|
|
623
|
-
A [`modal.FunctionCall`](https://modal.com/docs/sdk/py/latest/
|
|
623
|
+
A [`modal.FunctionCall`](https://modal.com/docs/sdk/py/latest/FunctionCall) object
|
|
624
624
|
that can later be polled or waited for using
|
|
625
|
-
[`.get(timeout=...)`](https://modal.com/docs/sdk/py/latest/
|
|
625
|
+
[`.get(timeout=...)`](https://modal.com/docs/sdk/py/latest/FunctionCall#get).
|
|
626
626
|
"""
|
|
627
627
|
...
|
|
628
628
|
|
|
@@ -636,9 +636,9 @@ class Function(
|
|
|
636
636
|
**kwargs: Keyword arguments forwarded to the remote function.
|
|
637
637
|
|
|
638
638
|
Returns:
|
|
639
|
-
A [`modal.FunctionCall`](https://modal.com/docs/sdk/py/latest/
|
|
639
|
+
A [`modal.FunctionCall`](https://modal.com/docs/sdk/py/latest/FunctionCall) object
|
|
640
640
|
that can later be polled or waited for using
|
|
641
|
-
[`.get(timeout=...)`](https://modal.com/docs/sdk/py/latest/
|
|
641
|
+
[`.get(timeout=...)`](https://modal.com/docs/sdk/py/latest/FunctionCall#get).
|
|
642
642
|
"""
|
|
643
643
|
...
|
|
644
644
|
|
|
@@ -1049,7 +1049,7 @@ class FunctionCall(typing.Generic[modal._functions.ReturnType], modal.object.Obj
|
|
|
1049
1049
|
Note: the call graph data is not populated in real-time, and its capture is best-effort.
|
|
1050
1050
|
We do not recommend relying on this method for critical use cases.
|
|
1051
1051
|
|
|
1052
|
-
See the [`modal.types`](/docs/sdk/py/latest/
|
|
1052
|
+
See the [`modal.types`](/docs/sdk/py/latest/types) reference for information
|
|
1053
1053
|
on the return values.
|
|
1054
1054
|
|
|
1055
1055
|
Returns:
|
|
@@ -1063,7 +1063,7 @@ class FunctionCall(typing.Generic[modal._functions.ReturnType], modal.object.Obj
|
|
|
1063
1063
|
Note: the call graph data is not populated in real-time, and its capture is best-effort.
|
|
1064
1064
|
We do not recommend relying on this method for critical use cases.
|
|
1065
1065
|
|
|
1066
|
-
See the [`modal.types`](/docs/sdk/py/latest/
|
|
1066
|
+
See the [`modal.types`](/docs/sdk/py/latest/types) reference for information
|
|
1067
1067
|
on the return values.
|
|
1068
1068
|
|
|
1069
1069
|
Returns:
|
|
@@ -169,7 +169,7 @@ def wsgi_app(
|
|
|
169
169
|
Web Server Gateway Interface (WSGI) is a standard for synchronous Python web apps.
|
|
170
170
|
It has been [succeeded by the ASGI interface](https://asgi.readthedocs.io/en/latest/introduction.html#wsgi-compatibility)
|
|
171
171
|
which is compatible with ASGI and supports additional functionality such as web sockets.
|
|
172
|
-
Modal supports ASGI via [`asgi_app`](https://modal.com/docs/sdk/py/latest/
|
|
172
|
+
Modal supports ASGI via [`asgi_app`](https://modal.com/docs/sdk/py/latest/asgi_app).
|
|
173
173
|
|
|
174
174
|
Examples:
|
|
175
175
|
```python
|