modal 1.6.2.dev9__tar.gz → 1.6.2.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.6.2.dev9 → modal-1.6.2.dev10}/PKG-INFO +1 -1
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_workspace.py +14 -11
- modal-1.6.2.dev10/modal/cli/workspace.py +633 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/client.pyi +2 -2
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/functions.pyi +6 -6
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/workspace.pyi +6 -18
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_version/__init__.py +1 -1
- modal-1.6.2.dev9/modal/cli/workspace.py +0 -269
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/LICENSE +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/README.md +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/__main__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_billing.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_cluster.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_cluster.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_container_entrypoint.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_environments.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_function_variants.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_functions.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_grpc_client.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_image.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_ipython.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_load_context.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_location.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_logs.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_logs_manager.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_logs_manager.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_metrics.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_metrics.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_object.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_outbound_policy.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_outbound_policy.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_output/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_output/manager.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_output/pty.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_output/rich.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_output/status.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_partial_function.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_resolver.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_resources.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/asgi.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/execution_context.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/telemetry.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_serialization.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_server.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_server.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_supports_logs.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_traceback.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_tunnel.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_tunnel.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_type_manager.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/app_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/async_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/blob_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/browser_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/curl_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/deprecation.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/display_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/docker_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/function_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/git_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/hash_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/http_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/idle_countdown.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/logger.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/mount_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/name_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/package_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/proxy_support.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/shell_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_utils/time_utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_vendor/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_vendor/tblib.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_vendor/version.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/_watcher.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/app.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/app.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/billing.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/billing.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/2023.12.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/2024.04.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/2024.10.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/2025.06.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/README.md +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/builder/base-images.json +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/call_graph.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/_download.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/_help.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/_logs.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/_stats.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/_traceback.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/app.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/billing.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/changelog.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/config.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/container.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/curl.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/dashboard.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/dict.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/endpoint.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/entry_point.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/environment.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/function.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/image.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/import_refs.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/logo.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/network_file_system.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/profile.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/queues.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/run.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/secret.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/selector.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/server.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/shell.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/skills.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/token.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/utils.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cli/volume.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/client.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cls.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cls.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cluster.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/cluster.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/config.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/container_process.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/container_process.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/dict.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/dict.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/environments.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/environments.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/exception.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/_flash_container_entry.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/flash.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/flash.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/flash_server.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/flash_server.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/experimental/ipython.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/file_pattern_matcher.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/functions.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/image.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/image.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/io_streams.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/io_streams.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/mount.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/mount.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/network_file_system.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/network_file_system.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/object.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/object.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/output.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/parallel_map.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/parallel_map.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/partial_function.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/partial_function.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/proxy.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/proxy.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/py.typed +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/queue.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/queue.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/retries.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/runner.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/runner.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/running_app.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/_common.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/_filesystem.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/_sandbox.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/_sidecar.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/_snapshot.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/_task_command_router_client.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/sandbox.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/sandbox/sandbox.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/schedule.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/scheduler_placement.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/secret.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/secret.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/server.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/server.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/serving.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/serving.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/stream_type.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/token_flow.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/token_flow.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/types.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/volume.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/volume.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal/workspace.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal.egg-info/requires.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal.egg-info/top_level.txt +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/mdmd/types.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_docs/reference_intro.md +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/__init__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/api_grpc.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/api_pb2.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/py.typed +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/modal_version/__main__.py +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/pyproject.toml +0 -0
- {modal-1.6.2.dev9 → modal-1.6.2.dev10}/setup.cfg +0 -0
|
@@ -8,7 +8,7 @@ from typing import Optional
|
|
|
8
8
|
|
|
9
9
|
from google.protobuf.empty_pb2 import Empty
|
|
10
10
|
|
|
11
|
-
from modal.exception import DeprecationError, InvalidError
|
|
11
|
+
from modal.exception import DeprecationError, InvalidError, NotFoundError
|
|
12
12
|
from modal.types import ServiceUserInfo
|
|
13
13
|
from modal_proto import api_pb2
|
|
14
14
|
|
|
@@ -629,8 +629,7 @@ class _WorkspaceServiceUserManager:
|
|
|
629
629
|
service_user_name: The name of the Service User.
|
|
630
630
|
environment_name: The name of the Environment to which the Service User's new role will
|
|
631
631
|
apply.
|
|
632
|
-
role: The access level to grant this Service User.
|
|
633
|
-
`"viewer"`, or `"contributor"`.
|
|
632
|
+
role: The access level to grant this Service User.
|
|
634
633
|
|
|
635
634
|
Examples:
|
|
636
635
|
|
|
@@ -644,6 +643,9 @@ class _WorkspaceServiceUserManager:
|
|
|
644
643
|
```
|
|
645
644
|
"""
|
|
646
645
|
|
|
646
|
+
if not role:
|
|
647
|
+
raise InvalidError("Invalid argument: `role` must not be empty.")
|
|
648
|
+
|
|
647
649
|
if not self._workspace._is_hydrated:
|
|
648
650
|
await self._workspace.hydrate()
|
|
649
651
|
|
|
@@ -663,8 +665,6 @@ class _WorkspaceServiceUserManager:
|
|
|
663
665
|
async def info(self, name: str) -> ServiceUserInfo:
|
|
664
666
|
"""Get information about a specific Service User.
|
|
665
667
|
|
|
666
|
-
To call this function, you are required to have Manager permissions in the Workspace.
|
|
667
|
-
|
|
668
668
|
Args:
|
|
669
669
|
name: The name of the Service User to introspect.
|
|
670
670
|
|
|
@@ -691,8 +691,6 @@ class _WorkspaceServiceUserManager:
|
|
|
691
691
|
async def list(self) -> list[ServiceUserInfo]:
|
|
692
692
|
"""List all Service Users in the current workspace.
|
|
693
693
|
|
|
694
|
-
To call this function, you are required to have Manager permissions in the Workspace.
|
|
695
|
-
|
|
696
694
|
Returns:
|
|
697
695
|
A list of `ServiceUserInfo` dataclasses.
|
|
698
696
|
|
|
@@ -712,13 +710,12 @@ class _WorkspaceServiceUserManager:
|
|
|
712
710
|
|
|
713
711
|
return [ServiceUserInfo._from_proto(su) for su in resp.service_users]
|
|
714
712
|
|
|
715
|
-
async def delete(self, name: str) -> None:
|
|
713
|
+
async def delete(self, name: str, *, allow_missing: bool = False) -> None:
|
|
716
714
|
"""Permanently delete a Service User.
|
|
717
715
|
|
|
718
|
-
To call this function, you are required to have Manager permissions in the Workspace.
|
|
719
|
-
|
|
720
716
|
Args:
|
|
721
717
|
name: The name of the Service User to delete.
|
|
718
|
+
allow_missing: If `True`, do not throw an exception if the Service User does not exist.
|
|
722
719
|
|
|
723
720
|
Examples:
|
|
724
721
|
|
|
@@ -731,4 +728,10 @@ class _WorkspaceServiceUserManager:
|
|
|
731
728
|
if not self._workspace._is_hydrated:
|
|
732
729
|
await self._workspace.hydrate()
|
|
733
730
|
|
|
734
|
-
|
|
731
|
+
try:
|
|
732
|
+
await self._workspace.client._stub.ServiceUserDelete(
|
|
733
|
+
api_pb2.ServiceUserDeleteRequest(service_user_name=name)
|
|
734
|
+
)
|
|
735
|
+
except NotFoundError:
|
|
736
|
+
if not allow_missing:
|
|
737
|
+
raise
|