Read the Docs build information Build id: 2712881 Project: anyscale-ray Version: 49548 Commit: b3ef8def9ba34cd2b252a014ac3d8bec3bc92e3e Date: 2025-01-03T06:11:02.131126Z State: cancelled Success: False [rtd-command-info] start-time: 2025-01-03T06:15:47.959187Z, end-time: 2025-01-03T06:15:56.881072Z, duration: 8, exit-code: 0 git clone --depth 1 https://github.com/ray-project/ray . Cloning into '.'... Updating files: 20% (1650/8052) Updating files: 21% (1691/8052) Updating files: 22% (1772/8052) Updating files: 23% (1852/8052) Updating files: 24% (1933/8052) Updating files: 25% (2013/8052) Updating files: 26% (2094/8052) Updating files: 27% (2175/8052) Updating files: 28% (2255/8052) Updating files: 29% (2336/8052) Updating files: 30% (2416/8052) Updating files: 31% (2497/8052) Updating files: 32% (2577/8052) Updating files: 33% (2658/8052) Updating files: 34% (2738/8052) Updating files: 35% (2819/8052) Updating files: 36% (2899/8052) Updating files: 37% (2980/8052) Updating files: 38% (3060/8052) Updating files: 39% (3141/8052) Updating files: 40% (3221/8052) Updating files: 41% (3302/8052) Updating files: 42% (3382/8052) Updating files: 43% (3463/8052) Updating files: 44% (3543/8052) Updating files: 45% (3624/8052) Updating files: 46% (3704/8052) Updating files: 47% (3785/8052) Updating files: 48% (3865/8052) Updating files: 49% (3946/8052) Updating files: 50% (4026/8052) Updating files: 51% (4107/8052) Updating files: 52% (4188/8052) Updating files: 53% (4268/8052) Updating files: 54% (4349/8052) Updating files: 55% (4429/8052) Updating files: 56% (4510/8052) Updating files: 57% (4590/8052) Updating files: 58% (4671/8052) Updating files: 59% (4751/8052) Updating files: 60% (4832/8052) Updating files: 61% (4912/8052) Updating files: 62% (4993/8052) Updating files: 63% (5073/8052) Updating files: 64% (5154/8052) Updating files: 65% (5234/8052) Updating files: 66% (5315/8052) Updating files: 67% (5395/8052) Updating files: 68% (5476/8052) Updating files: 69% (5556/8052) Updating files: 70% (5637/8052) Updating files: 71% (5717/8052) Updating files: 72% (5798/8052) Updating files: 73% (5878/8052) Updating files: 74% (5959/8052) Updating files: 75% (6039/8052) Updating files: 76% (6120/8052) Updating files: 77% (6201/8052) Updating files: 78% (6281/8052) Updating files: 79% (6362/8052) Updating files: 80% (6442/8052) Updating files: 81% (6523/8052) Updating files: 82% (6603/8052) Updating files: 83% (6684/8052) Updating files: 84% (6764/8052) Updating files: 85% (6845/8052) Updating files: 86% (6925/8052) Updating files: 87% (7006/8052) Updating files: 88% (7086/8052) Updating files: 89% (7167/8052) Updating files: 90% (7247/8052) Updating files: 91% (7328/8052) Updating files: 92% (7408/8052) Updating files: 93% (7489/8052) Updating files: 94% (7569/8052) Updating files: 95% (7650/8052) Updating files: 96% (7730/8052) Updating files: 97% (7811/8052) Updating files: 98% (7891/8052) Updating files: 99% (7972/8052) Updating files: 100% (8052/8052) Updating files: 100% (8052/8052), done. [rtd-command-info] start-time: 2025-01-03T06:15:56.942343Z, end-time: 2025-01-03T06:16:04.514014Z, duration: 7, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/49548/head:external-49548 From https://github.com/ray-project/ray * [new ref] refs/pull/49548/head -> external-49548 [rtd-command-info] start-time: 2025-01-03T06:16:04.656143Z, end-time: 2025-01-03T06:16:05.948192Z, duration: 1, exit-code: 0 git checkout --force b3ef8def9ba34cd2b252a014ac3d8bec3bc92e3e Note: switching to 'b3ef8def9ba34cd2b252a014ac3d8bec3bc92e3e'. 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 b3ef8de reuse old logger and give it a name [rtd-command-info] start-time: 2025-01-03T06:16:06.008271Z, end-time: 2025-01-03T06:16:06.069612Z, 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-24.04 tools: python: "3.12" # 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: 2025-01-03T06:16:13.350958Z, end-time: 2025-01-03T06:16:13.442530Z, duration: 0, exit-code: 0 asdf global python 3.12.7 [rtd-command-info] start-time: 2025-01-03T06:16:13.878263Z, end-time: 2025-01-03T06:16:15.064661Z, duration: 1, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.12.7.final.0-64 in 829ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548, 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: 2025-01-03T06:16:15.138247Z, end-time: 2025-01-03T06:16:25.983673Z, duration: 10, 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/49548/lib/python3.12/site-packages (23.1) Collecting pip Downloading pip-24.3.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 15.5 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (67.6.1) Collecting setuptools Downloading setuptools-75.6.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 29.8 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-24.3.1 setuptools-75.6.0 [rtd-command-info] start-time: 2025-01-03T06:16:26.076642Z, end-time: 2025-01-03T06:16:32.132537Z, duration: 6, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-8.1.3-py3-none-any.whl.metadata (6.4 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.5-py3-none-any.whl.metadata (2.6 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.22,>=0.20 (from sphinx) Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl.metadata (6.5 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.16.0-py3-none-any.whl.metadata (1.5 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-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB) Collecting charset-normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.10-py3-none-any.whl.metadata (10 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.30.0->sphinx) Downloading urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB) Collecting certifi>=2017.4.17 (from requests>=2.30.0->sphinx) Downloading certifi-2024.12.14-py3-none-any.whl.metadata (2.3 kB) Downloading sphinx-8.1.3-py3-none-any.whl (3.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5/3.5 MB 95.3 MB/s eta 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.16.0-py3-none-any.whl (9.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 184.7 MB/s eta 0:00:00 Downloading docutils-0.21.2-py3-none-any.whl (587 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 182.8 MB/s eta 0:00:00 Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Downloading jinja2-3.1.5-py3-none-any.whl (134 kB) Downloading packaging-24.2-py3-none-any.whl (65 kB) Downloading pygments-2.18.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 538.8 MB/s eta 0:00:00 Downloading requests-2.32.3-py3-none-any.whl (64 kB) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl (93 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) Downloading certifi-2024.12.14-py3-none-any.whl (164 kB) Downloading charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145 kB) Downloading idna-3.10-py3-none-any.whl (70 kB) Downloading MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB) Downloading urllib3-2.3.0-py3-none-any.whl (128 kB) Installing collected packages: snowballstemmer, urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset-normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.5 MarkupSafe-3.0.2 Pygments-2.18.0 alabaster-1.0.0 babel-2.16.0 certifi-2024.12.14 charset-normalizer-3.4.1 docutils-0.21.2 idna-3.10 imagesize-1.4.1 packaging-24.2 requests-2.32.3 snowballstemmer-2.2.0 sphinx-8.1.3 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.3.0 [rtd-command-info] start-time: 2025-01-03T06:16:32.197630Z, end-time: 2025-01-03T06:16:58.165433Z, duration: 25, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r doc/requirements-doc.txt Requirement already satisfied: setuptools>=70.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from -r doc/requirements-doc.txt (line 4)) (75.6.0) Collecting Pygments==2.16.1 (from -r doc/requirements-doc.txt (line 7)) Downloading Pygments-2.16.1-py3-none-any.whl.metadata (2.5 kB) Collecting sphinx==7.3.7 (from -r doc/requirements-doc.txt (line 10)) Downloading sphinx-7.3.7-py3-none-any.whl.metadata (6.0 kB) Collecting sphinx-click==5.1.0 (from -r doc/requirements-doc.txt (line 11)) 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 12)) 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 13)) Downloading sphinxemoji-0.2.0.tar.gz (44 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting sphinx-jsonschema==1.19.1 (from -r doc/requirements-doc.txt (line 14)) Downloading sphinx-jsonschema-1.19.1.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting sphinx-sitemap==2.5.1 (from -r doc/requirements-doc.txt (line 15)) 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 16)) Downloading sphinxcontrib-redoc-1.6.0.tar.gz (350 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting sphinx-remove-toctrees==0.0.3 (from -r doc/requirements-doc.txt (line 17)) 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 18)) Downloading sphinx_design-0.5.0-py3-none-any.whl.metadata (5.1 kB) Collecting sphinx-autobuild==2024.4.16 (from -r doc/requirements-doc.txt (line 19)) Downloading sphinx_autobuild-2024.4.16-py3-none-any.whl.metadata (7.7 kB) Collecting pydata-sphinx-theme==0.14.1 (from -r doc/requirements-doc.txt (line 20)) Downloading pydata_sphinx_theme-0.14.1-py3-none-any.whl.metadata (7.2 kB) Collecting autodoc_pydantic==2.2.0 (from -r doc/requirements-doc.txt (line 21)) Downloading autodoc_pydantic-2.2.0-py3-none-any.whl.metadata (29 kB) Collecting appnope (from -r doc/requirements-doc.txt (line 22)) Downloading appnope-0.1.4-py2.py3-none-any.whl.metadata (908 bytes) Collecting sphinx-docsearch==0.0.7 (from -r doc/requirements-doc.txt (line 23)) Downloading sphinx_docsearch-0.0.7-py3-none-any.whl.metadata (2.7 kB) Collecting pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3 (from -r doc/requirements-doc.txt (line 25)) Downloading pydantic-2.10.4-py3-none-any.whl.metadata (29 kB) Collecting myst-parser==2.0.0 (from -r doc/requirements-doc.txt (line 28)) 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 29)) 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 32)) Downloading jupytext-1.15.2-py3-none-any.whl.metadata (9.7 kB) Collecting urllib3<1.27 (from -r doc/requirements-doc.txt (line 35)) Downloading urllib3-1.26.20-py2.py3-none-any.whl.metadata (50 kB) Collecting click==8.1.7 (from -r doc/requirements-doc.txt (line 39)) Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB) Collecting boto3==1.34.69 (from -r doc/requirements-doc.txt (line 40)) Downloading boto3-1.34.69-py3-none-any.whl.metadata (6.6 kB) Requirement already satisfied: requests==2.32.3 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from -r doc/requirements-doc.txt (line 41)) (2.32.3) Requirement already satisfied: sphinxcontrib-applehelp in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.0.0) Requirement already satisfied: sphinxcontrib-jsmath in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (1.0.1) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.1.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.0.0) Requirement already satisfied: sphinxcontrib-qthelp in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.0.0) Requirement already satisfied: Jinja2>=3.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (3.1.5) Requirement already satisfied: docutils<0.22,>=0.18.1 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (0.21.2) Requirement already satisfied: snowballstemmer>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.2.0) Requirement already satisfied: babel>=2.9 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (2.16.0) Collecting alabaster~=0.7.14 (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) 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/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (1.4.1) Requirement already satisfied: packaging>=21.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (24.2) Collecting jsonpointer (from sphinx-jsonschema==1.19.1->-r doc/requirements-doc.txt (line 14)) Downloading jsonpointer-3.0.0-py2.py3-none-any.whl.metadata (2.3 kB) Collecting pyyaml (from sphinx-jsonschema==1.19.1->-r doc/requirements-doc.txt (line 14)) Downloading PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB) Collecting jsonschema>=3.0 (from sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 16)) Downloading jsonschema-4.23.0-py3-none-any.whl.metadata (7.9 kB) Collecting six>=1.5 (from sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 16)) Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting colorama (from sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading starlette-0.45.1-py3-none-any.whl.metadata (6.3 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading uvicorn-0.34.0-py3-none-any.whl.metadata (6.5 kB) Collecting watchfiles>=0.20 (from sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading watchfiles-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) Collecting websockets>=11 (from sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading websockets-14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB) Collecting beautifulsoup4 (from pydata-sphinx-theme==0.14.1->-r doc/requirements-doc.txt (line 20)) Downloading beautifulsoup4-4.12.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 20)) 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 20)) Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB) Collecting pydantic-settings<3.0.0,>=2.0 (from autodoc_pydantic==2.2.0->-r doc/requirements-doc.txt (line 21)) Downloading pydantic_settings-2.7.1-py3-none-any.whl.metadata (3.5 kB) Collecting docutils<0.22,>=0.18.1 (from sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) Downloading docutils-0.20.1-py3-none-any.whl.metadata (2.8 kB) Collecting markdown-it-py~=3.0 (from myst-parser==2.0.0->-r doc/requirements-doc.txt (line 28)) 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 28)) Downloading mdit_py_plugins-0.4.2-py3-none-any.whl.metadata (2.8 kB) Collecting importlib_metadata (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading importlib_metadata-8.5.0-py3-none-any.whl.metadata (4.8 kB) Collecting ipython (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading ipython-8.31.0-py3-none-any.whl.metadata (4.9 kB) Collecting jupyter-cache<0.7,>=0.5 (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) 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 29)) Downloading nbclient-0.10.2-py3-none-any.whl.metadata (8.3 kB) Collecting nbformat~=5.0 (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) 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 29)) Downloading ipykernel-6.29.5-py3-none-any.whl.metadata (6.3 kB) Collecting toml (from jupytext==1.15.2->-r doc/requirements-doc.txt (line 32)) Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB) Collecting botocore<1.35.0,>=1.34.69 (from boto3==1.34.69->-r doc/requirements-doc.txt (line 40)) Downloading botocore-1.34.162-py3-none-any.whl.metadata (5.7 kB) Collecting jmespath<2.0.0,>=0.7.1 (from boto3==1.34.69->-r doc/requirements-doc.txt (line 40)) Downloading jmespath-1.0.1-py3-none-any.whl.metadata (7.6 kB) Collecting s3transfer<0.11.0,>=0.10.0 (from boto3==1.34.69->-r doc/requirements-doc.txt (line 40)) Downloading s3transfer-0.10.4-py3-none-any.whl.metadata (1.7 kB) Requirement already satisfied: charset-normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from requests==2.32.3->-r doc/requirements-doc.txt (line 41)) (3.4.1) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from requests==2.32.3->-r doc/requirements-doc.txt (line 41)) (3.10) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from requests==2.32.3->-r doc/requirements-doc.txt (line 41)) (2024.12.14) Collecting annotated-types>=0.6.0 (from pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3->-r doc/requirements-doc.txt (line 25)) Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB) Collecting pydantic-core==2.27.2 (from pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3->-r doc/requirements-doc.txt (line 25)) Downloading pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB) Collecting python-dateutil<3.0.0,>=2.1 (from botocore<1.35.0,>=1.34.69->boto3==1.34.69->-r doc/requirements-doc.txt (line 40)) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/anyscale-ray/envs/49548/lib/python3.12/site-packages (from Jinja2>=3.0->sphinx==7.3.7->-r doc/requirements-doc.txt (line 10)) (3.0.2) Collecting attrs>=22.2.0 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 16)) Downloading attrs-24.3.0-py3-none-any.whl.metadata (11 kB) Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 16)) Downloading jsonschema_specifications-2024.10.1-py3-none-any.whl.metadata (3.0 kB) Collecting referencing>=0.28.4 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 16)) Downloading referencing-0.35.1-py3-none-any.whl.metadata (2.8 kB) Collecting rpds-py>=0.7.1 (from jsonschema>=3.0->sphinxcontrib-redoc==1.6.0->-r doc/requirements-doc.txt (line 16)) Downloading rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) Collecting nbclient (from myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) 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 29)) Downloading SQLAlchemy-2.0.36-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.7 kB) Collecting tabulate (from jupyter-cache<0.7,>=0.5->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading tabulate-0.9.0-py3-none-any.whl.metadata (34 kB) Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser==2.0.0->-r doc/requirements-doc.txt (line 28)) 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 29)) Downloading jupyter_client-8.6.3-py3-none-any.whl.metadata (8.3 kB) Collecting jupyter-core!=5.0.*,>=4.12 (from nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading jupyter_core-5.7.2-py3-none-any.whl.metadata (3.4 kB) Collecting traitlets>=5.3 (from nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading traitlets-5.14.3-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 29)) Downloading fastjsonschema-2.21.1-py3-none-any.whl.metadata (2.2 kB) Collecting python-dotenv>=0.21.0 (from pydantic-settings<3.0.0,>=2.0->autodoc_pydantic==2.2.0->-r doc/requirements-doc.txt (line 21)) Downloading python_dotenv-1.0.1-py3-none-any.whl.metadata (23 kB) Collecting anyio<5,>=3.4.0 (from starlette>=0.35->sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading anyio-4.7.0-py3-none-any.whl.metadata (4.7 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB) Collecting soupsieve>1.2 (from beautifulsoup4->pydata-sphinx-theme==0.14.1->-r doc/requirements-doc.txt (line 20)) Downloading soupsieve-2.6-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 29)) Downloading zipp-3.21.0-py3-none-any.whl.metadata (3.7 kB) Collecting comm>=0.1.1 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading comm-0.2.2-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 29)) Downloading debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.1 kB) Collecting matplotlib-inline>=0.1 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading matplotlib_inline-0.1.7-py3-none-any.whl.metadata (3.9 kB) Collecting nest-asyncio (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading nest_asyncio-1.6.0-py3-none-any.whl.metadata (2.8 kB) Collecting psutil (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB) Collecting pyzmq>=24 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (6.2 kB) Collecting tornado>=6.1 (from ipykernel->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.5 kB) Collecting decorator (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading decorator-5.1.1-py3-none-any.whl.metadata (4.0 kB) Collecting jedi>=0.16 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading jedi-0.19.2-py2.py3-none-any.whl.metadata (22 kB) Collecting pexpect>4.3 (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) 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 29)) Downloading prompt_toolkit-3.0.48-py3-none-any.whl.metadata (6.4 kB) Collecting stack_data (from ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading stack_data-0.6.3-py3-none-any.whl.metadata (18 kB) Collecting sniffio>=1.1 (from anyio<5,>=3.4.0->starlette>=0.35->sphinx-autobuild==2024.4.16->-r doc/requirements-doc.txt (line 19)) Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB) Collecting parso<0.9.0,>=0.8.4 (from jedi>=0.16->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading parso-0.8.4-py2.py3-none-any.whl.metadata (7.7 kB) Collecting platformdirs>=2.5 (from jupyter-core!=5.0.*,>=4.12->nbclient->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading platformdirs-4.3.6-py3-none-any.whl.metadata (11 kB) Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB) Collecting wcwidth (from prompt_toolkit<3.1.0,>=3.0.41->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB) Collecting greenlet!=0.4.17 (from sqlalchemy<3,>=1.3.12->jupyter-cache<0.7,>=0.5->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB) Collecting executing>=1.2.0 (from stack_data->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading executing-2.1.0-py2.py3-none-any.whl.metadata (8.9 kB) Collecting asttokens>=2.1.0 (from stack_data->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) Downloading asttokens-3.0.0-py3-none-any.whl.metadata (4.7 kB) Collecting pure-eval (from stack_data->ipython->myst-nb==1.0.0rc0->-r doc/requirements-doc.txt (line 29)) 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 19.3 MB/s eta 0:00:00 Downloading sphinx-7.3.7-py3-none-any.whl (3.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 33.4 MB/s eta 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 51.9 MB/s eta 0:00:00 Downloading sphinx_autobuild-2024.4.16-py3-none-any.whl (11 kB) Downloading pydata_sphinx_theme-0.14.1-py3-none-any.whl (3.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 74.5 MB/s eta 0:00:00 Downloading autodoc_pydantic-2.2.0-py3-none-any.whl (34 kB) Downloading sphinx_docsearch-0.0.7-py3-none-any.whl (42 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 click-8.1.7-py3-none-any.whl (97 kB) Downloading boto3-1.34.69-py3-none-any.whl (139 kB) Downloading appnope-0.1.4-py2.py3-none-any.whl (4.3 kB) Downloading pydantic-2.10.4-py3-none-any.whl (431 kB) Downloading pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 92.5 MB/s eta 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 annotated_types-0.7.0-py3-none-any.whl (13 kB) Downloading botocore-1.34.162-py3-none-any.whl (12.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.5/12.5 MB 112.6 MB/s eta 0:00:00 Downloading docutils-0.20.1-py3-none-any.whl (572 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 469.7 MB/s eta 0:00:00 Downloading jmespath-1.0.1-py3-none-any.whl (20 kB) Downloading jsonschema-4.23.0-py3-none-any.whl (88 kB) 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.4.2-py3-none-any.whl (55 kB) Downloading nbclient-0.7.4-py3-none-any.whl (73 kB) Downloading nbformat-5.10.4-py3-none-any.whl (78 kB) Downloading pydantic_settings-2.7.1-py3-none-any.whl (29 kB) Downloading PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (767 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 767.5/767.5 kB 339.5 MB/s eta 0:00:00 Downloading s3transfer-0.10.4-py3-none-any.whl (83 kB) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Downloading starlette-0.45.1-py3-none-any.whl (71 kB) Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB) Downloading uvicorn-0.34.0-py3-none-any.whl (62 kB) Downloading watchfiles-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (442 kB) Downloading websockets-14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (169 kB) Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 277.9 MB/s eta 0:00:00 Downloading beautifulsoup4-4.12.3-py3-none-any.whl (147 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading importlib_metadata-8.5.0-py3-none-any.whl (26 kB) Downloading ipykernel-6.29.5-py3-none-any.whl (117 kB) Downloading ipython-8.31.0-py3-none-any.whl (821 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 821.6/821.6 kB 400.8 MB/s eta 0:00:00 Downloading jsonpointer-3.0.0-py2.py3-none-any.whl (7.6 kB) Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB) Downloading anyio-4.7.0-py3-none-any.whl (93 kB) Downloading attrs-24.3.0-py3-none-any.whl (63 kB) Downloading comm-0.2.2-py3-none-any.whl (7.2 kB) Downloading debugpy-1.8.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.2/4.2 MB 214.4 MB/s eta 0:00:00 Downloading fastjsonschema-2.21.1-py3-none-any.whl (23 kB) Downloading h11-0.14.0-py3-none-any.whl (58 kB) Downloading jedi-0.19.2-py2.py3-none-any.whl (1.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 373.7 MB/s eta 0:00:00 Downloading jsonschema_specifications-2024.10.1-py3-none-any.whl (18 kB) Downloading jupyter_client-8.6.3-py3-none-any.whl (106 kB) Downloading jupyter_core-5.7.2-py3-none-any.whl (28 kB) Downloading matplotlib_inline-0.1.7-py3-none-any.whl (9.9 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading pexpect-4.9.0-py2.py3-none-any.whl (63 kB) Downloading prompt_toolkit-3.0.48-py3-none-any.whl (386 kB) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB) Downloading pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (860 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 860.6/860.6 kB 381.4 MB/s eta 0:00:00 Downloading referencing-0.35.1-py3-none-any.whl (26 kB) Downloading rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (385 kB) Downloading soupsieve-2.6-py3-none-any.whl (36 kB) Downloading SQLAlchemy-2.0.36-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 245.9 MB/s eta 0:00:00 Downloading tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (437 kB) Downloading traitlets-5.14.3-py3-none-any.whl (85 kB) Downloading zipp-3.21.0-py3-none-any.whl (9.6 kB) Downloading decorator-5.1.1-py3-none-any.whl (9.1 kB) Downloading nest_asyncio-1.6.0-py3-none-any.whl (5.2 kB) Downloading psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287 kB) Downloading stack_data-0.6.3-py3-none-any.whl (24 kB) Downloading tabulate-0.9.0-py3-none-any.whl (35 kB) Downloading asttokens-3.0.0-py3-none-any.whl (26 kB) Downloading executing-2.1.0-py2.py3-none-any.whl (25 kB) Downloading greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (613 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 613.1/613.1 kB 544.2 MB/s eta 0:00:00 Downloading parso-0.8.4-py2.py3-none-any.whl (103 kB) Downloading platformdirs-4.3.6-py3-none-any.whl (18 kB) Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB) Downloading sniffio-1.3.1-py3-none-any.whl (10 kB) Downloading pure_eval-0.2.3-py3-none-any.whl (11 kB) Downloading wcwidth-0.2.13-py2.py3-none-any.whl (34 kB) Building wheels for collected packages: sphinxemoji, sphinx-jsonschema, sphinxcontrib-redoc Building wheel for sphinxemoji (setup.py): started Building wheel for sphinxemoji (setup.py): finished with status 'done' Created wheel for sphinxemoji: filename=sphinxemoji-0.2.0-py3-none-any.whl size=44408 sha256=5dd9fe2b0baf8f322260c7f3a14e20447ac107bac4449d41fbfc37922a6bf159 Stored in directory: /tmp/pip-ephem-wheel-cache-jdgy2kg3/wheels/9f/24/4a/a8887ff748b930534b9e5b55f07c8929a4918c182e9d660056 Building wheel for sphinx-jsonschema (setup.py): started Building wheel for sphinx-jsonschema (setup.py): finished with status 'done' Created wheel for sphinx-jsonschema: filename=sphinx_jsonschema-1.19.1-py3-none-any.whl size=15415 sha256=6f316749b4d8071945a8d03af7dbdc2b5eef0797fa93d34872c673d477ef207f Stored in directory: /tmp/pip-ephem-wheel-cache-jdgy2kg3/wheels/f3/85/af/e6ad3da1aba8769698e0c4e8f1db1ca7638b06851956b6a160 Building wheel for sphinxcontrib-redoc (setup.py): started Building wheel for sphinxcontrib-redoc (setup.py): finished with status 'done' Created wheel for sphinxcontrib-redoc: filename=sphinxcontrib_redoc-1.6.0-py3-none-any.whl size=299566 sha256=ff4804863c2575a5030debd44d480746d86695f76a2c91a98696cc9b7e53ea1b Stored in directory: /tmp/pip-ephem-wheel-cache-jdgy2kg3/wheels/b7/c6/cc/7bb2ea0d1dc113daf2194caf3e9ce1d5d4758f95c5edf9288f Successfully built sphinxemoji sphinx-jsonschema sphinxcontrib-redoc Installing collected packages: wcwidth, pure-eval, ptyprocess, fastjsonschema, zipp, websockets, urllib3, typing-extensions, traitlets, tornado, toml, tabulate, soupsieve, sniffio, six, rpds-py, pyzmq, pyyaml, python-dotenv, Pygments, psutil, prompt_toolkit, platformdirs, pexpect, parso, nest-asyncio, mdurl, jsonpointer, jmespath, h11, greenlet, executing, docutils, decorator, debugpy, colorama, click, attrs, asttokens, appnope, annotated-types, alabaster, uvicorn, stack_data, sqlalchemy, referencing, python-dateutil, pydantic-core, matplotlib-inline, markdown-it-py, jupyter-core, jedi, importlib_metadata, comm, beautifulsoup4, anyio, accessible-pygments, watchfiles, starlette, sphinx-jsonschema, sphinx, pydantic, mdit-py-plugins, jupyter-client, jsonschema-specifications, ipython, botocore, sphinxemoji, sphinx-sitemap, sphinx-remove-toctrees, sphinx-docsearch, sphinx_design, sphinx-copybutton, sphinx-click, sphinx-autobuild, s3transfer, pydata-sphinx-theme, pydantic-settings, myst-parser, jsonschema, ipykernel, sphinxcontrib-redoc, nbformat, boto3, autodoc_pydantic, nbclient, jupytext, jupyter-cache, myst-nb Attempting uninstall: urllib3 Found existing installation: urllib3 2.3.0 Uninstalling urllib3-2.3.0: Successfully uninstalled urllib3-2.3.0 Attempting uninstall: Pygments Found existing installation: Pygments 2.18.0 Uninstalling Pygments-2.18.0: Successfully uninstalled Pygments-2.18.0 Attempting uninstall: docutils Found existing installation: docutils 0.21.2 Uninstalling docutils-0.21.2: Successfully uninstalled docutils-0.21.2 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 8.1.3 Uninstalling Sphinx-8.1.3: Successfully uninstalled Sphinx-8.1.3 Successfully installed Pygments-2.16.1 accessible-pygments-0.0.5 alabaster-0.7.16 annotated-types-0.7.0 anyio-4.7.0 appnope-0.1.4 asttokens-3.0.0 attrs-24.3.0 autodoc_pydantic-2.2.0 beautifulsoup4-4.12.3 boto3-1.34.69 botocore-1.34.162 click-8.1.7 colorama-0.4.6 comm-0.2.2 debugpy-1.8.11 decorator-5.1.1 docutils-0.20.1 executing-2.1.0 fastjsonschema-2.21.1 greenlet-3.1.1 h11-0.14.0 importlib_metadata-8.5.0 ipykernel-6.29.5 ipython-8.31.0 jedi-0.19.2 jmespath-1.0.1 jsonpointer-3.0.0 jsonschema-4.23.0 jsonschema-specifications-2024.10.1 jupyter-cache-0.6.1 jupyter-client-8.6.3 jupyter-core-5.7.2 jupytext-1.15.2 markdown-it-py-3.0.0 matplotlib-inline-0.1.7 mdit-py-plugins-0.4.2 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.4 pexpect-4.9.0 platformdirs-4.3.6 prompt_toolkit-3.0.48 psutil-6.1.1 ptyprocess-0.7.0 pure-eval-0.2.3 pydantic-2.10.4 pydantic-core-2.27.2 pydantic-settings-2.7.1 pydata-sphinx-theme-0.14.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 pyyaml-6.0.2 pyzmq-26.2.0 referencing-0.35.1 rpds-py-0.22.3 s3transfer-0.10.4 six-1.17.0 sniffio-1.3.1 soupsieve-2.6 sphinx-7.3.7 sphinx-autobuild-2024.4.16 sphinx-click-5.1.0 sphinx-copybutton-0.5.2 sphinx-docsearch-0.0.7 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.36 stack_data-0.6.3 starlette-0.45.1 tabulate-0.9.0 toml-0.10.2 tornado-6.4.2 traitlets-5.14.3 typing-extensions-4.12.2 urllib3-1.26.20 uvicorn-0.34.0 watchfiles-1.0.3 wcwidth-0.2.13 websockets-14.1 zipp-3.21.0 [rtd-command-info] start-time: 2025-01-03T06:16:58.374491Z, end-time: 2025-01-03T06:16:58.435108Z, duration: 0, exit-code: 0 cat doc/source/conf.py import logging import os import pathlib import sys from datetime import datetime from importlib import import_module from typing import Any, Dict import sphinx from docutils import nodes from jinja2.filters import FILTERS from sphinx.ext import autodoc from sphinx.ext.autosummary import generate from sphinx.util.inspect import safe_getattr DEFAULT_API_GROUP = "Others" 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, generate_versions_json, ) # 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. assert not os.path.exists("../../python/ray/_raylet.so"), ( "_raylet.so should not be imported for the purpose for doc build, " "please rename the file to _raylet.so.bak and try again." ) sys.path.insert(0, os.path.abspath("../../python/")) # -- General configuration ------------------------------------------------ # This setting controls how single backticks are handled by sphinx. Developers # are used to using single backticks for code, but RST syntax requires that code # code to be denoted with _double_ backticks. # Here we make sphinx treat single backticks as code also, because everyone is # used to using single backticks as is done with markdown; without this setting, # lots of documentation ends up getting committed with single backticks anyway, # so we might as well make it work as developers intend for it to. default_role = "code" 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", "sphinx_docsearch", ] # Configuration for algolia # Note: This API key grants read access to our indexes and is intended to be public. # See https://www.algolia.com/doc/guides/security/api-keys/ for more information. docsearch_app_id = "LBHF0PABBL" docsearch_api_key = "6c42f30d9669d8e42f6fc92f44028596" docsearch_index_name = "docs-ray" 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 # Make broken internal references into build time errors. # See https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-nitpicky # for more information. :py:class: references are ignored due to false positives # arising from type annotations. See https://github.com/ray-project/ray/pull/46103 # for additional context. nitpicky = True nitpick_ignore_regex = [ ("py:class", ".*"), # Workaround for https://github.com/sphinx-doc/sphinx/issues/10974 ("py:obj", "ray\.data\.datasource\.datasink\.WriteReturnType"), ] # 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" # autogen files are only used to auto-generate public API documentation. # They are not included in the toctree to avoid warnings such as documents not included # in any toctree. autogen_files = [ "data/api/_autogen.rst", ] # 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.*", "data/api/ray.data.*.rst", ] + autogen_files # 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", "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": False, "logo": { "svg": render_svg_logo("_static/img/ray_logo.svg"), }, "navbar_start": ["navbar-ray-logo"], "navbar_end": [ "version-switcher", "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-on-github", ], "content_footer_items": [ "csat", ], "navigation_depth": 4, "pygment_light_style": "stata-dark", "pygment_dark_style": "stata-dark", "switcher": { "json_url": "https://docs.ray.io/en/master/_static/versions.json", "version_match": os.getenv("READTHEDOCS_VERSION", "master"), }, } html_context = { "github_user": "ray-project", "github_repo": "ray", "github_version": "master", "doc_path": "doc/source/", } html_sidebars = { "**": [ "main-sidebar-readthedocs" if os.getenv("READTHEDOCS") == "True" else "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 "" def has_public_constructor(class_name, module_name): cls = getattr(import_module(module_name), class_name) return _is_public_api(cls) def get_api_groups(method_names, class_name, module_name): api_groups = set() cls = getattr(import_module(module_name), class_name) for method_name in method_names: method = getattr(cls, method_name) if _is_public_api(method): api_groups.add( safe_getattr(method, "_annotated_api_group", DEFAULT_API_GROUP) ) return sorted(api_groups) def select_api_group(method_names, class_name, module_name, api_group): cls = getattr(import_module(module_name), class_name) return [ method_name for method_name in method_names if _is_public_api(getattr(cls, method_name)) and _is_api_group(getattr(cls, method_name), api_group) ] def _is_public_api(obj): api_type = safe_getattr(obj, "_annotated_type", None) if not api_type: return False return api_type.value == "PublicAPI" def _is_api_group(obj, group): return safe_getattr(obj, "_annotated_api_group", DEFAULT_API_GROUP) == group FILTERS["filter_out_undoc_class_members"] = filter_out_undoc_class_members FILTERS["get_api_groups"] = get_api_groups FILTERS["select_api_group"] = select_api_group FILTERS["has_public_constructor"] = has_public_constructor 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 _autogen_apis(app: sphinx.application.Sphinx): """ Auto-generate public API documentation. """ generate.generate_autosummary_docs( [os.path.join(app.srcdir, file) for file in autogen_files], app=app, ) def setup(app): # Only generate versions JSON during RTD build if os.getenv("READTHEDOCS") == "True": generate_versions_json() 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) # Hook into the auto generation of public apis app.connect("builder-inited", _autogen_apis) 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", "cupy", "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!"