modal 1.6.3.dev13__tar.gz → 1.6.4.dev1__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.3.dev13 → modal-1.6.4.dev1}/PKG-INFO +1 -1
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_image.py +10 -2
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/client.pyi +2 -2
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/functions.pyi +6 -6
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/image.pyi +10 -2
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/secret.py +15 -7
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/secret.pyi +3 -3
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/types.py +1 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/api_pb2.py +590 -590
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/api_pb2.pyi +12 -6
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_version/__init__.py +1 -1
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/pyproject.toml +2 -2
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/LICENSE +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/README.md +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/__main__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_billing.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_cluster.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_cluster.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_container_entrypoint.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_environments.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_function_variants.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_functions.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_grpc_client.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_ipython.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_load_context.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_location.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_logs.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_logs_manager.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_logs_manager.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_metrics.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_metrics.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_object.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_outbound_policy.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_outbound_policy.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_output/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_output/manager.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_output/pty.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_output/rich.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_output/status.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_partial_function.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_resolver.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_resources.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/asgi.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/execution_context.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/telemetry.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_serialization.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_server.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_server.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_supports_logs.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_traceback.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_tunnel.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_tunnel.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_type_manager.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/app_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/async_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/blob_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/browser_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/curl_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/deprecation.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/display_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/docker_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/function_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/git_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/hash_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/http_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/idle_countdown.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/logger.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/mount_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/name_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/oauth.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/package_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/proxy_support.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/shell_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_utils/time_utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_vendor/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_vendor/tblib.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_vendor/version.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_watcher.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/_workspace.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/app.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/app.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/billing.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/billing.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/2023.12.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/2024.04.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/2024.10.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/2025.06.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/2026.10.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/README.md +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/builder/base-images.json +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/call_graph.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/_download.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/_help.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/_logs.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/_stats.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/_traceback.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/app.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/billing.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/changelog.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/config.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/container.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/curl.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/dashboard.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/dict.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/endpoint.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/entry_point.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/environment.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/function.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/image.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/import_refs.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/logo.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/network_file_system.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/profile.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/queues.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/run.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/secret.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/selector.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/server.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/shell.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/skills.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/token.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/utils.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/volume.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cli/workspace.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/client.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cls.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cls.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cluster.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/cluster.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/config.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/container_process.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/container_process.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/dict.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/dict.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/environments.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/environments.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/exception.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/_flash_container_entry.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/flash.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/flash.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/flash_server.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/flash_server.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/experimental/ipython.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/file_pattern_matcher.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/functions.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/image.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/io_streams.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/io_streams.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/mount.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/mount.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/network_file_system.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/network_file_system.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/object.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/object.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/output.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/parallel_map.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/parallel_map.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/partial_function.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/partial_function.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/proxy.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/proxy.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/py.typed +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/queue.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/queue.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/retries.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/runner.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/runner.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/running_app.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_common.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_filesystem.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_impl_persistent.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_impl_v1.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_impl_v2.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_sandbox.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_sidecar.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_snapshot.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/_task_command_router_client.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/sandbox.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/sandbox/sandbox.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/schedule.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/scheduler_placement.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/server.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/server.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/serving.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/serving.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/stream_type.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/token_flow.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/token_flow.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/volume.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/volume.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/workspace.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal/workspace.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal.egg-info/requires.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal.egg-info/top_level.txt +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/mdmd/types.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_docs/reference_intro.md +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/__init__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/api_grpc.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/py.typed +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/modal_version/__main__.py +0 -0
- {modal-1.6.3.dev13 → modal-1.6.4.dev1}/setup.cfg +0 -0
|
@@ -2407,7 +2407,11 @@ class _Image(_Object, type_prefix="im"):
|
|
|
2407
2407
|
add_python: str | None = None,
|
|
2408
2408
|
**kwargs,
|
|
2409
2409
|
) -> "_Image":
|
|
2410
|
-
"""
|
|
2410
|
+
"""mdmd:hidden
|
|
2411
|
+
Build a Modal image from a private image in Google Cloud Platform (GCP) Artifact Registry.
|
|
2412
|
+
|
|
2413
|
+
**Note:** This constructor is superseded by `Image.from_registry()`, which can also authenticate
|
|
2414
|
+
to private repositories when provided with the appropriate keys in a `modal.Secret`.
|
|
2411
2415
|
|
|
2412
2416
|
You will need to pass a `modal.Secret` containing [your GCP service account key data](https://cloud.google.com/iam/docs/keys-create-delete#creating)
|
|
2413
2417
|
as `SERVICE_ACCOUNT_JSON`. This can be done from the [Secrets](https://modal.com/secrets) page.
|
|
@@ -2468,11 +2472,15 @@ class _Image(_Object, type_prefix="im"):
|
|
|
2468
2472
|
add_python: str | None = None,
|
|
2469
2473
|
**kwargs,
|
|
2470
2474
|
) -> "_Image":
|
|
2471
|
-
"""
|
|
2475
|
+
"""mdmd:hidden
|
|
2476
|
+
Build a Modal image from a private image in AWS Elastic Container Registry (ECR).
|
|
2472
2477
|
|
|
2473
2478
|
You will need to pass a `modal.Secret` containing either IAM user credentials or OIDC
|
|
2474
2479
|
configuration to access the target ECR registry.
|
|
2475
2480
|
|
|
2481
|
+
**Note:** This constructor is superseded by `Image.from_registry()`, which can also authenticate
|
|
2482
|
+
to private repositories when provided with the appropriate keys in a `modal.Secret`.
|
|
2483
|
+
|
|
2476
2484
|
For IAM user authentication, set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_REGION`.
|
|
2477
2485
|
|
|
2478
2486
|
For OIDC authentication, set `AWS_ROLE_ARN` and `AWS_REGION`.
|
|
@@ -87,7 +87,7 @@ class _Client:
|
|
|
87
87
|
server_url: str,
|
|
88
88
|
client_type: int,
|
|
89
89
|
credentials: typing.Optional[tuple[str, str]],
|
|
90
|
-
version: str = "1.6.
|
|
90
|
+
version: str = "1.6.4.dev1",
|
|
91
91
|
*,
|
|
92
92
|
oauth_credentials: typing.Optional[_OAuthCredentials] = None,
|
|
93
93
|
):
|
|
@@ -304,7 +304,7 @@ class Client:
|
|
|
304
304
|
server_url: str,
|
|
305
305
|
client_type: int,
|
|
306
306
|
credentials: typing.Optional[tuple[str, str]],
|
|
307
|
-
version: str = "1.6.
|
|
307
|
+
version: str = "1.6.4.dev1",
|
|
308
308
|
*,
|
|
309
309
|
oauth_credentials: typing.Optional[_OAuthCredentials] = None,
|
|
310
310
|
):
|
|
@@ -619,7 +619,7 @@ class Function(
|
|
|
619
619
|
|
|
620
620
|
_call_generator: ___call_generator_spec
|
|
621
621
|
|
|
622
|
-
class __remote_spec(typing_extensions.Protocol[
|
|
622
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
623
623
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
|
624
624
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result.
|
|
625
625
|
|
|
@@ -644,7 +644,7 @@ class Function(
|
|
|
644
644
|
"""
|
|
645
645
|
...
|
|
646
646
|
|
|
647
|
-
remote: __remote_spec[modal._functions.
|
|
647
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
|
|
648
648
|
|
|
649
649
|
class __remote_gen_spec(typing_extensions.Protocol):
|
|
650
650
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
|
@@ -694,7 +694,7 @@ class Function(
|
|
|
694
694
|
"""
|
|
695
695
|
...
|
|
696
696
|
|
|
697
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
|
697
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
698
698
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
699
699
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
|
700
700
|
|
|
@@ -727,7 +727,7 @@ class Function(
|
|
|
727
727
|
"""
|
|
728
728
|
...
|
|
729
729
|
|
|
730
|
-
_experimental_spawn: ___experimental_spawn_spec[modal._functions.
|
|
730
|
+
_experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
731
731
|
|
|
732
732
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
|
|
733
733
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
|
|
@@ -735,7 +735,7 @@ class Function(
|
|
|
735
735
|
|
|
736
736
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
|
|
737
737
|
|
|
738
|
-
class __spawn_spec(typing_extensions.Protocol[
|
|
738
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
739
739
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
740
740
|
"""Calls the function with the given arguments, without waiting for the results.
|
|
741
741
|
|
|
@@ -768,7 +768,7 @@ class Function(
|
|
|
768
768
|
"""
|
|
769
769
|
...
|
|
770
770
|
|
|
771
|
-
spawn: __spawn_spec[modal._functions.
|
|
771
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
772
772
|
|
|
773
773
|
@property
|
|
774
774
|
def _raw_f_(self) -> collections.abc.Callable[..., typing.Any]: ...
|
|
@@ -946,7 +946,11 @@ class Image(modal.object.Object):
|
|
|
946
946
|
add_python: typing.Optional[str] = None,
|
|
947
947
|
**kwargs,
|
|
948
948
|
) -> Image:
|
|
949
|
-
"""
|
|
949
|
+
"""mdmd:hidden
|
|
950
|
+
Build a Modal image from a private image in Google Cloud Platform (GCP) Artifact Registry.
|
|
951
|
+
|
|
952
|
+
**Note:** This constructor is superseded by `Image.from_registry()`, which can also authenticate
|
|
953
|
+
to private repositories when provided with the appropriate keys in a `modal.Secret`.
|
|
950
954
|
|
|
951
955
|
You will need to pass a `modal.Secret` containing [your GCP service account key data](https://cloud.google.com/iam/docs/keys-create-delete#creating)
|
|
952
956
|
as `SERVICE_ACCOUNT_JSON`. This can be done from the [Secrets](https://modal.com/secrets) page.
|
|
@@ -997,11 +1001,15 @@ class Image(modal.object.Object):
|
|
|
997
1001
|
add_python: typing.Optional[str] = None,
|
|
998
1002
|
**kwargs,
|
|
999
1003
|
) -> Image:
|
|
1000
|
-
"""
|
|
1004
|
+
"""mdmd:hidden
|
|
1005
|
+
Build a Modal image from a private image in AWS Elastic Container Registry (ECR).
|
|
1001
1006
|
|
|
1002
1007
|
You will need to pass a `modal.Secret` containing either IAM user credentials or OIDC
|
|
1003
1008
|
configuration to access the target ECR registry.
|
|
1004
1009
|
|
|
1010
|
+
**Note:** This constructor is superseded by `Image.from_registry()`, which can also authenticate
|
|
1011
|
+
to private repositories when provided with the appropriate keys in a `modal.Secret`.
|
|
1012
|
+
|
|
1005
1013
|
For IAM user authentication, set `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_REGION`.
|
|
1006
1014
|
|
|
1007
1015
|
For OIDC authentication, set `AWS_ROLE_ARN` and `AWS_REGION`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import builtins
|
|
3
3
|
import os
|
|
4
4
|
from collections.abc import Collection
|
|
5
|
-
from datetime import datetime
|
|
5
|
+
from datetime import datetime, timezone
|
|
6
6
|
from pathlib import Path
|
|
7
7
|
from typing import Callable
|
|
8
8
|
|
|
@@ -316,13 +316,15 @@ class _Secret(_Object, type_prefix="st"):
|
|
|
316
316
|
```
|
|
317
317
|
"""
|
|
318
318
|
if not isinstance(env_dict, dict):
|
|
319
|
-
raise InvalidError(ENV_DICT_WRONG_TYPE_ERR)
|
|
319
|
+
raise InvalidError(f"{ENV_DICT_WRONG_TYPE_ERR}, got {type(env_dict).__name__}")
|
|
320
320
|
|
|
321
321
|
env_dict_filtered: dict[str, str] = {k: v for k, v in env_dict.items() if v is not None}
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
322
|
+
for key in env_dict_filtered.keys():
|
|
323
|
+
if not isinstance(key, str):
|
|
324
|
+
raise InvalidError(f"{ENV_DICT_WRONG_TYPE_ERR}, key has type {type(key).__name__}")
|
|
325
|
+
for key, value in env_dict_filtered.items():
|
|
326
|
+
if not isinstance(value, str):
|
|
327
|
+
raise InvalidError(f"{ENV_DICT_WRONG_TYPE_ERR}, value for key {key!r} has type {type(value).__name__}")
|
|
326
328
|
|
|
327
329
|
def _load_env_dict() -> dict[str, str]:
|
|
328
330
|
return env_dict_filtered
|
|
@@ -551,15 +553,21 @@ class _Secret(_Object, type_prefix="st"):
|
|
|
551
553
|
return resp.secret_id
|
|
552
554
|
|
|
553
555
|
@live_method
|
|
554
|
-
async def info(self) -> SecretInfo:
|
|
556
|
+
async def info(self, *, refresh: bool = False) -> SecretInfo:
|
|
555
557
|
"""Return information about the Secret object."""
|
|
558
|
+
if refresh:
|
|
559
|
+
await self._refresh_metadata()
|
|
560
|
+
|
|
556
561
|
metadata = self._get_metadata()
|
|
557
562
|
creation_info = metadata.creation_info
|
|
563
|
+
last_used = datetime.fromtimestamp(metadata.last_used_at, tz=timezone.utc)
|
|
564
|
+
|
|
558
565
|
return SecretInfo(
|
|
559
566
|
name=metadata.name or None,
|
|
560
567
|
created_at=timestamp_to_localized_dt(creation_info.created_at),
|
|
561
568
|
created_by=creation_info.created_by or None,
|
|
562
569
|
environment_name=metadata.environment_name,
|
|
570
|
+
last_used=last_used if last_used.timestamp() > 0 else None,
|
|
563
571
|
)
|
|
564
572
|
|
|
565
573
|
@live_method
|
|
@@ -588,7 +588,7 @@ class _Secret(modal._object._Object):
|
|
|
588
588
|
"""mdmd:hidden"""
|
|
589
589
|
...
|
|
590
590
|
|
|
591
|
-
async def info(self) -> modal.types.SecretInfo:
|
|
591
|
+
async def info(self, *, refresh: bool = False) -> modal.types.SecretInfo:
|
|
592
592
|
"""Return information about the Secret object."""
|
|
593
593
|
...
|
|
594
594
|
|
|
@@ -820,11 +820,11 @@ class Secret(modal.object.Object):
|
|
|
820
820
|
_create_deployed: typing.ClassVar[___create_deployed_spec]
|
|
821
821
|
|
|
822
822
|
class __info_spec(typing_extensions.Protocol):
|
|
823
|
-
def __call__(self,
|
|
823
|
+
def __call__(self, /, *, refresh: bool = False) -> modal.types.SecretInfo:
|
|
824
824
|
"""Return information about the Secret object."""
|
|
825
825
|
...
|
|
826
826
|
|
|
827
|
-
async def aio(self,
|
|
827
|
+
async def aio(self, /, *, refresh: bool = False) -> modal.types.SecretInfo:
|
|
828
828
|
"""Return information about the Secret object."""
|
|
829
829
|
...
|
|
830
830
|
|