modal 1.5.5.dev3__tar.gz → 1.5.5.dev5__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.5.dev3 → modal-1.5.5.dev5}/PKG-INFO +1 -1
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/app.py +1 -28
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/app.pyi +0 -26
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/client.pyi +2 -2
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/functions.pyi +6 -6
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/sandbox.py +6 -1
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/sandbox.pyi +15 -3
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal.egg-info/PKG-INFO +1 -1
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_version/__init__.py +1 -1
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/LICENSE +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/README.md +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/__main__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_billing.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_clustered_functions.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_clustered_functions.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_container_entrypoint.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_environments.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_function_variants.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_functions.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_grpc_client.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_image.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_ipython.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_load_context.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_location.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_logs.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_logs_manager.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_logs_manager.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_object.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_output/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_output/manager.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_output/pty.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_output/rich.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_output/status.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_partial_function.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_resolver.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_resources.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/asgi.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/container_io_manager.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/container_io_manager.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/execution_context.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/execution_context.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/gpu_memory_snapshot.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/task_lifecycle_manager.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/task_lifecycle_manager.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/telemetry.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/user_code_event_loop.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_runtime/user_code_imports.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_serialization.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_server.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_supports_logs.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_traceback.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_tunnel.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_tunnel.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_type_manager.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/app_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/async_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/auth_token_manager.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/blob_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/browser_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/bytes_io_segment_payload.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/curl_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/deprecation.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/display_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/docker_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/function_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/git_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/grpc_testing.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/grpc_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/hash_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/http_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/jwt_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/logger.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/mount_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/name_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/package_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/pattern_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/proxy_support.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/rand_pb_testing.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/sandbox_fs_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/shell_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/task_command_router_client.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_utils/time_utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_vendor/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_vendor/a2wsgi_wsgi.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_vendor/cloudpickle.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_vendor/tblib.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_vendor/version.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_watcher.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/_workspace.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/billing.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/billing.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/2023.12.312.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/2023.12.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/2024.04.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/2024.10.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/2025.06.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/PREVIEW.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/README.md +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/builder/base-images.json +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/call_graph.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/_download.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/_help.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/_traceback.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/app.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/billing.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/bootstrap.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/changelog.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/cluster.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/config.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/container.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/curl.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/dashboard.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/dict.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/endpoint.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/entry_point.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/environment.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/image.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/import_refs.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/launch.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/logo.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/network_file_system.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/profile.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/programs/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/programs/run_jupyter.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/programs/vscode.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/queues.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/run.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/secret.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/selector.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/shell.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/skills.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/token.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/utils.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/volume.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cli/workspace.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/client.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cloud_bucket_mount.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cloud_bucket_mount.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cls.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/cls.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/config.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/container_process.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/container_process.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/dict.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/dict.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/environments.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/environments.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/exception.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/experimental/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/experimental/flash.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/experimental/flash.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/experimental/ipython.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/file_io.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/file_io.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/file_pattern_matcher.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/functions.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/image.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/image.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/io_streams.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/io_streams.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/mount.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/mount.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/network_file_system.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/network_file_system.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/object.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/object.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/output.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/parallel_map.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/parallel_map.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/partial_function.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/partial_function.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/proxy.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/proxy.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/py.typed +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/queue.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/queue.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/retries.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/runner.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/runner.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/running_app.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/sandbox_fs.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/sandbox_fs.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/schedule.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/scheduler_placement.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/secret.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/secret.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/server.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/server.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/serving.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/serving.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/skills/modal/SKILL.md +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/snapshot.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/snapshot.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/stream_type.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/token_flow.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/token_flow.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/types.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/volume.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/volume.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/workspace.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal/workspace.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal.egg-info/SOURCES.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal.egg-info/dependency_links.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal.egg-info/entry_points.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal.egg-info/requires.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal.egg-info/top_level.txt +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/gen_cli_docs.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/gen_cli_docs_main.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/gen_reference_docs.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/gen_reference_docs_main.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/mdmd/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/mdmd/mdmd.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/mdmd/signatures.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/mdmd/types.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_docs/reference_intro.md +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/__init__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/api_grpc.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/api_pb2.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/api_pb2.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/api_pb2_grpc.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/api_pb2_grpc.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/modal_api_grpc.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/py.typed +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/task_command_router_grpc.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/task_command_router_pb2.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/task_command_router_pb2.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/task_command_router_pb2_grpc.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_proto/task_command_router_pb2_grpc.pyi +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/modal_version/__main__.py +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/pyproject.toml +0 -0
- {modal-1.5.5.dev3 → modal-1.5.5.dev5}/setup.cfg +0 -0
|
@@ -1579,33 +1579,6 @@ class _App:
|
|
|
1579
1579
|
resp = await client.stub.AppGetTags(req)
|
|
1580
1580
|
return dict(resp.tags)
|
|
1581
1581
|
|
|
1582
|
-
async def _logs(self, client: _Client | None = None) -> AsyncGenerator[str, None]:
|
|
1583
|
-
"""Stream logs from the app.
|
|
1584
|
-
|
|
1585
|
-
This method is considered private and its interface may change - use at your own risk!
|
|
1586
|
-
"""
|
|
1587
|
-
if not self._app_id:
|
|
1588
|
-
raise InvalidError("`app._logs` requires a running/stopped app.")
|
|
1589
|
-
|
|
1590
|
-
client = client or self._client or await _Client.from_env()
|
|
1591
|
-
|
|
1592
|
-
last_log_batch_entry_id: str | None = None
|
|
1593
|
-
while True:
|
|
1594
|
-
request = api_pb2.AppGetLogsRequest(
|
|
1595
|
-
app_id=self._app_id,
|
|
1596
|
-
timeout=55,
|
|
1597
|
-
last_entry_id=last_log_batch_entry_id,
|
|
1598
|
-
)
|
|
1599
|
-
async for log_batch in client.stub.AppGetLogs.unary_stream(request):
|
|
1600
|
-
if log_batch.entry_id:
|
|
1601
|
-
# log_batch entry_id is empty for fd="server" messages from AppGetLogs
|
|
1602
|
-
last_log_batch_entry_id = log_batch.entry_id
|
|
1603
|
-
if log_batch.app_done:
|
|
1604
|
-
return
|
|
1605
|
-
for log in log_batch.items:
|
|
1606
|
-
if log.data:
|
|
1607
|
-
yield log.data
|
|
1608
|
-
|
|
1609
1582
|
@classmethod
|
|
1610
1583
|
def _get_container_app(cls) -> "_App | None":
|
|
1611
1584
|
"""Returns the `App` running inside a container.
|
|
@@ -1621,7 +1594,7 @@ class _App:
|
|
|
1621
1594
|
async def _get_log_query_data(self) -> _LogQueryData:
|
|
1622
1595
|
"""Get the data needed to query logs for this app."""
|
|
1623
1596
|
if not self._app_id:
|
|
1624
|
-
raise InvalidError("`app.
|
|
1597
|
+
raise InvalidError("`app.logs` requires a running/stopped app.")
|
|
1625
1598
|
client = self._client or await _Client.from_env()
|
|
1626
1599
|
filters = LogsFilters()
|
|
1627
1600
|
return _LogQueryData(client=client, app_id=self._app_id, filters=filters, source_object_id=self._app_id)
|
|
@@ -898,13 +898,6 @@ class _App:
|
|
|
898
898
|
"""
|
|
899
899
|
...
|
|
900
900
|
|
|
901
|
-
def _logs(self, client: typing.Optional[modal.client._Client] = None) -> collections.abc.AsyncGenerator[str, None]:
|
|
902
|
-
"""Stream logs from the app.
|
|
903
|
-
|
|
904
|
-
This method is considered private and its interface may change - use at your own risk!
|
|
905
|
-
"""
|
|
906
|
-
...
|
|
907
|
-
|
|
908
901
|
@classmethod
|
|
909
902
|
def _get_container_app(cls) -> typing.Optional[_App]:
|
|
910
903
|
"""Returns the `App` running inside a container.
|
|
@@ -1960,25 +1953,6 @@ class App:
|
|
|
1960
1953
|
|
|
1961
1954
|
get_tags: __get_tags_spec
|
|
1962
1955
|
|
|
1963
|
-
class ___logs_spec(typing_extensions.Protocol):
|
|
1964
|
-
def __call__(self, /, client: typing.Optional[modal.client.Client] = None) -> typing.Generator[str, None, None]:
|
|
1965
|
-
"""Stream logs from the app.
|
|
1966
|
-
|
|
1967
|
-
This method is considered private and its interface may change - use at your own risk!
|
|
1968
|
-
"""
|
|
1969
|
-
...
|
|
1970
|
-
|
|
1971
|
-
def aio(
|
|
1972
|
-
self, /, client: typing.Optional[modal.client.Client] = None
|
|
1973
|
-
) -> collections.abc.AsyncGenerator[str, None]:
|
|
1974
|
-
"""Stream logs from the app.
|
|
1975
|
-
|
|
1976
|
-
This method is considered private and its interface may change - use at your own risk!
|
|
1977
|
-
"""
|
|
1978
|
-
...
|
|
1979
|
-
|
|
1980
|
-
_logs: ___logs_spec
|
|
1981
|
-
|
|
1982
1956
|
@classmethod
|
|
1983
1957
|
def _get_container_app(cls) -> typing.Optional[App]:
|
|
1984
1958
|
"""Returns the `App` running inside a container.
|
|
@@ -38,7 +38,7 @@ class _Client:
|
|
|
38
38
|
server_url: str,
|
|
39
39
|
client_type: int,
|
|
40
40
|
credentials: typing.Optional[tuple[str, str]],
|
|
41
|
-
version: str = "1.5.5.
|
|
41
|
+
version: str = "1.5.5.dev5",
|
|
42
42
|
):
|
|
43
43
|
"""mdmd:hidden
|
|
44
44
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -209,7 +209,7 @@ class Client:
|
|
|
209
209
|
server_url: str,
|
|
210
210
|
client_type: int,
|
|
211
211
|
credentials: typing.Optional[tuple[str, str]],
|
|
212
|
-
version: str = "1.5.5.
|
|
212
|
+
version: str = "1.5.5.dev5",
|
|
213
213
|
):
|
|
214
214
|
"""mdmd:hidden
|
|
215
215
|
The Modal client object is not intended to be instantiated directly by users.
|
|
@@ -546,7 +546,7 @@ class Function(
|
|
|
546
546
|
|
|
547
547
|
_call_generator: ___call_generator_spec
|
|
548
548
|
|
|
549
|
-
class __remote_spec(typing_extensions.Protocol[
|
|
549
|
+
class __remote_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
550
550
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> ReturnType_INNER:
|
|
551
551
|
"""Calls the function remotely, executing it with the given arguments and returning the execution's result.
|
|
552
552
|
|
|
@@ -571,7 +571,7 @@ class Function(
|
|
|
571
571
|
"""
|
|
572
572
|
...
|
|
573
573
|
|
|
574
|
-
remote: __remote_spec[modal._functions.
|
|
574
|
+
remote: __remote_spec[modal._functions.ReturnType, modal._functions.P]
|
|
575
575
|
|
|
576
576
|
class __remote_gen_spec(typing_extensions.Protocol):
|
|
577
577
|
def __call__(self, /, *args, **kwargs) -> typing.Generator[typing.Any, None, None]:
|
|
@@ -621,7 +621,7 @@ class Function(
|
|
|
621
621
|
"""
|
|
622
622
|
...
|
|
623
623
|
|
|
624
|
-
class ___experimental_spawn_spec(typing_extensions.Protocol[
|
|
624
|
+
class ___experimental_spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
625
625
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
626
626
|
"""[Experimental] Calls the function with the given arguments, without waiting for the results.
|
|
627
627
|
|
|
@@ -654,7 +654,7 @@ class Function(
|
|
|
654
654
|
"""
|
|
655
655
|
...
|
|
656
656
|
|
|
657
|
-
_experimental_spawn: ___experimental_spawn_spec[modal._functions.
|
|
657
|
+
_experimental_spawn: ___experimental_spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
658
658
|
|
|
659
659
|
class ___spawn_map_inner_spec(typing_extensions.Protocol[P_INNER]):
|
|
660
660
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> None: ...
|
|
@@ -662,7 +662,7 @@ class Function(
|
|
|
662
662
|
|
|
663
663
|
_spawn_map_inner: ___spawn_map_inner_spec[modal._functions.P]
|
|
664
664
|
|
|
665
|
-
class __spawn_spec(typing_extensions.Protocol[
|
|
665
|
+
class __spawn_spec(typing_extensions.Protocol[ReturnType_INNER, P_INNER]):
|
|
666
666
|
def __call__(self, /, *args: P_INNER.args, **kwargs: P_INNER.kwargs) -> FunctionCall[ReturnType_INNER]:
|
|
667
667
|
"""Calls the function with the given arguments, without waiting for the results.
|
|
668
668
|
|
|
@@ -695,7 +695,7 @@ class Function(
|
|
|
695
695
|
"""
|
|
696
696
|
...
|
|
697
697
|
|
|
698
|
-
spawn: __spawn_spec[modal._functions.
|
|
698
|
+
spawn: __spawn_spec[modal._functions.ReturnType, modal._functions.P]
|
|
699
699
|
|
|
700
700
|
def get_raw_f(self) -> collections.abc.Callable[..., typing.Any]:
|
|
701
701
|
"""Return the inner Python object wrapped by this Modal Function.
|
|
@@ -1389,13 +1389,15 @@ class _Sandbox(_Object, type_prefix="sb"):
|
|
|
1389
1389
|
`modal.Sandbox._experimental_create`. A name may only be set once and
|
|
1390
1390
|
only on a Sandbox that has never had one; afterwards the Sandbox can
|
|
1391
1391
|
be looked up with `Sandbox._experimental_from_name(app_name, name)`.
|
|
1392
|
+
Repeating the Sandbox's current name is idempotent and succeeds, so
|
|
1393
|
+
the call is safe to retry.
|
|
1392
1394
|
|
|
1393
1395
|
Args:
|
|
1394
1396
|
name: Name to assign to the Sandbox. Must be unique within the App.
|
|
1395
1397
|
|
|
1396
1398
|
Raises:
|
|
1397
1399
|
AlreadyExistsError: If another running Sandbox in the App already holds the name.
|
|
1398
|
-
ConflictError: If the Sandbox already has a name or is no longer running.
|
|
1400
|
+
ConflictError: If the Sandbox already has a different name or is no longer running.
|
|
1399
1401
|
"""
|
|
1400
1402
|
self._ensure_attached()
|
|
1401
1403
|
if not self._is_v2:
|
|
@@ -2875,6 +2877,7 @@ class _SidecarManager:
|
|
|
2875
2877
|
volumes: dict[str | os.PathLike, _Volume] | None = None,
|
|
2876
2878
|
outbound_cidr_allowlist: Sequence[str] | None = None,
|
|
2877
2879
|
outbound_domain_allowlist: Sequence[str] | None = None,
|
|
2880
|
+
pty: bool = False,
|
|
2878
2881
|
) -> _SidecarContainer:
|
|
2879
2882
|
"""Create a sidecar container running alongside the Sandbox's main container.
|
|
2880
2883
|
|
|
@@ -2901,6 +2904,7 @@ class _SidecarManager:
|
|
|
2901
2904
|
main container.
|
|
2902
2905
|
outbound_domain_allowlist: If set, restrict the sidecar's outbound TLS connections (port
|
|
2903
2906
|
443) to these SNI domains. Supports wildcards like ``*.example.com``.
|
|
2907
|
+
pty: Whether to enable PTY for the sidecar container.
|
|
2904
2908
|
|
|
2905
2909
|
Returns:
|
|
2906
2910
|
A `SidecarContainer` handle for the running container.
|
|
@@ -2956,6 +2960,7 @@ class _SidecarManager:
|
|
|
2956
2960
|
secret_ids=[secret.object_id for secret in secrets],
|
|
2957
2961
|
volume_mounts=volume_mounts,
|
|
2958
2962
|
network_access=_build_outbound_network_access(False, outbound_cidr_allowlist, outbound_domain_allowlist),
|
|
2963
|
+
pty_info=_Sandbox._default_pty_info() if pty else None,
|
|
2959
2964
|
)
|
|
2960
2965
|
create_resp = await command_router_client.container_create(create_req)
|
|
2961
2966
|
container_id = create_resp.container_id
|
|
@@ -564,13 +564,15 @@ class _Sandbox(modal._object._Object):
|
|
|
564
564
|
`modal.Sandbox._experimental_create`. A name may only be set once and
|
|
565
565
|
only on a Sandbox that has never had one; afterwards the Sandbox can
|
|
566
566
|
be looked up with `Sandbox._experimental_from_name(app_name, name)`.
|
|
567
|
+
Repeating the Sandbox's current name is idempotent and succeeds, so
|
|
568
|
+
the call is safe to retry.
|
|
567
569
|
|
|
568
570
|
Args:
|
|
569
571
|
name: Name to assign to the Sandbox. Must be unique within the App.
|
|
570
572
|
|
|
571
573
|
Raises:
|
|
572
574
|
AlreadyExistsError: If another running Sandbox in the App already holds the name.
|
|
573
|
-
ConflictError: If the Sandbox already has a name or is no longer running.
|
|
575
|
+
ConflictError: If the Sandbox already has a different name or is no longer running.
|
|
574
576
|
"""
|
|
575
577
|
...
|
|
576
578
|
|
|
@@ -1182,6 +1184,7 @@ class _SidecarManager:
|
|
|
1182
1184
|
volumes: typing.Optional[dict[typing.Union[str, os.PathLike], modal.volume._Volume]] = None,
|
|
1183
1185
|
outbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1184
1186
|
outbound_domain_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1187
|
+
pty: bool = False,
|
|
1185
1188
|
) -> _SidecarContainer:
|
|
1186
1189
|
"""Create a sidecar container running alongside the Sandbox's main container.
|
|
1187
1190
|
|
|
@@ -1208,6 +1211,7 @@ class _SidecarManager:
|
|
|
1208
1211
|
main container.
|
|
1209
1212
|
outbound_domain_allowlist: If set, restrict the sidecar's outbound TLS connections (port
|
|
1210
1213
|
443) to these SNI domains. Supports wildcards like ``*.example.com``.
|
|
1214
|
+
pty: Whether to enable PTY for the sidecar container.
|
|
1211
1215
|
|
|
1212
1216
|
Returns:
|
|
1213
1217
|
A `SidecarContainer` handle for the running container.
|
|
@@ -1435,6 +1439,7 @@ class SidecarManager:
|
|
|
1435
1439
|
volumes: typing.Optional[dict[typing.Union[str, os.PathLike], modal.volume.Volume]] = None,
|
|
1436
1440
|
outbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1437
1441
|
outbound_domain_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1442
|
+
pty: bool = False,
|
|
1438
1443
|
) -> SidecarContainer:
|
|
1439
1444
|
"""Create a sidecar container running alongside the Sandbox's main container.
|
|
1440
1445
|
|
|
@@ -1461,6 +1466,7 @@ class SidecarManager:
|
|
|
1461
1466
|
main container.
|
|
1462
1467
|
outbound_domain_allowlist: If set, restrict the sidecar's outbound TLS connections (port
|
|
1463
1468
|
443) to these SNI domains. Supports wildcards like ``*.example.com``.
|
|
1469
|
+
pty: Whether to enable PTY for the sidecar container.
|
|
1464
1470
|
|
|
1465
1471
|
Returns:
|
|
1466
1472
|
A `SidecarContainer` handle for the running container.
|
|
@@ -1479,6 +1485,7 @@ class SidecarManager:
|
|
|
1479
1485
|
volumes: typing.Optional[dict[typing.Union[str, os.PathLike], modal.volume.Volume]] = None,
|
|
1480
1486
|
outbound_cidr_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1481
1487
|
outbound_domain_allowlist: typing.Optional[collections.abc.Sequence[str]] = None,
|
|
1488
|
+
pty: bool = False,
|
|
1482
1489
|
) -> SidecarContainer:
|
|
1483
1490
|
"""Create a sidecar container running alongside the Sandbox's main container.
|
|
1484
1491
|
|
|
@@ -1505,6 +1512,7 @@ class SidecarManager:
|
|
|
1505
1512
|
main container.
|
|
1506
1513
|
outbound_domain_allowlist: If set, restrict the sidecar's outbound TLS connections (port
|
|
1507
1514
|
443) to these SNI domains. Supports wildcards like ``*.example.com``.
|
|
1515
|
+
pty: Whether to enable PTY for the sidecar container.
|
|
1508
1516
|
|
|
1509
1517
|
Returns:
|
|
1510
1518
|
A `SidecarContainer` handle for the running container.
|
|
@@ -2315,13 +2323,15 @@ class Sandbox(modal.object.Object):
|
|
|
2315
2323
|
`modal.Sandbox._experimental_create`. A name may only be set once and
|
|
2316
2324
|
only on a Sandbox that has never had one; afterwards the Sandbox can
|
|
2317
2325
|
be looked up with `Sandbox._experimental_from_name(app_name, name)`.
|
|
2326
|
+
Repeating the Sandbox's current name is idempotent and succeeds, so
|
|
2327
|
+
the call is safe to retry.
|
|
2318
2328
|
|
|
2319
2329
|
Args:
|
|
2320
2330
|
name: Name to assign to the Sandbox. Must be unique within the App.
|
|
2321
2331
|
|
|
2322
2332
|
Raises:
|
|
2323
2333
|
AlreadyExistsError: If another running Sandbox in the App already holds the name.
|
|
2324
|
-
ConflictError: If the Sandbox already has a name or is no longer running.
|
|
2334
|
+
ConflictError: If the Sandbox already has a different name or is no longer running.
|
|
2325
2335
|
"""
|
|
2326
2336
|
...
|
|
2327
2337
|
|
|
@@ -2332,13 +2342,15 @@ class Sandbox(modal.object.Object):
|
|
|
2332
2342
|
`modal.Sandbox._experimental_create`. A name may only be set once and
|
|
2333
2343
|
only on a Sandbox that has never had one; afterwards the Sandbox can
|
|
2334
2344
|
be looked up with `Sandbox._experimental_from_name(app_name, name)`.
|
|
2345
|
+
Repeating the Sandbox's current name is idempotent and succeeds, so
|
|
2346
|
+
the call is safe to retry.
|
|
2335
2347
|
|
|
2336
2348
|
Args:
|
|
2337
2349
|
name: Name to assign to the Sandbox. Must be unique within the App.
|
|
2338
2350
|
|
|
2339
2351
|
Raises:
|
|
2340
2352
|
AlreadyExistsError: If another running Sandbox in the App already holds the name.
|
|
2341
|
-
ConflictError: If the Sandbox already has a name or is no longer running.
|
|
2353
|
+
ConflictError: If the Sandbox already has a different name or is no longer running.
|
|
2342
2354
|
"""
|
|
2343
2355
|
...
|
|
2344
2356
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|