modal 1.5.3.dev6__tar.gz → 1.5.3.dev7__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.dev6 → modal-1.5.3.dev7}/PKG-INFO +1 -1
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_environments.py +7 -8
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_workspace.py +11 -14
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/shell.py +20 -1
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/client.pyi +2 -2
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/environments.pyi +12 -10
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/runner.py +31 -9
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/runner.pyi +8 -1
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/sandbox.py +2 -6
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/sandbox.pyi +4 -12
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/sandbox_fs.py +1 -2
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/sandbox_fs.pyi +2 -6
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/workspace.pyi +22 -18
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/mdmd/mdmd.py +12 -2
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/api_pb2.py +117 -104
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/api_pb2.pyi +22 -14
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_version/__init__.py +1 -1
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/LICENSE +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/README.md +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/__main__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_billing.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_clustered_functions.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_clustered_functions.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_container_entrypoint.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_function_variants.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_functions.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_grpc_client.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_image.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_ipython.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_load_context.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_location.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_logs.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_object.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_output/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_output/manager.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_output/pty.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_output/rich.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_output/status.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_partial_function.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_resolver.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_resources.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/asgi.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/execution_context.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/telemetry.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_serialization.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_server.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_traceback.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_tunnel.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_tunnel.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_type_manager.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/app_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/async_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/blob_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/browser_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/curl_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/deprecation.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/docker_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/function_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/git_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/hash_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/http_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/logger.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/mount_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/name_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/package_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/proxy_support.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/shell_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_utils/time_utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_vendor/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_vendor/tblib.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_vendor/version.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/_watcher.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/app.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/app.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/billing.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/billing.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/2023.12.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/2024.04.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/2024.10.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/2025.06.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/README.md +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/builder/base-images.json +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/call_graph.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/_download.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/_help.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/_traceback.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/app.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/billing.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/bootstrap.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/changelog.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/cluster.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/config.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/container.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/curl.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/dashboard.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/dict.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/endpoint.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/entry_point.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/environment.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/image.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/import_refs.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/launch.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/logo.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/network_file_system.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/profile.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/programs/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/programs/vscode.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/queues.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/run.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/secret.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/selector.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/skills.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/token.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/utils.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/volume.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cli/workspace.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/client.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cls.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/cls.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/config.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/container_process.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/container_process.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/dict.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/dict.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/environments.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/exception.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/experimental/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/experimental/flash.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/experimental/flash.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/experimental/ipython.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/file_io.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/file_io.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/file_pattern_matcher.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/functions.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/functions.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/image.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/image.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/io_streams.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/io_streams.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/mount.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/mount.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/network_file_system.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/network_file_system.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/object.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/object.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/output.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/parallel_map.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/parallel_map.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/partial_function.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/partial_function.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/proxy.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/proxy.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/py.typed +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/queue.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/queue.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/retries.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/running_app.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/schedule.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/scheduler_placement.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/secret.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/secret.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/server.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/server.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/serving.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/serving.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/snapshot.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/snapshot.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/stream_type.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/token_flow.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/token_flow.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/types.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/volume.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/volume.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal/workspace.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal.egg-info/requires.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal.egg-info/top_level.txt +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_docs/mdmd/types.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/__init__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/api_grpc.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/py.typed +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/modal_version/__main__.py +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/pyproject.toml +0 -0
- {modal-1.5.3.dev6 → modal-1.5.3.dev7}/setup.cfg +0 -0
|
@@ -104,11 +104,7 @@ class _EnvironmentManager:
|
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
class _EnvironmentMembersManager:
|
|
107
|
-
"""mdmd:namespace
|
|
108
|
-
Namespace with methods for managing the membership of a restricted Environment.
|
|
109
|
-
|
|
110
|
-
See https://modal.com/docs/guide/rbac for more information on restricted Environments.
|
|
111
|
-
"""
|
|
107
|
+
"""mdmd:namespace"""
|
|
112
108
|
|
|
113
109
|
def __init__(self, environment: "_Environment"):
|
|
114
110
|
"""mdmd:hidden"""
|
|
@@ -288,6 +284,10 @@ class _Environment(_Object, type_prefix="en"):
|
|
|
288
284
|
|
|
289
285
|
@property
|
|
290
286
|
def members(self) -> "_EnvironmentMembersManager":
|
|
287
|
+
"""Namespace with methods for managing the membership of a restricted Environment.
|
|
288
|
+
|
|
289
|
+
See https://modal.com/docs/guide/rbac for more information on restricted Environments.
|
|
290
|
+
"""
|
|
291
291
|
return _EnvironmentMembersManager(self)
|
|
292
292
|
|
|
293
293
|
# TODO(michael) Keeping this private for now until we decide what else should be in it
|
|
@@ -372,13 +372,12 @@ class _Environment(_Object, type_prefix="en"):
|
|
|
372
372
|
|
|
373
373
|
@property
|
|
374
374
|
def billing(self) -> "_EnvironmentBillingManager":
|
|
375
|
+
"""Namespace for Environment billing APIs."""
|
|
375
376
|
return _EnvironmentBillingManager(self)
|
|
376
377
|
|
|
377
378
|
|
|
378
379
|
class _EnvironmentBillingManager:
|
|
379
|
-
"""mdmd:namespace
|
|
380
|
-
Namespace for Environment billing APIs
|
|
381
|
-
"""
|
|
380
|
+
"""mdmd:namespace"""
|
|
382
381
|
|
|
383
382
|
def __init__(self, environment: _Environment):
|
|
384
383
|
"""mdmd:ignore"""
|
|
@@ -35,9 +35,7 @@ def _member_role_from_proto(proto_value: int) -> str:
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class _WorkspaceMembersManager:
|
|
38
|
-
"""mdmd:namespace
|
|
39
|
-
Namespace with methods for managing the membership of a Workspace.
|
|
40
|
-
"""
|
|
38
|
+
"""mdmd:namespace"""
|
|
41
39
|
|
|
42
40
|
def __init__(self, workspace: "_Workspace"):
|
|
43
41
|
"""mdmd:hidden"""
|
|
@@ -81,6 +79,7 @@ class _Workspace(_Object, type_prefix="ac"):
|
|
|
81
79
|
|
|
82
80
|
@property
|
|
83
81
|
def members(self) -> "_WorkspaceMembersManager":
|
|
82
|
+
"""Namespace with methods for managing the membership of a Workspace."""
|
|
84
83
|
return _WorkspaceMembersManager(self)
|
|
85
84
|
|
|
86
85
|
@staticmethod
|
|
@@ -110,23 +109,25 @@ class _Workspace(_Object, type_prefix="ac"):
|
|
|
110
109
|
|
|
111
110
|
@property
|
|
112
111
|
def billing(self) -> "_WorkspaceBillingManager":
|
|
112
|
+
"""Namespace for Workspace billing APIs."""
|
|
113
113
|
return _WorkspaceBillingManager(self)
|
|
114
114
|
|
|
115
115
|
@property
|
|
116
116
|
def proxy_tokens(self) -> "_WorkspaceProxyTokenManager":
|
|
117
|
+
"""Namespace with methods for managing the proxy tokens in a Workspace.
|
|
118
|
+
|
|
119
|
+
See [the guide](https://modal.com/docs/guide/webhook-proxy-auth) for more information on proxy tokens.
|
|
120
|
+
"""
|
|
117
121
|
return _WorkspaceProxyTokenManager(self)
|
|
118
122
|
|
|
119
123
|
@property
|
|
120
124
|
def settings(self) -> "_WorkspaceSettingsManager":
|
|
125
|
+
"""Namespace for Workspace settings APIs."""
|
|
121
126
|
return _WorkspaceSettingsManager(self)
|
|
122
127
|
|
|
123
128
|
|
|
124
129
|
class _WorkspaceProxyTokenManager:
|
|
125
|
-
"""mdmd:namespace
|
|
126
|
-
Namespace with methods for managing the proxy tokens in a Workspace.
|
|
127
|
-
|
|
128
|
-
See [the guide](https://modal.com/docs/guide/webhook-proxy-auth) for more information on proxy tokens.
|
|
129
|
-
"""
|
|
130
|
+
"""mdmd:namespace"""
|
|
130
131
|
|
|
131
132
|
def __init__(self, workspace: "_Workspace"):
|
|
132
133
|
"""mdmd:hidden"""
|
|
@@ -245,9 +246,7 @@ class _WorkspaceProxyTokenManager:
|
|
|
245
246
|
|
|
246
247
|
|
|
247
248
|
class _WorkspaceBillingManager:
|
|
248
|
-
"""mdmd:namespace
|
|
249
|
-
Namespace for Workspace billing APIs.
|
|
250
|
-
"""
|
|
249
|
+
"""mdmd:namespace"""
|
|
251
250
|
|
|
252
251
|
def __init__(self, workspace: _Workspace):
|
|
253
252
|
"""mdmd:hidden"""
|
|
@@ -321,9 +320,7 @@ class _WorkspaceBillingManager:
|
|
|
321
320
|
|
|
322
321
|
|
|
323
322
|
class _WorkspaceSettingsManager:
|
|
324
|
-
"""mdmd:namespace
|
|
325
|
-
Namespace for Workspace settings APIs.
|
|
326
|
-
"""
|
|
323
|
+
"""mdmd:namespace"""
|
|
327
324
|
|
|
328
325
|
@classmethod
|
|
329
326
|
def valid_settings(cls):
|
|
@@ -236,6 +236,7 @@ def _start_shell_from_image(
|
|
|
236
236
|
region: str | None,
|
|
237
237
|
pty: bool,
|
|
238
238
|
experimental_options: dict[str, str],
|
|
239
|
+
v2: bool,
|
|
239
240
|
) -> None:
|
|
240
241
|
volumes = {f"/mnt/{vol}": Volume.from_name(vol) for vol in volume}
|
|
241
242
|
secrets = [Secret.from_name(s) for s in secret]
|
|
@@ -267,6 +268,7 @@ def _start_shell_from_image(
|
|
|
267
268
|
region=region.split(",") if region else [],
|
|
268
269
|
pty=pty,
|
|
269
270
|
experimental_options=experimental_options,
|
|
271
|
+
v2=v2,
|
|
270
272
|
)
|
|
271
273
|
|
|
272
274
|
|
|
@@ -327,6 +329,14 @@ def _start_shell_from_image(
|
|
|
327
329
|
hidden=True,
|
|
328
330
|
metavar="KEY=VALUE",
|
|
329
331
|
)
|
|
332
|
+
@click.option(
|
|
333
|
+
"--experimental-v2",
|
|
334
|
+
"v2",
|
|
335
|
+
is_flag=True,
|
|
336
|
+
default=False,
|
|
337
|
+
hidden=True,
|
|
338
|
+
help="Create the shell using the V2 sandbox backend.",
|
|
339
|
+
)
|
|
330
340
|
def shell(
|
|
331
341
|
ref: str | None = None,
|
|
332
342
|
cmd: str = "/bin/bash",
|
|
@@ -344,6 +354,7 @@ def shell(
|
|
|
344
354
|
pty: bool | None = None,
|
|
345
355
|
use_module_mode: bool = False,
|
|
346
356
|
experimental_options: tuple[str, ...] = (),
|
|
357
|
+
v2: bool = False,
|
|
347
358
|
):
|
|
348
359
|
"""Run a command or interactive shell inside a Modal container.
|
|
349
360
|
|
|
@@ -423,13 +434,20 @@ def shell(
|
|
|
423
434
|
shell.params,
|
|
424
435
|
ctx,
|
|
425
436
|
locals(),
|
|
426
|
-
allowed=lambda p: p in {"cmd", "env", "pty", "ref", "use_module_mode", "experimental_options"},
|
|
437
|
+
allowed=lambda p: p in {"cmd", "env", "pty", "ref", "use_module_mode", "experimental_options", "v2"},
|
|
427
438
|
):
|
|
428
439
|
raise ClickException(
|
|
429
440
|
f"Cannot specify container configuration arguments ({', '.join(passed_forbidden)}) "
|
|
430
441
|
f"when starting a new container from a function reference ('{ref}')."
|
|
431
442
|
)
|
|
432
443
|
|
|
444
|
+
if v2:
|
|
445
|
+
# Function specs always carry mounts (e.g. the client mount), which the
|
|
446
|
+
# V2 backend does not support.
|
|
447
|
+
raise ClickException(
|
|
448
|
+
"--experimental-v2 is not supported when starting a shell from a function reference. "
|
|
449
|
+
"Use an image instead (e.g. `modal shell --experimental-v2 --image ...`)."
|
|
450
|
+
)
|
|
433
451
|
function_spec = _function_spec_from_ref(ref, use_module_mode)
|
|
434
452
|
_start_shell_from_function_spec(app, cmds, env, timeout, function_spec, pty, parsed_experimental_options)
|
|
435
453
|
return
|
|
@@ -463,4 +481,5 @@ def shell(
|
|
|
463
481
|
region,
|
|
464
482
|
pty,
|
|
465
483
|
parsed_experimental_options,
|
|
484
|
+
v2,
|
|
466
485
|
)
|
|
@@ -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.dev7",
|
|
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.dev7",
|
|
211
211
|
):
|
|
212
212
|
"""mdmd:hidden
|
|
213
213
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -102,11 +102,7 @@ class EnvironmentManager:
|
|
|
102
102
|
delete: __delete_spec
|
|
103
103
|
|
|
104
104
|
class EnvironmentMembersManager:
|
|
105
|
-
"""mdmd:namespace
|
|
106
|
-
Namespace with methods for managing the membership of a restricted Environment.
|
|
107
|
-
|
|
108
|
-
See https://modal.com/docs/guide/rbac for more information on restricted Environments.
|
|
109
|
-
"""
|
|
105
|
+
"""mdmd:namespace"""
|
|
110
106
|
def __init__(self, environment: Environment):
|
|
111
107
|
"""mdmd:hidden"""
|
|
112
108
|
...
|
|
@@ -254,9 +250,7 @@ class EnvironmentMembersManager:
|
|
|
254
250
|
_dispatch_role_updates: ___dispatch_role_updates_spec
|
|
255
251
|
|
|
256
252
|
class EnvironmentBillingManager:
|
|
257
|
-
"""mdmd:namespace
|
|
258
|
-
Namespace for Environment billing APIs
|
|
259
|
-
"""
|
|
253
|
+
"""mdmd:namespace"""
|
|
260
254
|
def __init__(self, environment: Environment):
|
|
261
255
|
"""mdmd:ignore"""
|
|
262
256
|
...
|
|
@@ -352,7 +346,13 @@ class Environment(modal.object.Object):
|
|
|
352
346
|
@classmethod
|
|
353
347
|
def objects(cls) -> EnvironmentManager: ...
|
|
354
348
|
@property
|
|
355
|
-
def members(self) -> EnvironmentMembersManager:
|
|
349
|
+
def members(self) -> EnvironmentMembersManager:
|
|
350
|
+
"""Namespace with methods for managing the membership of a restricted Environment.
|
|
351
|
+
|
|
352
|
+
See https://modal.com/docs/guide/rbac for more information on restricted Environments.
|
|
353
|
+
"""
|
|
354
|
+
...
|
|
355
|
+
|
|
356
356
|
def _hydrate_metadata(self, metadata: typing.Optional[google.protobuf.message.Message]): ...
|
|
357
357
|
@staticmethod
|
|
358
358
|
def _get_or_create(
|
|
@@ -378,7 +378,9 @@ class Environment(modal.object.Object):
|
|
|
378
378
|
...
|
|
379
379
|
|
|
380
380
|
@property
|
|
381
|
-
def billing(self) -> EnvironmentBillingManager:
|
|
381
|
+
def billing(self) -> EnvironmentBillingManager:
|
|
382
|
+
"""Namespace for Environment billing APIs."""
|
|
383
|
+
...
|
|
382
384
|
|
|
383
385
|
class __create_environment_spec(typing_extensions.Protocol):
|
|
384
386
|
def __call__(self, /, name: str, client: typing.Optional[modal.client.Client] = None): ...
|
|
@@ -690,7 +690,12 @@ async def _deploy_app(
|
|
|
690
690
|
|
|
691
691
|
|
|
692
692
|
async def _interactive_shell(
|
|
693
|
-
_app: "modal.app._App",
|
|
693
|
+
_app: "modal.app._App",
|
|
694
|
+
cmds: list[str],
|
|
695
|
+
environment_name: str = "",
|
|
696
|
+
pty: bool = True,
|
|
697
|
+
v2: bool = False,
|
|
698
|
+
**kwargs: Any,
|
|
694
699
|
) -> None:
|
|
695
700
|
"""Run an interactive shell (like `bash`) within the image for this app.
|
|
696
701
|
|
|
@@ -732,13 +737,25 @@ async def _interactive_shell(
|
|
|
732
737
|
|
|
733
738
|
# Temporarily enable output to show image build logs during sandbox creation
|
|
734
739
|
output_mgr.set_quiet_mode(False)
|
|
735
|
-
|
|
736
|
-
"
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
740
|
+
if v2:
|
|
741
|
+
for option in ("gpu", "mounts", "network_file_systems"):
|
|
742
|
+
if kwargs.pop(option, None):
|
|
743
|
+
raise InvalidError(f"`{option}` is not supported for V2 sandboxes")
|
|
744
|
+
sandbox = await _Sandbox._experimental_create(
|
|
745
|
+
"sleep",
|
|
746
|
+
"100000",
|
|
747
|
+
app=_app,
|
|
748
|
+
secrets=secrets,
|
|
749
|
+
**kwargs,
|
|
750
|
+
)
|
|
751
|
+
else:
|
|
752
|
+
sandbox = await _Sandbox._create(
|
|
753
|
+
"sleep",
|
|
754
|
+
"100000",
|
|
755
|
+
app=_app,
|
|
756
|
+
secrets=secrets,
|
|
757
|
+
**kwargs,
|
|
758
|
+
)
|
|
742
759
|
|
|
743
760
|
# Re-enable quiet mode before starting the interactive session
|
|
744
761
|
output_mgr.set_quiet_mode(True)
|
|
@@ -757,7 +774,12 @@ async def _interactive_shell(
|
|
|
757
774
|
except InteractiveTimeoutError:
|
|
758
775
|
# Check on status of Sandbox. It may have crashed, causing connection failure.
|
|
759
776
|
req = api_pb2.SandboxWaitRequest(sandbox_id=sandbox._object_id, timeout=0)
|
|
760
|
-
|
|
777
|
+
if v2:
|
|
778
|
+
assert sandbox._client._auth_token_manager
|
|
779
|
+
auth_token = await sandbox._client._auth_token_manager.get_token()
|
|
780
|
+
resp = await sandbox._client.stub.SandboxWaitV2(req, metadata=[("x-modal-auth-token", auth_token)])
|
|
781
|
+
else:
|
|
782
|
+
resp = await sandbox._client.stub.SandboxWait(req)
|
|
761
783
|
if resp.result.exception:
|
|
762
784
|
raise RemoteError(resp.result.exception)
|
|
763
785
|
else:
|
|
@@ -139,7 +139,12 @@ async def _deploy_app(
|
|
|
139
139
|
...
|
|
140
140
|
|
|
141
141
|
async def _interactive_shell(
|
|
142
|
-
_app: modal.app._App,
|
|
142
|
+
_app: modal.app._App,
|
|
143
|
+
cmds: list[str],
|
|
144
|
+
environment_name: str = "",
|
|
145
|
+
pty: bool = True,
|
|
146
|
+
v2: bool = False,
|
|
147
|
+
**kwargs: typing.Any,
|
|
143
148
|
) -> None:
|
|
144
149
|
"""Run an interactive shell (like `bash`) within the image for this app.
|
|
145
150
|
|
|
@@ -267,6 +272,7 @@ class __interactive_shell_spec(typing_extensions.Protocol):
|
|
|
267
272
|
cmds: list[str],
|
|
268
273
|
environment_name: str = "",
|
|
269
274
|
pty: bool = True,
|
|
275
|
+
v2: bool = False,
|
|
270
276
|
**kwargs: typing.Any,
|
|
271
277
|
) -> None:
|
|
272
278
|
"""Run an interactive shell (like `bash`) within the image for this app.
|
|
@@ -299,6 +305,7 @@ class __interactive_shell_spec(typing_extensions.Protocol):
|
|
|
299
305
|
cmds: list[str],
|
|
300
306
|
environment_name: str = "",
|
|
301
307
|
pty: bool = True,
|
|
308
|
+
v2: bool = False,
|
|
302
309
|
**kwargs: typing.Any,
|
|
303
310
|
) -> None:
|
|
304
311
|
"""Run an interactive shell (like `bash`) within the image for this app.
|
|
@@ -2155,11 +2155,7 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
2155
2155
|
|
|
2156
2156
|
@property
|
|
2157
2157
|
def filesystem(self) -> _SandboxFilesystem:
|
|
2158
|
-
"""Namespace for filesystem APIs.
|
|
2159
|
-
|
|
2160
|
-
Returns:
|
|
2161
|
-
A `SandboxFilesystem` helper bound to this sandbox.
|
|
2162
|
-
"""
|
|
2158
|
+
"""Namespace for Sandbox filesystem APIs."""
|
|
2163
2159
|
self._ensure_attached()
|
|
2164
2160
|
if self._filesystem is None:
|
|
2165
2161
|
self._filesystem = _SandboxFilesystem(self)
|
|
@@ -2550,7 +2546,7 @@ class _SidecarContainer:
|
|
|
2550
2546
|
|
|
2551
2547
|
@property
|
|
2552
2548
|
def filesystem(self) -> _SandboxFilesystem:
|
|
2553
|
-
"""Namespace for filesystem APIs."""
|
|
2549
|
+
"""Namespace for Sandbox filesystem APIs."""
|
|
2554
2550
|
if self._filesystem is None:
|
|
2555
2551
|
self._filesystem = _SandboxFilesystem(self)
|
|
2556
2552
|
return self._filesystem
|
|
@@ -855,11 +855,7 @@ class _Sandbox(modal._object._Object):
|
|
|
855
855
|
): ...
|
|
856
856
|
@property
|
|
857
857
|
def filesystem(self) -> modal.sandbox_fs._SandboxFilesystem:
|
|
858
|
-
"""Namespace for filesystem APIs.
|
|
859
|
-
|
|
860
|
-
Returns:
|
|
861
|
-
A `SandboxFilesystem` helper bound to this sandbox.
|
|
862
|
-
"""
|
|
858
|
+
"""Namespace for Sandbox filesystem APIs."""
|
|
863
859
|
...
|
|
864
860
|
|
|
865
861
|
@typing.overload
|
|
@@ -1055,7 +1051,7 @@ class _SidecarContainer:
|
|
|
1055
1051
|
) -> modal.container_process._ContainerProcess[bytes]: ...
|
|
1056
1052
|
@property
|
|
1057
1053
|
def filesystem(self) -> modal.sandbox_fs._SandboxFilesystem:
|
|
1058
|
-
"""Namespace for filesystem APIs."""
|
|
1054
|
+
"""Namespace for Sandbox filesystem APIs."""
|
|
1059
1055
|
...
|
|
1060
1056
|
|
|
1061
1057
|
async def wait(self, raise_on_termination: bool = True) -> None: ...
|
|
@@ -1207,7 +1203,7 @@ class SidecarContainer:
|
|
|
1207
1203
|
|
|
1208
1204
|
@property
|
|
1209
1205
|
def filesystem(self) -> modal.sandbox_fs.SandboxFilesystem:
|
|
1210
|
-
"""Namespace for filesystem APIs."""
|
|
1206
|
+
"""Namespace for Sandbox filesystem APIs."""
|
|
1211
1207
|
...
|
|
1212
1208
|
|
|
1213
1209
|
class __wait_spec(typing_extensions.Protocol):
|
|
@@ -2820,11 +2816,7 @@ class Sandbox(modal.object.Object):
|
|
|
2820
2816
|
|
|
2821
2817
|
@property
|
|
2822
2818
|
def filesystem(self) -> modal.sandbox_fs.SandboxFilesystem:
|
|
2823
|
-
"""Namespace for filesystem APIs.
|
|
2824
|
-
|
|
2825
|
-
Returns:
|
|
2826
|
-
A `SandboxFilesystem` helper bound to this sandbox.
|
|
2827
|
-
"""
|
|
2819
|
+
"""Namespace for Sandbox filesystem APIs."""
|
|
2828
2820
|
...
|
|
2829
2821
|
|
|
2830
2822
|
class __open_spec(typing_extensions.Protocol):
|
|
@@ -66,8 +66,7 @@ def _expand_watch_filter(filter: list[FileWatchEventType]) -> list[str]:
|
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
class _SandboxFilesystem:
|
|
69
|
-
"""mdmd:namespace
|
|
70
|
-
Namespace for Sandbox filesystem APIs."""
|
|
69
|
+
"""mdmd:namespace"""
|
|
71
70
|
|
|
72
71
|
_container: Union["modal.sandbox._Sandbox", "modal.sandbox._SidecarContainer"]
|
|
73
72
|
|
|
@@ -14,9 +14,7 @@ def _expand_watch_filter(filter: list[modal.types.FileWatchEventType]) -> list[s
|
|
|
14
14
|
...
|
|
15
15
|
|
|
16
16
|
class _SandboxFilesystem:
|
|
17
|
-
"""mdmd:namespace
|
|
18
|
-
Namespace for Sandbox filesystem APIs.
|
|
19
|
-
"""
|
|
17
|
+
"""mdmd:namespace"""
|
|
20
18
|
|
|
21
19
|
_container: typing.Union[modal.sandbox._Sandbox, modal.sandbox._SidecarContainer]
|
|
22
20
|
|
|
@@ -356,9 +354,7 @@ class _SandboxFilesystem:
|
|
|
356
354
|
...
|
|
357
355
|
|
|
358
356
|
class SandboxFilesystem:
|
|
359
|
-
"""mdmd:namespace
|
|
360
|
-
Namespace for Sandbox filesystem APIs.
|
|
361
|
-
"""
|
|
357
|
+
"""mdmd:namespace"""
|
|
362
358
|
|
|
363
359
|
_container: typing.Union[modal.sandbox.Sandbox, modal.sandbox.SidecarContainer]
|
|
364
360
|
|
|
@@ -148,7 +148,10 @@ class Workspace(modal.object.Object):
|
|
|
148
148
|
@property
|
|
149
149
|
def name(self) -> typing.Optional[str]: ...
|
|
150
150
|
@property
|
|
151
|
-
def members(self) -> WorkspaceMembersManager:
|
|
151
|
+
def members(self) -> WorkspaceMembersManager:
|
|
152
|
+
"""Namespace with methods for managing the membership of a Workspace."""
|
|
153
|
+
...
|
|
154
|
+
|
|
152
155
|
@staticmethod
|
|
153
156
|
def from_context(*, client: typing.Optional[modal.client.Client] = None) -> Workspace:
|
|
154
157
|
"""Look up the Workspace associated with the current context.
|
|
@@ -161,16 +164,25 @@ class Workspace(modal.object.Object):
|
|
|
161
164
|
...
|
|
162
165
|
|
|
163
166
|
@property
|
|
164
|
-
def billing(self) -> WorkspaceBillingManager:
|
|
167
|
+
def billing(self) -> WorkspaceBillingManager:
|
|
168
|
+
"""Namespace for Workspace billing APIs."""
|
|
169
|
+
...
|
|
170
|
+
|
|
165
171
|
@property
|
|
166
|
-
def proxy_tokens(self) -> WorkspaceProxyTokenManager:
|
|
172
|
+
def proxy_tokens(self) -> WorkspaceProxyTokenManager:
|
|
173
|
+
"""Namespace with methods for managing the proxy tokens in a Workspace.
|
|
174
|
+
|
|
175
|
+
See [the guide](https://modal.com/docs/guide/webhook-proxy-auth) for more information on proxy tokens.
|
|
176
|
+
"""
|
|
177
|
+
...
|
|
178
|
+
|
|
167
179
|
@property
|
|
168
|
-
def settings(self) -> WorkspaceSettingsManager:
|
|
180
|
+
def settings(self) -> WorkspaceSettingsManager:
|
|
181
|
+
"""Namespace for Workspace settings APIs."""
|
|
182
|
+
...
|
|
169
183
|
|
|
170
184
|
class WorkspaceMembersManager:
|
|
171
|
-
"""mdmd:namespace
|
|
172
|
-
Namespace with methods for managing the membership of a Workspace.
|
|
173
|
-
"""
|
|
185
|
+
"""mdmd:namespace"""
|
|
174
186
|
def __init__(self, workspace: Workspace):
|
|
175
187
|
"""mdmd:hidden"""
|
|
176
188
|
...
|
|
@@ -203,9 +215,7 @@ class WorkspaceMembersManager:
|
|
|
203
215
|
list: __list_spec
|
|
204
216
|
|
|
205
217
|
class WorkspaceBillingManager:
|
|
206
|
-
"""mdmd:namespace
|
|
207
|
-
Namespace for Workspace billing APIs.
|
|
208
|
-
"""
|
|
218
|
+
"""mdmd:namespace"""
|
|
209
219
|
def __init__(self, workspace: Workspace):
|
|
210
220
|
"""mdmd:hidden"""
|
|
211
221
|
...
|
|
@@ -288,11 +298,7 @@ class WorkspaceBillingManager:
|
|
|
288
298
|
report: __report_spec
|
|
289
299
|
|
|
290
300
|
class WorkspaceProxyTokenManager:
|
|
291
|
-
"""mdmd:namespace
|
|
292
|
-
Namespace with methods for managing the proxy tokens in a Workspace.
|
|
293
|
-
|
|
294
|
-
See [the guide](https://modal.com/docs/guide/webhook-proxy-auth) for more information on proxy tokens.
|
|
295
|
-
"""
|
|
301
|
+
"""mdmd:namespace"""
|
|
296
302
|
def __init__(self, workspace: Workspace):
|
|
297
303
|
"""mdmd:hidden"""
|
|
298
304
|
...
|
|
@@ -481,9 +487,7 @@ class WorkspaceProxyTokenManager:
|
|
|
481
487
|
_environment_id: ___environment_id_spec
|
|
482
488
|
|
|
483
489
|
class WorkspaceSettingsManager:
|
|
484
|
-
"""mdmd:namespace
|
|
485
|
-
Namespace for Workspace settings APIs.
|
|
486
|
-
"""
|
|
490
|
+
"""mdmd:namespace"""
|
|
487
491
|
def __init__(self, workspace: Workspace):
|
|
488
492
|
"""mdmd:hidden"""
|
|
489
493
|
...
|
|
@@ -429,7 +429,14 @@ def _dataclass_attributes(name, obj, docstring: str) -> list[ParsedParam]:
|
|
|
429
429
|
return attributes
|
|
430
430
|
|
|
431
431
|
|
|
432
|
-
def class_str(
|
|
432
|
+
def class_str(
|
|
433
|
+
name,
|
|
434
|
+
obj,
|
|
435
|
+
title_level="##",
|
|
436
|
+
decl_override: str | None = None,
|
|
437
|
+
member_prefix: str = "",
|
|
438
|
+
docstring_source=None,
|
|
439
|
+
):
|
|
433
440
|
def qual_name(cls):
|
|
434
441
|
if cls.__module__ == "builtins":
|
|
435
442
|
return cls.__name__
|
|
@@ -453,7 +460,9 @@ def class_str(name, obj, title_level="##", decl_override: str | None = None, mem
|
|
|
453
460
|
class {name}{bases_str}
|
|
454
461
|
```\n\n"""
|
|
455
462
|
parts = ["\n", decl]
|
|
456
|
-
if
|
|
463
|
+
if docstring_source is not None:
|
|
464
|
+
docstring = clean_docstring(docstring_source.__doc__)
|
|
465
|
+
elif is_dataclass and _has_autogenerated_dataclass_doc(obj):
|
|
457
466
|
docstring = ""
|
|
458
467
|
else:
|
|
459
468
|
docstring = clean_docstring(obj.__doc__)
|
|
@@ -540,6 +549,7 @@ class {name}{bases_str}
|
|
|
540
549
|
title_level=title_level + "#",
|
|
541
550
|
decl_override=decl,
|
|
542
551
|
member_prefix=f"{member_name}.",
|
|
552
|
+
docstring_source=fget,
|
|
543
553
|
)
|
|
544
554
|
)
|
|
545
555
|
continue
|