Read the Docs build information Build id: 4054526 Project: anyscale-ray Version: 63715 Commit: 253322733596422946b6c956f611f70dd3a9bcaf Date: 2026-05-29T01:46:31.109733Z State: finished Success: False [rtd-command-info] start-time: 2026-05-29T01:46:31.777931Z, end-time: 2026-05-29T01:46:44.229072Z, duration: 12, exit-code: 0 git clone --depth 1 https://github.com/ray-project/ray.git . Cloning into '.'... Updating files: 21% (2248/10477) Updating files: 22% (2305/10477) Updating files: 23% (2410/10477) Updating files: 24% (2515/10477) Updating files: 25% (2620/10477) Updating files: 26% (2725/10477) Updating files: 27% (2829/10477) Updating files: 28% (2934/10477) Updating files: 29% (3039/10477) Updating files: 30% (3144/10477) Updating files: 31% (3248/10477) Updating files: 32% (3353/10477) Updating files: 33% (3458/10477) Updating files: 34% (3563/10477) Updating files: 35% (3667/10477) Updating files: 36% (3772/10477) Updating files: 37% (3877/10477) Updating files: 38% (3982/10477) Updating files: 39% (4087/10477) Updating files: 40% (4191/10477) Updating files: 41% (4296/10477) Updating files: 42% (4401/10477) Updating files: 43% (4506/10477) Updating files: 44% (4610/10477) Updating files: 45% (4715/10477) Updating files: 46% (4820/10477) Updating files: 47% (4925/10477) Updating files: 48% (5029/10477) Updating files: 49% (5134/10477) Updating files: 50% (5239/10477) Updating files: 51% (5344/10477) Updating files: 52% (5449/10477) Updating files: 53% (5553/10477) Updating files: 54% (5658/10477) Updating files: 55% (5763/10477) Updating files: 56% (5868/10477) Updating files: 57% (5972/10477) Updating files: 58% (6077/10477) Updating files: 59% (6182/10477) Updating files: 60% (6287/10477) Updating files: 61% (6391/10477) Updating files: 62% (6496/10477) Updating files: 63% (6601/10477) Updating files: 64% (6706/10477) Updating files: 65% (6811/10477) Updating files: 66% (6915/10477) Updating files: 67% (7020/10477) Updating files: 68% (7125/10477) Updating files: 69% (7230/10477) Updating files: 70% (7334/10477) Updating files: 71% (7439/10477) Updating files: 72% (7544/10477) Updating files: 73% (7649/10477) Updating files: 74% (7753/10477) Updating files: 75% (7858/10477) Updating files: 76% (7963/10477) Updating files: 77% (8068/10477) Updating files: 78% (8173/10477) Updating files: 79% (8277/10477) Updating files: 80% (8382/10477) Updating files: 81% (8487/10477) Updating files: 82% (8592/10477) Updating files: 83% (8696/10477) Updating files: 84% (8801/10477) Updating files: 85% (8906/10477) Updating files: 86% (9011/10477) Updating files: 87% (9115/10477) Updating files: 88% (9220/10477) Updating files: 89% (9325/10477) Updating files: 90% (9430/10477) Updating files: 91% (9535/10477) Updating files: 92% (9639/10477) Updating files: 93% (9744/10477) Updating files: 94% (9849/10477) Updating files: 95% (9954/10477) Updating files: 96% (10058/10477) Updating files: 97% (10163/10477) Updating files: 98% (10268/10477) Updating files: 99% (10373/10477) Updating files: 100% (10477/10477) Updating files: 100% (10477/10477), done. [rtd-command-info] start-time: 2026-05-29T01:46:44.308146Z, end-time: 2026-05-29T01:46:49.348718Z, duration: 5, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/63715/head:external-63715 From https://github.com/ray-project/ray * [new ref] refs/pull/63715/head -> external-63715 [rtd-command-info] start-time: 2026-05-29T01:46:50.099178Z, end-time: 2026-05-29T01:46:50.818535Z, duration: 0, exit-code: 0 git checkout --force 253322733596422946b6c956f611f70dd3a9bcaf Note: switching to '253322733596422946b6c956f611f70dd3a9bcaf'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 25332273 [Serve] Bump starlette to >=1.0.1 (CVE-2026-48710) [rtd-command-info] start-time: 2026-05-29T01:46:50.899983Z, end-time: 2026-05-29T01:46:50.940577Z, duration: 0, exit-code: 0 cat .readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" # Build documentation in the docs/ directory with Sphinx sphinx: configuration: doc/source/conf.py fail_on_warning: true # We recommend specifying your dependencies to enable reproducible builds: # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html python: install: - requirements: doc/requirements-doc.txt [rtd-command-info] start-time: 2026-05-29T01:46:56.248109Z, end-time: 2026-05-29T01:46:56.311919Z, duration: 0, exit-code: 0 asdf global python 3.11.14 [rtd-command-info] start-time: 2026-05-29T01:46:56.662574Z, end-time: 2026-05-29T01:46:57.279659Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.14.final.0-64 in 370ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-05-29T01:46:57.366729Z, end-time: 2026-05-29T01:47:02.119971Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.1.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 11.0 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (67.6.1) Collecting setuptools Downloading setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 24.3 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.1.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-05-29T01:47:02.202845Z, end-time: 2026-05-29T01:47:06.630925Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-9.0.4-py3-none-any.whl.metadata (5.8 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.23,>=0.20 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl.metadata (15 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.1.0-py3-none-any.whl.metadata (7.8 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.0-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.17-py3-none-any.whl.metadata (6.4 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.5.20-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-9.0.4-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 170.5 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 978.3 MB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 476.0 MB/s 0:00:00 Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading packaging-26.2-py3-none-any.whl (100 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 949.3 MB/s 0:00:00 Downloading requests-2.34.2-py3-none-any.whl (73 kB) Downloading charset_normalizer-3.4.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (214 kB) Downloading idna-3.17-py3-none-any.whl (65 kB) Downloading urllib3-2.7.0-py3-none-any.whl (131 kB) Downloading certifi-2026.5.20-py3-none-any.whl (134 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.1.0-py3-none-any.whl (104 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.5.20 charset_normalizer-3.4.7 docutils-0.22.4 idna-3.17 imagesize-2.0.0 packaging-26.2 requests-2.34.2 roman-numerals-4.1.0 snowballstemmer-3.1.0 sphinx-9.0.4 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.7.0 [rtd-command-info] start-time: 2026-05-29T01:47:06.708717Z, end-time: 2026-05-29T01:47:25.266208Z, duration: 18, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r doc/requirements-doc.txt Collecting Pygments==2.16.1 (from -r doc/requirements-doc.txt (line 4)) Downloading Pygments-2.16.1-py3-none-any.whl.metadata (2.5 kB) Collecting sphinx==7.1.2 (from -r doc/requirements-doc.txt (line 7)) Downloading sphinx-7.1.2-py3-none-any.whl.metadata (5.8 kB) Collecting sphinx-click==5.1.0 (from -r doc/requirements-doc.txt (line 8)) Downloading sphinx_click-5.1.0-py3-none-any.whl.metadata (3.4 kB) Collecting sphinx-copybutton==0.5.2 (from -r doc/requirements-doc.txt (line 9)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting sphinxemoji==0.2.0 (from -r doc/requirements-doc.txt (line 10)) Downloading sphinxemoji-0.2.0.tar.gz (44 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting sphinx-jsonschema==1.19.1 (from -r doc/requirements-doc.txt (line 11)) Downloading sphinx-jsonschema-1.19.1.tar.gz (18 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting sphinx-sitemap==2.5.1 (from -r doc/requirements-doc.txt (line 12)) Downloading sphinx_sitemap-2.5.1-py3-none-any.whl.metadata (3.2 kB) Collecting sphinxcontrib-redoc==1.6.0 (from -r doc/requirements-doc.txt (line 13)) Downloading sphinxcontrib-redoc-1.6.0.tar.gz (350 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Installing backend dependencies: started Installing backend dependencies: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting sphinx-remove-toctrees==0.0.3 (from -r doc/requirements-doc.txt (line 14)) Downloading sphinx_remove_toctrees-0.0.3-py3-none-any.whl.metadata (4.4 kB) Collecting sphinx_design==0.5.0 (from -r doc/requirements-doc.txt (line 15)) Downloading sphinx_design-0.5.0-py3-none-any.whl.metadata (5.1 kB) Collecting pydata-sphinx-theme==0.14.1 (from -r doc/requirements-doc.txt (line 16)) Downloading pydata_sphinx_theme-0.14.1-py3-none-any.whl.metadata (7.2 kB) Collecting autodoc_pydantic==1.9.0 (from -r doc/requirements-doc.txt (line 19)) Downloading autodoc_pydantic-1.9.0-py3-none-any.whl.metadata (18 kB) Collecting pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 (from -r doc/requirements-doc.txt (line 21)) Downloading pydantic-2.13.4-py3-none-any.whl.metadata (109 kB) Collecting myst-parser==2.0.0 (from -r doc/requirements-doc.txt (line 24)) Downloading myst_parser-2.0.0-py3-none-any.whl.metadata (5.4 kB) Collecting myst-nb==1.0.0rc0 (from -r doc/requirements-doc.txt (line 25)) Downloading myst_nb-1.0.0rc0-py3-none-any.whl.metadata (4.7 kB) Collecting jupytext==1.15.2 (from -r doc/requirements-doc.txt (line 28)) Downloading jupytext-1.15.2-py3-none-any.whl.metadata (9.7 kB) Collecting urllib3<1.27 (from -r doc/requirements-doc.txt (line 31)) Downloading urllib3-1.26.20-py2.py3-none-any.whl.metadata (50 kB) Requirement already satisfied: sphinxcontrib-applehelp in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.0.0) Requirement already satisfied: sphinxcontrib-jsmath in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (1.0.1) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.1.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.5 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.0.0) Requirement already satisfied: sphinxcontrib-qthelp in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.0.0) Requirement already satisfied: Jinja2>=3.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (3.1.6) Collecting docutils<0.21,>=0.18.1 (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) Downloading docutils-0.20.1-py3-none-any.whl.metadata (2.8 kB) Requirement already satisfied: snowballstemmer>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (3.1.0) Requirement already satisfied: babel>=2.9 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.18.0) Collecting alabaster<0.8,>=0.7 (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) Downloading alabaster-0.7.16-py3-none-any.whl.metadata (2.9 kB) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.0.0) Requirement already satisfied: requests>=2.25.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2.34.2) Requirement already satisfied: packaging>=21.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (26.2) Collecting click>=7.0 (from sphinx-click==5.1.0->-r doc/requirements-doc.txt (line 8)) Downloading click-8.4.1-py3-none-any.whl.metadata (2.6 kB) Collecting jsonpointer (from sphinx-jsonschema==1.19.1->-r doc/requirements-doc.txt (line 11)) Downloading jsonpointer-3.1.1-py3-none-any.whl.metadata (2.4 kB) Collecting pyyaml (from sphinx-jsonschema==1.19.1->-r doc/requirements-doc.txt (line 11)) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) Collecting jsonschema>=3.0 (from sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 13)) Downloading jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB) Collecting six>=1.5 (from sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 13)) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting beautifulsoup4 (from pydata-sphinx-theme==0.14.1->-r doc/requirements-doc.txt (line 16)) Downloading beautifulsoup4-4.14.3-py3-none-any.whl.metadata (3.8 kB) Collecting accessible-pygments (from pydata-sphinx-theme==0.14.1->-r doc/requirements-doc.txt (line 16)) Downloading accessible_pygments-0.0.5-py3-none-any.whl.metadata (10 kB) Collecting typing-extensions (from pydata-sphinx-theme==0.14.1->-r doc/requirements-doc.txt (line 16)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Collecting pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 (from -r doc/requirements-doc.txt (line 21)) Downloading pydantic-1.10.26-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (155 kB) Collecting markdown-it-py~=3.0 (from myst-parser==2.0.0->-r doc/requirements-doc.txt (line 24)) Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB) Collecting mdit-py-plugins~=0.4 (from myst-parser==2.0.0->-r doc/requirements-doc.txt (line 24)) Downloading mdit_py_plugins-0.6.1-py3-none-any.whl.metadata (2.9 kB) Collecting importlib_metadata (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading importlib_metadata-9.0.0-py3-none-any.whl.metadata (4.5 kB) Collecting ipython (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading ipython-9.13.0-py3-none-any.whl.metadata (4.6 kB) Collecting jupyter-cache<0.7,>=0.5 (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading jupyter_cache-0.6.1-py3-none-any.whl.metadata (5.8 kB) Collecting nbclient (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading nbclient-0.10.4-py3-none-any.whl.metadata (8.3 kB) Collecting nbformat~=5.0 (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading nbformat-5.10.4-py3-none-any.whl.metadata (3.6 kB) Collecting ipykernel (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading ipykernel-7.2.0-py3-none-any.whl.metadata (4.5 kB) Collecting toml (from jupytext==1.15.2->-r doc/requirements-doc.txt (line 28)) Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB) Collecting attrs (from jupyter-cache<0.7,>=0.5->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB) Collecting nbclient (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading nbclient-0.7.4-py3-none-any.whl.metadata (7.9 kB) Collecting sqlalchemy<3,>=1.3.12 (from jupyter-cache<0.7,>=0.5->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading sqlalchemy-2.0.50-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB) Collecting tabulate (from jupyter-cache<0.7,>=0.5->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading tabulate-0.10.0-py3-none-any.whl.metadata (40 kB) Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser==2.0.0->-r doc/requirements-doc.txt (line 24)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Collecting jupyter-client>=6.1.12 (from nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading jupyter_client-8.8.0-py3-none-any.whl.metadata (8.4 kB) Collecting jupyter-core!=5.0.*,>=4.12 (from nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading jupyter_core-5.9.1-py3-none-any.whl.metadata (1.5 kB) Collecting traitlets>=5.3 (from nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading traitlets-5.15.0-py3-none-any.whl.metadata (10 kB) Collecting fastjsonschema>=2.15 (from nbformat~=5.0->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading fastjsonschema-2.21.2-py3-none-any.whl.metadata (2.3 kB) Collecting greenlet>=1 (from sqlalchemy<3,>=1.3.12->jupyter-cache<0.7,>=0.5->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading greenlet-3.5.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from Jinja2>=3.0->sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (3.0.3) Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 13)) Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl.metadata (2.9 kB) Collecting referencing>=0.28.4 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 13)) Downloading referencing-0.37.0-py3-none-any.whl.metadata (2.8 kB) Collecting rpds-py>=0.25.0 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 13)) Downloading rpds_py-2026.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB) Collecting python-dateutil>=2.8.2 (from jupyter-client>=6.1.12->nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting pyzmq>=25.0 (from jupyter-client>=6.1.12->nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (6.0 kB) Collecting tornado>=6.4.1 (from jupyter-client>=6.1.12->nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading tornado-6.5.6-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (2.8 kB) Collecting platformdirs>=2.5 (from jupyter-core!=5.0.*,>=4.12->nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading platformdirs-4.10.0-py3-none-any.whl.metadata (5.5 kB) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from requests>=2.25.0->sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (3.4.7) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from requests>=2.25.0->sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (3.17) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages (from requests>=2.25.0->sphinx==7.1.2->-r doc/requirements-doc.txt (line 7)) (2026.5.20) Collecting soupsieve>=1.6.1 (from beautifulsoup4->pydata-sphinx-theme==0.14.1->-r doc/requirements-doc.txt (line 16)) Downloading soupsieve-2.8.4-py3-none-any.whl.metadata (4.6 kB) Collecting zipp>=3.20 (from importlib_metadata->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading zipp-4.1.0-py3-none-any.whl.metadata (3.6 kB) Collecting comm>=0.1.1 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading comm-0.2.3-py3-none-any.whl.metadata (3.7 kB) Collecting debugpy>=1.6.5 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading debugpy-1.8.20-cp311-cp311-manylinux_2_34_x86_64.whl.metadata (1.4 kB) Collecting matplotlib-inline>=0.1 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading matplotlib_inline-0.2.2-py3-none-any.whl.metadata (2.4 kB) Collecting nest-asyncio>=1.4 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading nest_asyncio-1.6.0-py3-none-any.whl.metadata (2.8 kB) Collecting psutil>=5.7 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) Collecting decorator>=5.1.0 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading decorator-5.3.1-py3-none-any.whl.metadata (3.9 kB) Collecting ipython-pygments-lexers>=1.0.0 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading ipython_pygments_lexers-1.1.1-py3-none-any.whl.metadata (1.1 kB) Collecting jedi>=0.18.2 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading jedi-0.20.0-py2.py3-none-any.whl.metadata (23 kB) Collecting pexpect>4.6 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB) Collecting prompt_toolkit<3.1.0,>=3.0.41 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading prompt_toolkit-3.0.52-py3-none-any.whl.metadata (6.4 kB) Collecting stack_data>=0.6.0 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading stack_data-0.6.3-py3-none-any.whl.metadata (18 kB) Collecting wcwidth (from prompt_toolkit<3.1.0,>=3.0.41->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading wcwidth-0.7.0-py3-none-any.whl.metadata (36 kB) Collecting parso<0.9.0,>=0.8.6 (from jedi>=0.18.2->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading parso-0.8.7-py2.py3-none-any.whl.metadata (8.2 kB) Collecting ptyprocess>=0.5 (from pexpect>4.6->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB) Collecting executing>=1.2.0 (from stack_data>=0.6.0->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading executing-2.2.1-py2.py3-none-any.whl.metadata (8.9 kB) Collecting asttokens>=2.1.0 (from stack_data>=0.6.0->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading asttokens-3.0.1-py3-none-any.whl.metadata (4.9 kB) Collecting pure-eval (from stack_data>=0.6.0->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 25)) Downloading pure_eval-0.2.3-py3-none-any.whl.metadata (6.3 kB) Downloading Pygments-2.16.1-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 84.0 MB/s 0:00:00 Downloading sphinx-7.1.2-py3-none-any.whl (3.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 167.3 MB/s 0:00:00 Downloading sphinx_click-5.1.0-py3-none-any.whl (9.7 kB) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Downloading sphinx_sitemap-2.5.1-py3-none-any.whl (5.5 kB) Downloading sphinx_remove_toctrees-0.0.3-py3-none-any.whl (4.7 kB) Downloading sphinx_design-0.5.0-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 193.7 MB/s 0:00:00 Downloading pydata_sphinx_theme-0.14.1-py3-none-any.whl (3.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 122.7 MB/s 0:00:00 Downloading autodoc_pydantic-1.9.0-py3-none-any.whl (29 kB) Downloading myst_parser-2.0.0-py3-none-any.whl (77 kB) Downloading myst_nb-1.0.0rc0-py3-none-any.whl (80 kB) Downloading jupytext-1.15.2-py3-none-any.whl (307 kB) Downloading pydantic-1.10.26-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 279.4 MB/s 0:00:00 Downloading urllib3-1.26.20-py2.py3-none-any.whl (144 kB) Downloading alabaster-0.7.16-py3-none-any.whl (13 kB) Downloading docutils-0.20.1-py3-none-any.whl (572 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 257.1 MB/s 0:00:00 Downloading jupyter_cache-0.6.1-py3-none-any.whl (33 kB) Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Downloading mdit_py_plugins-0.6.1-py3-none-any.whl (66 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading nbclient-0.7.4-py3-none-any.whl (73 kB) Downloading nbformat-5.10.4-py3-none-any.whl (78 kB) Downloading sqlalchemy-2.0.50-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 629.3 MB/s 0:00:00 Downloading click-8.4.1-py3-none-any.whl (116 kB) Downloading fastjsonschema-2.21.2-py3-none-any.whl (24 kB) Downloading greenlet-3.5.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (614 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 614.8/614.8 kB 923.2 MB/s 0:00:00 Downloading jsonschema-4.26.0-py3-none-any.whl (90 kB) Downloading attrs-26.1.0-py3-none-any.whl (67 kB) Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB) Downloading jupyter_client-8.8.0-py3-none-any.whl (107 kB) Downloading jupyter_core-5.9.1-py3-none-any.whl (29 kB) Downloading platformdirs-4.10.0-py3-none-any.whl (22 kB) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 352.1 MB/s 0:00:00 Downloading pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (857 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 857.0/857.0 kB 341.9 MB/s 0:00:00 Downloading referencing-0.37.0-py3-none-any.whl (26 kB) Downloading rpds_py-2026.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (378 kB) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Downloading tornado-6.5.6-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (448 kB) Downloading traitlets-5.15.0-py3-none-any.whl (85 kB) Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 290.3 MB/s 0:00:00 Downloading beautifulsoup4-4.14.3-py3-none-any.whl (107 kB) Downloading soupsieve-2.8.4-py3-none-any.whl (37 kB) Downloading importlib_metadata-9.0.0-py3-none-any.whl (27 kB) Downloading zipp-4.1.0-py3-none-any.whl (10 kB) Downloading ipykernel-7.2.0-py3-none-any.whl (118 kB) Downloading comm-0.2.3-py3-none-any.whl (7.3 kB) Downloading debugpy-1.8.20-cp311-cp311-manylinux_2_34_x86_64.whl (3.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 188.8 MB/s 0:00:00 Downloading ipython-9.13.0-py3-none-any.whl (627 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 627.3/627.3 kB 1.0 GB/s 0:00:00 Downloading prompt_toolkit-3.0.52-py3-none-any.whl (391 kB) Downloading decorator-5.3.1-py3-none-any.whl (10 kB) Downloading ipython_pygments_lexers-1.1.1-py3-none-any.whl (8.1 kB) Downloading jedi-0.20.0-py2.py3-none-any.whl (4.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 643.0 MB/s 0:00:00 Downloading parso-0.8.7-py2.py3-none-any.whl (107 kB) Downloading matplotlib_inline-0.2.2-py3-none-any.whl (9.5 kB) Downloading nest_asyncio-1.6.0-py3-none-any.whl (5.2 kB) Downloading pexpect-4.9.0-py2.py3-none-any.whl (63 kB) Downloading psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (155 kB) Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB) Downloading stack_data-0.6.3-py3-none-any.whl (24 kB) Downloading asttokens-3.0.1-py3-none-any.whl (27 kB) Downloading executing-2.2.1-py2.py3-none-any.whl (28 kB) Downloading jsonpointer-3.1.1-py3-none-any.whl (7.7 kB) Downloading pure_eval-0.2.3-py3-none-any.whl (11 kB) Downloading tabulate-0.10.0-py3-none-any.whl (39 kB) Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB) Downloading wcwidth-0.7.0-py3-none-any.whl (110 kB) Building wheels for collected packages: sphinxemoji, sphinx-jsonschema, sphinxcontrib-redoc Building wheel for sphinxemoji (pyproject.toml): started Building wheel for sphinxemoji (pyproject.toml): finished with status 'done' Created wheel for sphinxemoji: filename=sphinxemoji-0.2.0-py3-none-any.whl size=44457 sha256=5d102f20e03f25c35401b25244f92ecd63d1d6048a0a3114552a1abbe1045326 Stored in directory: /tmp/pip-ephem-wheel-cache-5d5c73w8/wheels/d4/b0/a5/92b0e0b5611fc4d37f90711172a680959318c4474df5d2718d Building wheel for sphinx-jsonschema (pyproject.toml): started Building wheel for sphinx-jsonschema (pyproject.toml): finished with status 'done' Created wheel for sphinx-jsonschema: filename=sphinx_jsonschema-1.19.1-py3-none-any.whl size=15469 sha256=4692d2632695b5f11bcee0b413e6936e4e9dfcd9de49883c1374dbabaa9bb8ec Stored in directory: /tmp/pip-ephem-wheel-cache-5d5c73w8/wheels/2c/2e/48/5b3fa8b77682d9bb35dea05562fec306cd2cca3012d32e8641 Building wheel for sphinxcontrib-redoc (pyproject.toml): started Building wheel for sphinxcontrib-redoc (pyproject.toml): finished with status 'done' Created wheel for sphinxcontrib-redoc: filename=sphinxcontrib_redoc-1.6.0-py3-none-any.whl size=299648 sha256=1705e45821bd554138b0d5092fa7117c22fab78a423f28db6cb4614532a9c648 Stored in directory: /tmp/pip-ephem-wheel-cache-5d5c73w8/wheels/a1/90/66/d015c821e6e8b2de75d210826c4983325ebb344834965e8730 Successfully built sphinxemoji sphinx-jsonschema sphinxcontrib-redoc Installing collected packages: pure-eval, ptyprocess, fastjsonschema, zipp, wcwidth, urllib3, typing-extensions, traitlets, tornado, toml, tabulate, soupsieve, six, rpds-py, pyzmq, pyyaml, Pygments, psutil, platformdirs, pexpect, parso, nest-asyncio, mdurl, jsonpointer, greenlet, executing, docutils, decorator, debugpy, comm, click, attrs, asttokens, alabaster, stack_data, sqlalchemy, referencing, python-dateutil, pydantic, prompt_toolkit, matplotlib-inline, markdown-it-py, jupyter-core, jedi, ipython-pygments-lexers, importlib_metadata, beautifulsoup4, accessible-pygments, sphinx-jsonschema, sphinx, mdit-py-plugins, jupyter-client, jsonschema-specifications, ipython, sphinxemoji, sphinx-sitemap, sphinx-remove-toctrees, sphinx_design, sphinx-copybutton, sphinx-click, pydata-sphinx-theme, myst-parser, jsonschema, ipykernel, autodoc_pydantic, sphinxcontrib-redoc, nbformat, nbclient, jupytext, jupyter-cache, myst-nb Attempting uninstall: urllib3 Found existing installation: urllib3 2.7.0 Uninstalling urllib3-2.7.0: Successfully uninstalled urllib3-2.7.0 Attempting uninstall: Pygments Found existing installation: Pygments 2.20.0 Uninstalling Pygments-2.20.0: Successfully uninstalled Pygments-2.20.0 Attempting uninstall: docutils Found existing installation: docutils 0.22.4 Uninstalling docutils-0.22.4: Successfully uninstalled docutils-0.22.4 Attempting uninstall: alabaster Found existing installation: alabaster 1.0.0 Uninstalling alabaster-1.0.0: Successfully uninstalled alabaster-1.0.0 Attempting uninstall: sphinx Found existing installation: Sphinx 9.0.4 Uninstalling Sphinx-9.0.4: Successfully uninstalled Sphinx-9.0.4 Successfully installed Pygments-2.16.1 accessible-pygments-0.0.5 alabaster-0.7.16 asttokens-3.0.1 attrs-26.1.0 autodoc_pydantic-1.9.0 beautifulsoup4-4.14.3 click-8.4.1 comm-0.2.3 debugpy-1.8.20 decorator-5.3.1 docutils-0.20.1 executing-2.2.1 fastjsonschema-2.21.2 greenlet-3.5.1 importlib_metadata-9.0.0 ipykernel-7.2.0 ipython-9.13.0 ipython-pygments-lexers-1.1.1 jedi-0.20.0 jsonpointer-3.1.1 jsonschema-4.26.0 jsonschema-specifications-2025.9.1 jupyter-cache-0.6.1 jupyter-client-8.8.0 jupyter-core-5.9.1 jupytext-1.15.2 markdown-it-py-3.0.0 matplotlib-inline-0.2.2 mdit-py-plugins-0.6.1 mdurl-0.1.2 myst-nb-1.0.0rc0 myst-parser-2.0.0 nbclient-0.7.4 nbformat-5.10.4 nest-asyncio-1.6.0 parso-0.8.7 pexpect-4.9.0 platformdirs-4.10.0 prompt_toolkit-3.0.52 psutil-7.2.2 ptyprocess-0.7.0 pure-eval-0.2.3 pydantic-1.10.26 pydata-sphinx-theme-0.14.1 python-dateutil-2.9.0.post0 pyyaml-6.0.3 pyzmq-27.1.0 referencing-0.37.0 rpds-py-2026.5.1 six-1.17.0 soupsieve-2.8.4 sphinx-7.1.2 sphinx-click-5.1.0 sphinx-copybutton-0.5.2 sphinx-jsonschema-1.19.1 sphinx-remove-toctrees-0.0.3 sphinx-sitemap-2.5.1 sphinx_design-0.5.0 sphinxcontrib-redoc-1.6.0 sphinxemoji-0.2.0 sqlalchemy-2.0.50 stack_data-0.6.3 tabulate-0.10.0 toml-0.10.2 tornado-6.5.6 traitlets-5.15.0 typing-extensions-4.15.0 urllib3-1.26.20 wcwidth-0.7.0 zipp-4.1.0 [rtd-command-info] start-time: 2026-05-29T01:47:25.407937Z, end-time: 2026-05-29T01:47:25.448880Z, duration: 0, exit-code: 0 cat doc/source/conf.py from typing import Dict, Any from datetime import datetime from importlib import import_module import os import sys from jinja2.filters import FILTERS import sphinx from sphinx.ext import autodoc from docutils import nodes import pathlib import logging logger = logging.getLogger(__name__) sys.path.insert(0, os.path.abspath(".")) from custom_directives import ( # noqa DownloadAndPreprocessEcosystemDocs, update_context, LinkcheckSummarizer, parse_navbar_config, setup_context, pregenerate_example_rsts, ) # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath("../../python/")) # -- General configuration ------------------------------------------------ # The name of a reST role (builtin or Sphinx extension) to use as the default role, that # is, for text marked up `like this`. This can be set to 'py:obj' to make `filter` a # cross-reference to the Python function “filter”. The default is None, which doesn’t # reassign the default role. default_role = "py:obj" sys.path.append(os.path.abspath("./_ext")) extensions = [ "callouts", # custom extension from _ext folder "queryparamrefs", "sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx.ext.napoleon", "sphinx_click.ext", "sphinx-jsonschema", "sphinxemoji.sphinxemoji", "sphinx_copybutton", "sphinx_sitemap", "myst_nb", "sphinx.ext.doctest", "sphinx.ext.coverage", "sphinx.ext.autosummary", "sphinxcontrib.autodoc_pydantic", "sphinxcontrib.redoc", "sphinx_remove_toctrees", "sphinx_design", "sphinx.ext.intersphinx", ] remove_from_toctrees = [ "cluster/running-applications/job-submission/doc/*", "ray-observability/reference/doc/*", "ray-core/api/doc/*", "data/api/doc/*", "train/api/doc/*", "tune/api/doc/*", "serve/api/doc/*", "rllib/package_ref/algorithm/*", "rllib/package_ref/policy/*", "rllib/package_ref/models/*", "rllib/package_ref/catalogs/*", "rllib/package_ref/rl_modules/*", "rllib/package_ref/learner/*", "rllib/package_ref/evaluation/*", "rllib/package_ref/replay-buffers/*", "rllib/package_ref/utils/*", ] myst_enable_extensions = [ "dollarmath", "amsmath", "deflist", "html_admonition", "html_image", "colon_fence", "smartquotes", "replacements", ] myst_heading_anchors = 3 # Cache notebook outputs in _build/.jupyter_cache # To prevent notebook execution, set this to "off". To force re-execution, set this to # "force". To cache previous runs, set this to "cache". nb_execution_mode = os.getenv("RUN_NOTEBOOKS", "off") # Add a render priority for doctest nb_mime_priority_overrides = [ ("html", "application/vnd.jupyter.widget-view+json", 10), ("html", "application/javascript", 20), ("html", "text/html", 30), ("html", "image/svg+xml", 40), ("html", "image/png", 50), ("html", "image/jpeg", 60), ("html", "text/markdown", 70), ("html", "text/latex", 80), ("html", "text/plain", 90), ] html_extra_path = ["robots.txt"] html_baseurl = "https://docs.ray.io/en/latest" # This pattern matches: # - Python Repl prompts (">>> ") and it's continuation ("... ") # - Bash prompts ("$ ") # - IPython prompts ("In []: ", "In [999]: ") and it's continuations # (" ...: ", " : ") copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: " copybutton_prompt_is_regexp = True # Ignore divs with class="no-copybutton" copybutton_selector = "div:not(.no-copybutton) > div.highlight > pre" # By default, tabs can be closed by selecting an open tab. We disable this # functionality with the `sphinx_tabs_disable_tab_closing` option. sphinx_tabs_disable_tab_closing = True # Special mocking of packaging.version.Version is required when using sphinx; # we can't just add this to autodoc_mock_imports, as packaging is imported by # sphinx even before it can be mocked. Instead, we patch it here. import packaging.version as packaging_version # noqa Version = packaging_version.Version class MockVersion(Version): def __init__(self, version: str): if isinstance(version, (str, bytes)): super().__init__(version) else: super().__init__("0") packaging_version.Version = MockVersion # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # The master toctree document. master_doc = "index" # General information about the project. project = "Ray" copyright = str(datetime.now().year) + ", The Ray Team" author = "The Ray Team" # The version info for the project you're documenting acts as replacement for # |version| and |release|, and is also used in various other places throughout the # built documents. Retrieve the version using `find_version` rather than importing # directly (from ray import __version__) because initializing ray will prevent # mocking of certain external dependencies. from setup import find_version # noqa release = find_version("ray", "_version.py") language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # Also helps resolve warnings about documents not included in any toctree. exclude_patterns = [ "templates/*", "cluster/running-applications/doc/ray.*", ] # If "DOC_LIB" is found, only build that top-level navigation item. build_one_lib = os.getenv("DOC_LIB") all_toc_libs = [ f.path.strip("./") for f in os.scandir(".") if f.is_dir() and "ray-" in f.path ] all_toc_libs += [ "cluster", "tune", "data", "train", "rllib", "serve", "workflows", ] if build_one_lib and build_one_lib in all_toc_libs: all_toc_libs.remove(build_one_lib) exclude_patterns += all_toc_libs # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False # Do not check anchors for links because it produces many false positives # and is slow (it needs to download the linked website). linkcheck_anchors = False if os.environ.get("LINKCHECK_ALL"): # Only check external links, i.e. the ones starting with http:// or https://. linkcheck_ignore = [ r"^((?!http).)*$", # exclude links not starting with http "http://ala2017.it.nuigalway.ie/papers/ALA2017_Gupta.pdf", # broken "https://mvnrepository.com/artifact/*", # working but somehow not with linkcheck # This should be fixed -- is temporal the successor of cadence? Do the examples need to be updated? "https://github.com/serverlessworkflow/specification/blob/main/comparisons/comparison-cadence.md", # TODO(richardliaw): The following probably needs to be fixed in the tune_sklearn package "https://www.oracle.com/java/technologies/javase-jdk15-downloads.html", # forbidden for client "https://speakerdeck.com/*", # forbidden for bots r"https://huggingface.co/*", # seems to be flaky r"https://www.meetup.com/*", # seems to be flaky r"https://www.pettingzoo.ml/*", # seems to be flaky r"http://localhost[:/].*", # Ignore localhost links r"^http:/$", # Ignore incomplete links # 403 Client Error: Forbidden for url. # They ratelimit bots. "https://www.datanami.com/2018/02/01/rays-new-library-targets-high-speed-reinforcement-learning/", # 403 Client Error: Forbidden for url. # They ratelimit bots. "https://www.researchgate.net/publication/222573328_Stochastic_Gradient_Boosting", "https://www.datanami.com/2019/11/05/why-every-python-developer-will-love-ray/", "https://dev.mysql.com/doc/connector-python/en/", # Returning 522s intermittently. "https://lczero.org/", # Returns 406 but remains accessible "https://www.uber.com/blog/elastic-xgboost-ray/", # Aggressive anti-bot checks "https://archive.vn/*", "https://archive.is/*", # 429: Rate limited "https://medium.com/*", "https://towardsdatascience.com/*", ] else: # Only check links that point to the ray-project org on github, since those # links are under our control and therefore much more likely to be real # issues that we need to fix if they are broken. linkcheck_ignore = [ r"^(?!https://(raw\.githubusercontent|github)\.com/ray-project/).*$" ] # -- Options for HTML output ---------------------------------------------- def render_svg_logo(path): with open(pathlib.Path(__file__).parent / path, "r") as f: content = f.read() return content # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = "pydata_sphinx_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { "use_edit_page_button": True, "announcement": None, "logo": { "svg": render_svg_logo("_static/img/ray_logo.svg"), }, "navbar_start": ["navbar-ray-logo"], "navbar_end": [ "navbar-icon-links", "navbar-anyscale", ], "navbar_center": ["navbar-links"], "navbar_align": "left", "navbar_persistent": [ "search-button-field", "theme-switcher", ], "secondary_sidebar_items": [ "page-toc", "edit-this-page", ], "content_footer_items": [ "csat", ], "navigation_depth": 4, "analytics": {"google_analytics_id": "UA-110413294-1"}, "pygment_light_style": "stata-dark", "pygment_dark_style": "stata-dark", } html_context = { "github_user": "ray-project", "github_repo": "ray", "github_version": "master", "doc_path": "doc/source/", } html_sidebars = { "**": ["main-sidebar"], "ray-overview/examples": [], } # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = f"Ray {release}" autodoc_typehints_format = "short" # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = "_static/favicon.ico" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] # Output file base name for HTML help builder. htmlhelp_basename = "Raydoc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # 'preamble': '', # Latex figure (float) alignment # 'figure_align': 'htbp', } latex_documents = [ (master_doc, "Ray.tex", "Ray Documentation", author, "manual"), ] # -- Options for manual page output --------------------------------------- man_pages = [(master_doc, "ray", "Ray Documentation", [author], 1)] # -- Options for Texinfo output ------------------------------------------- texinfo_documents = [ ( master_doc, "Ray", "Ray Documentation", author, "Ray", "Ray provides a simple, universal API for building distributed applications.", "Miscellaneous", ), ] # Python methods should be presented in source code order autodoc_member_order = "bysource" # Better typehint formatting (see custom.css) autodoc_typehints = "signature" def filter_out_undoc_class_members(member_name, class_name, module_name): module = import_module(module_name) cls = getattr(module, class_name) if getattr(cls, member_name).__doc__: return f"~{class_name}.{member_name}" else: return "" FILTERS["filter_out_undoc_class_members"] = filter_out_undoc_class_members def add_custom_assets( app: sphinx.application.Sphinx, pagename: str, templatename: str, context: Dict[str, Any], doctree: nodes.Node, ): """Add custom per-page assets. See documentation on Sphinx Core Events for more information: https://www.sphinx-doc.org/en/master/extdev/appapi.html#sphinx-core-events """ if pagename == "index": app.add_css_file("css/index.css") app.add_js_file("js/index.js") return "index.html" # Use the special index.html template for this page if pagename == "ray-overview/examples": app.add_css_file("css/examples.css") app.add_js_file("js/examples.js") return "ray-overview/examples.html" if pagename in [ "data/examples", "train/examples", "serve/examples", ]: return "examples.html" if pagename == "train/train": app.add_css_file("css/ray-train.css") elif pagename == "ray-overview/ray-libraries": app.add_css_file("css/ray-libraries.css") elif pagename == "ray-overview/use-cases": app.add_css_file("css/use_cases.css") def setup(app): pregenerate_example_rsts(app) # NOTE: 'MOCK' is a custom option we introduced to illustrate mock outputs. Since # `doctest` doesn't support this flag by default, `sphinx.ext.doctest` raises # warnings when we build the documentation. import doctest doctest.register_optionflag("MOCK") app.connect("html-page-context", update_context) app.add_config_value("navbar_content_path", "navbar.yml", "env") app.connect("config-inited", parse_navbar_config) app.connect("html-page-context", setup_context) app.connect("html-page-context", add_custom_assets) # https://github.com/ines/termynal app.add_js_file("js/termynal.js", defer="defer") app.add_css_file("css/termynal.css") app.add_js_file("js/custom.js", defer="defer") app.add_css_file("css/custom.css", priority=800) app.add_js_file("js/csat.js") app.add_css_file("css/csat.css") app.add_js_file("js/assistant.js", defer="defer") app.add_css_file("css/assistant.css") base_path = pathlib.Path(__file__).parent github_docs = DownloadAndPreprocessEcosystemDocs(base_path) # Download docs from ecosystem library repos app.connect("builder-inited", github_docs.write_new_docs) # Restore original file content after build app.connect("build-finished", github_docs.write_original_docs) # Hook into the logger used by linkcheck to display a summary at the end. linkcheck_summarizer = LinkcheckSummarizer() app.connect("builder-inited", linkcheck_summarizer.add_handler_to_linkcheck) app.connect("build-finished", linkcheck_summarizer.summarize) redoc = [ { "name": "Ray Jobs API", "page": "cluster/running-applications/job-submission/api", "spec": "cluster/running-applications/job-submission/openapi.yml", "embed": True, }, ] redoc_uri = "https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js" autosummary_filename_map = { "ray.serve.deployment": "ray.serve.deployment_decorator", "ray.serve.Deployment": "ray.serve.Deployment", } # Mock out external dependencies here. autodoc_mock_imports = [ "aiohttp", "aiosignal", "composer", "dask", "datasets", "fastapi", "filelock", "frozenlist", "fsspec", "google", "grpc", "gymnasium", "horovod", "huggingface", "joblib", "lightgbm", "lightgbm_ray", "nevergrad", "numpy", "pandas", "pyarrow", "pytorch_lightning", "scipy", "setproctitle", "skimage", "sklearn", "starlette", "tensorflow", "torch", "torchvision", "transformers", "tree", "typer", "uvicorn", "wandb", "watchfiles", "xgboost", "xgboost_ray", "psutil", "colorama", "grpc", # Internal compiled modules "ray._raylet", "ray.core.generated", "ray.serve.generated", ] for mock_target in autodoc_mock_imports: if mock_target in sys.modules: logger.info( f"Potentially problematic mock target ({mock_target}) found; " "autodoc_mock_imports cannot mock modules that have already " "been loaded into sys.modules when the sphinx build starts." ) class MockedClassDocumenter(autodoc.ClassDocumenter): """Remove note about base class when a class is derived from object.""" def add_line(self, line: str, source: str, *lineno: int) -> None: if line == " Bases: :py:class:`object`": return super().add_line(line, source, *lineno) autodoc.ClassDocumenter = MockedClassDocumenter # Other sphinx docs can be linked to if the appropriate URL to the docs # is specified in the `intersphinx_mapping` - for example, types annotations # that are defined in dependencies can link to their respective documentation. intersphinx_mapping = { "aiohttp": ("https://docs.aiohttp.org/en/stable/", None), "composer": ("https://docs.mosaicml.com/en/latest/", None), "dask": ("https://docs.dask.org/en/stable/", None), "datasets": ("https://huggingface.co/docs/datasets/main/en/", None), "distributed": ("https://distributed.dask.org/en/stable/", None), "grpc": ("https://grpc.github.io/grpc/python/", None), "gymnasium": ("https://gymnasium.farama.org/", None), "horovod": ("https://horovod.readthedocs.io/en/stable/", None), "lightgbm": ("https://lightgbm.readthedocs.io/en/latest/", None), "mars": ("https://mars-project.readthedocs.io/en/latest/", None), "modin": ("https://modin.readthedocs.io/en/stable/", None), "nevergrad": ("https://facebookresearch.github.io/nevergrad/", None), "numpy": ("https://numpy.org/doc/stable/", None), "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None), "pyarrow": ("https://arrow.apache.org/docs", None), "pydantic": ("https://docs.pydantic.dev/latest/", None), "pymongoarrow": ("https://mongo-arrow.readthedocs.io/en/latest/", None), "pyspark": ("https://spark.apache.org/docs/latest/api/python/", None), "python": ("https://docs.python.org/3", None), "pytorch_lightning": ("https://lightning.ai/docs/pytorch/stable/", None), "scipy": ("https://docs.scipy.org/doc/scipy/", None), "sklearn": ("https://scikit-learn.org/stable/", None), "tensorflow": ( "https://www.tensorflow.org/api_docs/python", "https://raw.githubusercontent.com/GPflow/tensorflow-intersphinx/master/tf2_py_objects.inv", ), "torch": ("https://pytorch.org/docs/stable/", None), "torchvision": ("https://pytorch.org/vision/stable/", None), "transformers": ("https://huggingface.co/docs/transformers/main/en/", None), } # Ray must not be imported in conf.py because third party modules initialized by # `import ray` will no be mocked out correctly. Perform a check here to ensure # ray is not imported by future maintainers. assert ( "ray" not in sys.modules ), "If ray is already imported, we will not render documentation correctly!" [rtd-command-info] start-time: 2026-05-29T01:47:25.529555Z, end-time: 2026-05-29T01:47:26.058722Z, duration: 0, exit-code: 2 python -m sphinx -T -W --keep-going -j auto -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v7.1.2 Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages/sphinx/registry.py", line 441, in load_extension mod = import_module(extname) ^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.asdf/installs/python/3.11.14/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1204, in _gcd_import File "", line 1176, in _find_and_load File "", line 1147, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages/sphinxemoji/sphinxemoji.py", line 3, in from pkg_resources import resource_filename ModuleNotFoundError: No module named 'pkg_resources' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages/sphinx/cmd/build.py", line 285, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages/sphinx/application.py", line 229, in __init__ self.setup_extension(extension) File "/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages/sphinx/application.py", line 402, in setup_extension self.registry.load_extension(self, extname) File "/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/63715/lib/python3.11/site-packages/sphinx/registry.py", line 444, in load_extension raise ExtensionError(__('Could not import extension %s') % extname, sphinx.errors.ExtensionError: Could not import extension sphinxemoji.sphinxemoji (exception: No module named 'pkg_resources') Extension error: Could not import extension sphinxemoji.sphinxemoji (exception: No module named 'pkg_resources')