modal 1.6.2.dev1__tar.gz → 1.6.2.dev2__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.dev1 → modal-1.6.2.dev2}/PKG-INFO +1 -1
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_output/status.py +10 -7
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_workspace.py +3 -2
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/app.py +5 -5
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/client.pyi +2 -2
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/_flash_container_entry.py +1 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/runner.py +1 -1
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/workspace.pyi +3 -1
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/api_pb2.py +1080 -1080
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/api_pb2.pyi +17 -3
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_version/__init__.py +1 -1
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/pyproject.toml +2 -2
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/LICENSE +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/README.md +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/__main__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_billing.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_cluster.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_cluster.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_container_entrypoint.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_environments.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_function_variants.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_functions.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_grpc_client.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_image.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_ipython.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_load_context.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_location.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_logs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_logs_manager.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_logs_manager.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_object.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_outbound_policy.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_outbound_policy.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_output/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_output/manager.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_output/pty.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_output/rich.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_partial_function.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_resolver.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_resources.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/asgi.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/execution_context.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/telemetry.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_serialization.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_server.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_server.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_supports_logs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_traceback.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_tunnel.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_tunnel.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_type_manager.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/app_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/async_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/blob_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/browser_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/curl_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/deprecation.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/display_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/docker_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/function_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/git_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/hash_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/http_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/idle_countdown.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/logger.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/mount_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/name_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/package_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/proxy_support.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/shell_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_utils/time_utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_vendor/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_vendor/tblib.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_vendor/version.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/_watcher.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/app.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/app.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/billing.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/billing.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/2023.12.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/2024.04.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/2024.10.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/2025.06.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/README.md +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/builder/base-images.json +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/call_graph.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/_download.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/_help.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/_logs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/_stats.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/_traceback.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/billing.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/changelog.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/config.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/container.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/curl.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/dashboard.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/dict.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/endpoint.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/entry_point.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/environment.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/function.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/image.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/import_refs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/logo.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/network_file_system.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/profile.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/queues.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/run.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/secret.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/selector.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/server.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/shell.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/skills.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/token.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/utils.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/volume.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cli/workspace.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/client.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cls.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cls.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cluster.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/cluster.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/config.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/container_process.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/container_process.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/dict.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/dict.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/environments.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/environments.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/exception.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/flash.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/flash.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/flash_server.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/flash_server.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/experimental/ipython.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/file_pattern_matcher.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/functions.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/functions.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/image.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/image.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/io_streams.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/io_streams.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/mount.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/mount.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/network_file_system.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/network_file_system.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/object.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/object.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/output.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/parallel_map.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/parallel_map.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/partial_function.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/partial_function.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/proxy.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/proxy.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/py.typed +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/queue.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/queue.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/retries.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/runner.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/running_app.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/sandbox.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/sandbox.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/sandbox_fs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/sandbox_fs.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/schedule.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/scheduler_placement.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/secret.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/secret.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/server.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/server.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/serving.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/serving.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/snapshot.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/snapshot.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/stream_type.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/token_flow.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/token_flow.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/types.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/volume.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/volume.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal/workspace.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal.egg-info/requires.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal.egg-info/top_level.txt +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/mdmd/types.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_docs/reference_intro.md +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/__init__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/api_grpc.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/py.typed +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/modal_version/__main__.py +0 -0
- {modal-1.6.2.dev1 → modal-1.6.2.dev2}/setup.cfg +0 -0
|
@@ -20,6 +20,11 @@ def _get_annotation_for_web_url(url_info: api_pb2.WebUrlInfo) -> str:
|
|
|
20
20
|
return suffix
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
def _format_url(url: str) -> str:
|
|
24
|
+
# OSC 8 hyperlinks stay clickable when the URL wraps across lines
|
|
25
|
+
return f"[dim underline][link={url}]{url}[/link][/dim underline]"
|
|
26
|
+
|
|
27
|
+
|
|
23
28
|
class FunctionCreationStatus:
|
|
24
29
|
"""Context manager for tracking and displaying function creation progress."""
|
|
25
30
|
|
|
@@ -58,9 +63,9 @@ class FunctionCreationStatus:
|
|
|
58
63
|
suffix = _get_annotation_for_web_url(url_info)
|
|
59
64
|
|
|
60
65
|
self.status_row.finish(f"Created {self.type} [green]{self.name}[/green]")
|
|
61
|
-
self.status_row.details(f"
|
|
66
|
+
self.status_row.details(f"{_format_url(web_url)}{auth_suffix}{suffix}")
|
|
62
67
|
for custom_domain in self.response.function.custom_domain_info:
|
|
63
|
-
self.status_row.details(f"Custom domain:
|
|
68
|
+
self.status_row.details(f"Custom domain: {_format_url(custom_domain.url)}")
|
|
64
69
|
|
|
65
70
|
elif self.response.function.flash_service_urls:
|
|
66
71
|
# Despite the gRPC API types, Servers only have one URL
|
|
@@ -68,7 +73,7 @@ class FunctionCreationStatus:
|
|
|
68
73
|
auth_suffix = " 🔑" if authenticated else " [yellow](unauthenticated)[/yellow]"
|
|
69
74
|
self.status_row.finish(f"Created {self.type} [green]{self.name}[/green]")
|
|
70
75
|
url = self.response.function.flash_service_urls[0]
|
|
71
|
-
self.status_row.details(f"
|
|
76
|
+
self.status_row.details(f"{_format_url(url)}{auth_suffix}")
|
|
72
77
|
|
|
73
78
|
else:
|
|
74
79
|
self.status_row.finish(f"Created {self.type} [green]{self.name}[/green].")
|
|
@@ -81,10 +86,8 @@ class FunctionCreationStatus:
|
|
|
81
86
|
auth_suffix = " 🔑" if authenticated else " [yellow](unauthenticated)[/yellow]"
|
|
82
87
|
self.status_row.details(
|
|
83
88
|
f"{method_definition.function_name} -> "
|
|
84
|
-
f"
|
|
89
|
+
f"{_format_url(method_definition.web_url)}{auth_suffix}{suffix}"
|
|
85
90
|
)
|
|
86
91
|
for custom_domain in method_definition.custom_domain_info:
|
|
87
92
|
indent = len(method_definition.function_name) * " "
|
|
88
|
-
self.status_row.details(
|
|
89
|
-
f"{indent} -> [dim underline]{custom_domain.url}[/dim underline]{auth_suffix}"
|
|
90
|
-
)
|
|
93
|
+
self.status_row.details(f"{indent} -> {_format_url(custom_domain.url)}{auth_suffix}")
|
|
@@ -495,7 +495,8 @@ class _WorkspaceSettingsManager:
|
|
|
495
495
|
"""mdmd:namespace"""
|
|
496
496
|
|
|
497
497
|
@classmethod
|
|
498
|
-
def
|
|
498
|
+
def _valid_settings(cls):
|
|
499
|
+
"""mdmd:hidden"""
|
|
499
500
|
return ("default-environment", "image-builder-version")
|
|
500
501
|
|
|
501
502
|
def __init__(self, workspace: _Workspace):
|
|
@@ -554,4 +555,4 @@ class _WorkspaceSettingsManager:
|
|
|
554
555
|
case "default-environment":
|
|
555
556
|
await self._set_default_environment(value)
|
|
556
557
|
case _:
|
|
557
|
-
raise ValueError(f"Unknown setting {name!r}. Valid settings: {', '.join(self.
|
|
558
|
+
raise ValueError(f"Unknown setting {name!r}. Valid settings: {', '.join(self._valid_settings())}")
|
|
@@ -225,12 +225,12 @@ async def rollover(
|
|
|
225
225
|
await _stop_and_wait_for_containers(client, app_id, response.deployed_at, env)
|
|
226
226
|
except Exception as exc:
|
|
227
227
|
warnings.warn(f"App updated successfully, but containers did not all terminate. {exc}", UserWarning)
|
|
228
|
-
output_mgr.print(f"\nView Deployment: [magenta]{response.url}[/magenta]")
|
|
228
|
+
output_mgr.print(f"\nView Deployment: [magenta][link={response.url}]{response.url}[/link][/magenta]")
|
|
229
229
|
sys.exit(1)
|
|
230
230
|
|
|
231
231
|
duration = time.monotonic() - t0
|
|
232
232
|
output_mgr.step_completed(f"Rollover completed in {duration:.3f}s with {strategy} strategy! 🎉")
|
|
233
|
-
output_mgr.print(f"\nView Deployment: [magenta]{response.url}[/magenta]")
|
|
233
|
+
output_mgr.print(f"\nView Deployment: [magenta][link={response.url}]{response.url}[/link][/magenta]")
|
|
234
234
|
|
|
235
235
|
|
|
236
236
|
@app_cli.command("promote", panel="Management", no_args_is_help=True, hidden=True)
|
|
@@ -281,7 +281,7 @@ async def promote(
|
|
|
281
281
|
|
|
282
282
|
output_mgr = OutputManager.get()
|
|
283
283
|
output_mgr.print(f"[green]✓[/green] Promoted App to v{version_number}!")
|
|
284
|
-
output_mgr.print(f"\nView Deployment: [magenta]{resp.url}[/magenta]")
|
|
284
|
+
output_mgr.print(f"\nView Deployment: [magenta][link={resp.url}]{resp.url}[/link][/magenta]")
|
|
285
285
|
|
|
286
286
|
|
|
287
287
|
@app_cli.command(
|
|
@@ -356,10 +356,10 @@ async def rollback(
|
|
|
356
356
|
warnings.warn(
|
|
357
357
|
f"App rollback executed successfully, but containers did not all terminate. {exc}", UserWarning
|
|
358
358
|
)
|
|
359
|
-
output_mgr.print(f"\nView Deployment: [magenta]{resp.url}[/magenta]")
|
|
359
|
+
output_mgr.print(f"\nView Deployment: [magenta][link={resp.url}]{resp.url}[/link][/magenta]")
|
|
360
360
|
sys.exit(1)
|
|
361
361
|
output_mgr.print("[green]✓[/green] Deployment rollback successful!")
|
|
362
|
-
output_mgr.print(f"\nView Deployment: [magenta]{resp.url}[/magenta]")
|
|
362
|
+
output_mgr.print(f"\nView Deployment: [magenta][link={resp.url}]{resp.url}[/link][/magenta]")
|
|
363
363
|
|
|
364
364
|
|
|
365
365
|
@app_cli.command("stop", panel="Management", no_args_is_help=True)
|
|
@@ -80,7 +80,7 @@ class _Client:
|
|
|
80
80
|
server_url: str,
|
|
81
81
|
client_type: int,
|
|
82
82
|
credentials: typing.Optional[tuple[str, str]],
|
|
83
|
-
version: str = "1.6.2.
|
|
83
|
+
version: str = "1.6.2.dev2",
|
|
84
84
|
*,
|
|
85
85
|
oauth_credentials: typing.Optional[_OAuthCredentials] = None,
|
|
86
86
|
):
|
|
@@ -290,7 +290,7 @@ class Client:
|
|
|
290
290
|
server_url: str,
|
|
291
291
|
client_type: int,
|
|
292
292
|
credentials: typing.Optional[tuple[str, str]],
|
|
293
|
-
version: str = "1.6.2.
|
|
293
|
+
version: str = "1.6.2.dev2",
|
|
294
294
|
*,
|
|
295
295
|
oauth_credentials: typing.Optional[_OAuthCredentials] = None,
|
|
296
296
|
):
|
|
@@ -697,7 +697,7 @@ async def _deploy_app(
|
|
|
697
697
|
else:
|
|
698
698
|
output_mgr.step_completed(f"App deployed in {t:.3f}s! 🎉")
|
|
699
699
|
|
|
700
|
-
output_mgr.print(f"\nView Deployment: [magenta]{app_url}[/magenta]")
|
|
700
|
+
output_mgr.print(f"\nView Deployment: [magenta][link={app_url}]{app_url}[/link][/magenta]")
|
|
701
701
|
return DeployResult(
|
|
702
702
|
app_id=running_app.app_id,
|
|
703
703
|
app_page_url=running_app.app_page_url,
|