Closed as not planned
Description
Describe the bug
We were attempting to build docs on our most recent PRs. As of 15 minutes ago, they were fine; but now they are failing with the newest Sphinx (8.2.0).
How to Reproduce
This is the raw log that includes all steps:
Read the Docs build information
Build id: 27233118
Project: pyomo
Version: 3476
Commit: 3f1518138c2e97f6c51edb9fb85a7506f5453362
Date: 2025-02-18T19:59:09.282548Z
State: finished
Success: False
[rtd-command-info] start-time: 2025-02-18T19:59:09.739556Z, end-time: 2025-02-18T19:59:11.346658Z, duration: 1, exit-code: 0
git clone --depth 1 https://github.com/Pyomo/pyomo.git .
Cloning into '.'...
[rtd-command-info] start-time: 2025-02-18T19:59:11.364646Z, end-time: 2025-02-18T19:59:12.952641Z, duration: 1, exit-code: 0
git fetch origin --force --prune --prune-tags --depth 50 pull/3476/head:external-3476
From https://github.com/Pyomo/pyomo
* [new ref] refs/pull/3476/head -> external-3476
* [new tag] 6.7.2 -> 6.7.2
* [new tag] 6.7.3 -> 6.7.3
* [new tag] 6.8.0 -> 6.8.0
* [new tag] 6.8.1 -> 6.8.1
* [new tag] 6.8.2 -> 6.8.2
[rtd-command-info] start-time: 2025-02-18T19:59:13.022478Z, end-time: 2025-02-18T19:59:13.393083Z, duration: 0, exit-code: 0
git checkout --force 3f1518138c2e97f6c51edb9fb85a7506f5453362
Note: switching to '3f1518138c2e97f6c51edb9fb85a7506f5453362'.
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 <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 3f15181 Merge branch 'main' into solvers
[rtd-command-info] start-time: 2025-02-18T19:59:13.411643Z, end-time: 2025-02-18T19:59:13.465034Z, 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
build:
os: ubuntu-22.04
tools:
python: "3.11"
sphinx:
configuration: doc/OnlineDocs/conf.py
formats:
- pdf
# Set the version of Python and requirements required to build the docs
python:
install:
- method: pip
path: .
extra_requirements:
- docs
[rtd-command-info] start-time: 2025-02-18T19:59:17.945622Z, end-time: 2025-02-18T19:59:18.014864Z, duration: 0, exit-code: 0
asdf global python 3.11.10
[rtd-command-info] start-time: 2025-02-18T19:59:18.310698Z, end-time: 2025-02-18T19:59:19.178933Z, duration: 0, exit-code: 0
python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH
created virtual environment CPython3.11.10.final.0-64 in 598ms
creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476, 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-02-18T19:59:19.205324Z, end-time: 2025-02-18T19:59:27.918901Z, duration: 8, 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/pyomo/envs/3476/lib/python3.11/site-packages (23.1)
Collecting pip
Downloading pip-25.0.1-py3-none-any.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 10.3 MB/s eta 0:00:00
Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (67.6.1)
Collecting setuptools
Downloading setuptools-75.8.0-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 21.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-25.0.1 setuptools-75.8.0
[rtd-command-info] start-time: 2025-02-18T19:59:27.971424Z, end-time: 2025-02-18T19:59:32.938051Z, duration: 4, exit-code: 0
python -m pip install --upgrade --no-cache-dir sphinx
Collecting sphinx
Downloading sphinx-8.2.0-py3-none-any.whl.metadata (7.0 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.19.1-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.17.0-py3-none-any.whl.metadata (2.0 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 roman-numerals-py>=1.0.0 (from sphinx)
Downloading roman_numerals_py-3.0.0-py3-none-any.whl.metadata (3.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-cp311-cp311-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-cp311-cp311-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-2025.1.31-py3-none-any.whl.metadata (2.5 kB)
Downloading sphinx-8.2.0-py3-none-any.whl (3.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 118.4 MB/s eta 0:00:00
Downloading alabaster-1.0.0-py3-none-any.whl (13 kB)
Downloading babel-2.17.0-py3-none-any.whl (10.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 207.5 MB/s eta 0:00:00
Downloading docutils-0.21.2-py3-none-any.whl (587 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 453.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.19.1-py3-none-any.whl (1.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 486.8 MB/s eta 0:00:00
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Downloading roman_numerals_py-3.0.0-py3-none-any.whl (4.4 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-2025.1.31-py3-none-any.whl (166 kB)
Downloading charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)
Downloading idna-3.10-py3-none-any.whl (70 kB)
Downloading MarkupSafe-3.0.2-cp311-cp311-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, roman-numerals-py, 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.19.1 alabaster-1.0.0 babel-2.17.0 certifi-2025.1.31 charset-normalizer-3.4.1 docutils-0.21.2 idna-3.10 imagesize-1.4.1 packaging-24.2 requests-2.32.3 roman-numerals-py-3.0.0 snowballstemmer-2.2.0 sphinx-8.2.0 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-02-18T19:59:32.959692Z, end-time: 2025-02-18T19:59:46.930334Z, duration: 13, exit-code: 0
python -m pip install --upgrade --upgrade-strategy only-if-needed --no-cache-dir .[docs]
Processing /home/docs/checkouts/readthedocs.org/user_builds/pyomo/checkouts/3476
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting ply (from Pyomo==6.9.0.dev0)
Downloading ply-3.11-py2.py3-none-any.whl.metadata (844 bytes)
Requirement already satisfied: Sphinx>4 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Pyomo==6.9.0.dev0) (8.2.0)
Collecting sphinx-copybutton (from Pyomo==6.9.0.dev0)
Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB)
Collecting sphinx_rtd_theme>0.5 (from Pyomo==6.9.0.dev0)
Downloading sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl.metadata (4.4 kB)
Requirement already satisfied: sphinxcontrib-jsmath in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Pyomo==6.9.0.dev0) (1.0.1)
Collecting sphinxcontrib-napoleon (from Pyomo==6.9.0.dev0)
Downloading sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl.metadata (6.2 kB)
Collecting sphinx-toolbox>=2.16.0 (from Pyomo==6.9.0.dev0)
Downloading sphinx_toolbox-3.8.2-py3-none-any.whl.metadata (8.1 kB)
Collecting sphinx-jinja2-compat>=0.1.1 (from Pyomo==6.9.0.dev0)
Downloading sphinx_jinja2_compat-0.3.0-py3-none-any.whl.metadata (6.8 kB)
Collecting numpy (from Pyomo==6.9.0.dev0)
Downloading numpy-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)
Collecting scipy (from Pyomo==6.9.0.dev0)
Downloading scipy-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.0.0)
Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.0.0)
Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.1.0)
Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.0.0)
Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.0.0)
Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (3.1.5)
Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.19.1)
Requirement already satisfied: docutils<0.22,>=0.20 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (0.21.2)
Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.2.0)
Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.17.0)
Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (1.0.0)
Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (1.4.1)
Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (2.32.3)
Requirement already satisfied: roman-numerals-py>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (3.0.0)
Requirement already satisfied: packaging>=23.0 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from Sphinx>4->Pyomo==6.9.0.dev0) (24.2)
Requirement already satisfied: markupsafe>=1 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from sphinx-jinja2-compat>=0.1.1->Pyomo==6.9.0.dev0) (3.0.2)
Collecting sphinxcontrib-jquery<5,>=4 (from sphinx_rtd_theme>0.5->Pyomo==6.9.0.dev0)
Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB)
Collecting apeye>=0.4.0 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading apeye-1.4.1-py3-none-any.whl.metadata (7.3 kB)
Collecting autodocsumm>=0.2.0 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading autodocsumm-0.2.14-py3-none-any.whl.metadata (5.6 kB)
Collecting beautifulsoup4>=4.9.1 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading beautifulsoup4-4.13.3-py3-none-any.whl.metadata (3.8 kB)
Collecting cachecontrol>=0.13.0 (from cachecontrol[filecache]>=0.13.0->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading cachecontrol-0.14.2-py3-none-any.whl.metadata (3.1 kB)
Collecting dict2css>=0.2.3 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading dict2css-0.3.0.post1-py3-none-any.whl.metadata (7.4 kB)
Collecting domdf-python-tools>=2.9.0 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading domdf_python_tools-3.10.0-py3-none-any.whl.metadata (8.7 kB)
Collecting filelock>=3.8.0 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading filelock-3.17.0-py3-none-any.whl.metadata (2.9 kB)
Collecting html5lib>=1.1 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading html5lib-1.1-py2.py3-none-any.whl.metadata (16 kB)
Collecting ruamel.yaml>=0.16.12 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading ruamel.yaml-0.18.10-py3-none-any.whl.metadata (23 kB)
Collecting sphinx-autodoc-typehints>=1.11.1 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading sphinx_autodoc_typehints-3.0.1-py3-none-any.whl.metadata (7.9 kB)
Collecting sphinx-prompt>=1.1.0 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading sphinx_prompt-1.9.0-py3-none-any.whl.metadata (3.2 kB)
Collecting sphinx-tabs<3.4.7,>=1.2.1 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading sphinx_tabs-3.4.5-py3-none-any.whl.metadata (6.3 kB)
Collecting tabulate>=0.8.7 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading tabulate-0.9.0-py3-none-any.whl.metadata (34 kB)
Collecting typing-extensions!=3.10.0.1,>=3.7.4.3 (from sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting six>=1.5.2 (from sphinxcontrib-napoleon->Pyomo==6.9.0.dev0)
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Collecting pockets>=0.3 (from sphinxcontrib-napoleon->Pyomo==6.9.0.dev0)
Downloading pockets-0.9.1-py2.py3-none-any.whl.metadata (4.4 kB)
Collecting apeye-core>=1.0.0b2 (from apeye>=0.4.0->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading apeye_core-1.1.5-py3-none-any.whl.metadata (7.7 kB)
Collecting platformdirs>=2.3.0 (from apeye>=0.4.0->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading platformdirs-4.3.6-py3-none-any.whl.metadata (11 kB)
Collecting soupsieve>1.2 (from beautifulsoup4>=4.9.1->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading soupsieve-2.6-py3-none-any.whl.metadata (4.6 kB)
Collecting msgpack<2.0.0,>=0.5.2 (from cachecontrol>=0.13.0->cachecontrol[filecache]>=0.13.0->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.4 kB)
Collecting cssutils>=2.2.0 (from dict2css>=0.2.3->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading cssutils-2.11.1-py3-none-any.whl.metadata (8.7 kB)
Collecting natsort>=7.0.1 (from domdf-python-tools>=2.9.0->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading natsort-8.4.0-py3-none-any.whl.metadata (21 kB)
Collecting webencodings (from html5lib>=1.1->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from requests>=2.30.0->Sphinx>4->Pyomo==6.9.0.dev0) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from requests>=2.30.0->Sphinx>4->Pyomo==6.9.0.dev0) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from requests>=2.30.0->Sphinx>4->Pyomo==6.9.0.dev0) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages (from requests>=2.30.0->Sphinx>4->Pyomo==6.9.0.dev0) (2025.1.31)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml>=0.16.12->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.7 kB)
Collecting more-itertools (from cssutils>=2.2.0->dict2css>=0.2.3->sphinx-toolbox>=2.16.0->Pyomo==6.9.0.dev0)
Downloading more_itertools-10.6.0-py3-none-any.whl.metadata (37 kB)
Downloading sphinx_jinja2_compat-0.3.0-py3-none-any.whl (7.9 kB)
Downloading sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl (7.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 140.2 MB/s eta 0:00:00
Downloading sphinx_toolbox-3.8.2-py3-none-any.whl (194 kB)
Downloading numpy-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 193.5 MB/s eta 0:00:00
Downloading ply-3.11-py2.py3-none-any.whl (49 kB)
Downloading scipy-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.6/37.6 MB 191.7 MB/s eta 0:00:00
Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB)
Downloading sphinxcontrib_napoleon-0.7-py2.py3-none-any.whl (17 kB)
Downloading apeye-1.4.1-py3-none-any.whl (107 kB)
Downloading autodocsumm-0.2.14-py3-none-any.whl (14 kB)
Downloading beautifulsoup4-4.13.3-py3-none-any.whl (186 kB)
Downloading cachecontrol-0.14.2-py3-none-any.whl (21 kB)
Downloading dict2css-0.3.0.post1-py3-none-any.whl (25 kB)
Downloading domdf_python_tools-3.10.0-py3-none-any.whl (126 kB)
Downloading filelock-3.17.0-py3-none-any.whl (16 kB)
Downloading html5lib-1.1-py2.py3-none-any.whl (112 kB)
Downloading pockets-0.9.1-py2.py3-none-any.whl (26 kB)
Downloading ruamel.yaml-0.18.10-py3-none-any.whl (117 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Downloading sphinx_autodoc_typehints-3.0.1-py3-none-any.whl (20 kB)
Downloading sphinx_prompt-1.9.0-py3-none-any.whl (7.3 kB)
Downloading sphinx_tabs-3.4.5-py3-none-any.whl (9.9 kB)
Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB)
Downloading tabulate-0.9.0-py3-none-any.whl (35 kB)
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Downloading apeye_core-1.1.5-py3-none-any.whl (99 kB)
Downloading cssutils-2.11.1-py3-none-any.whl (385 kB)
Downloading msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (403 kB)
Downloading natsort-8.4.0-py3-none-any.whl (38 kB)
Downloading platformdirs-4.3.6-py3-none-any.whl (18 kB)
Downloading ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (739 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 739.1/739.1 kB 576.6 MB/s eta 0:00:00
Downloading soupsieve-2.6-py3-none-any.whl (36 kB)
Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Downloading more_itertools-10.6.0-py3-none-any.whl (63 kB)
Building wheels for collected packages: Pyomo
Building wheel for Pyomo (setup.py): started
Building wheel for Pyomo (setup.py): finished with status 'done'
Created wheel for Pyomo: filename=Pyomo-6.9.0.dev0-py3-none-any.whl size=3741607 sha256=e5fdec9e1698b50e9a56c0b43c5d662986b381f51798da55e6d243a8a66b3dae
Stored in directory: /tmp/pip-ephem-wheel-cache-4hyguuwr/wheels/7e/ee/fc/d77f3ddd92fa34792f8c4c6b6e3ef543e467450833b1eb98fb
Successfully built Pyomo
Installing collected packages: webencodings, ply, typing-extensions, tabulate, soupsieve, six, ruamel.yaml.clib, Pyomo, platformdirs, numpy, natsort, msgpack, more-itertools, filelock, sphinx-jinja2-compat, scipy, ruamel.yaml, pockets, html5lib, domdf-python-tools, cssutils, cachecontrol, beautifulsoup4, sphinxcontrib-napoleon, sphinxcontrib-jquery, sphinx-tabs, sphinx-prompt, sphinx-copybutton, sphinx-autodoc-typehints, dict2css, autodocsumm, apeye-core, sphinx_rtd_theme, apeye, sphinx-toolbox
Successfully installed Pyomo-6.9.0.dev0 apeye-1.4.1 apeye-core-1.1.5 autodocsumm-0.2.14 beautifulsoup4-4.13.3 cachecontrol-0.14.2 cssutils-2.11.1 dict2css-0.3.0.post1 domdf-python-tools-3.10.0 filelock-3.17.0 html5lib-1.1 more-itertools-10.6.0 msgpack-1.1.0 natsort-8.4.0 numpy-2.2.3 platformdirs-4.3.6 ply-3.11 pockets-0.9.1 ruamel.yaml-0.18.10 ruamel.yaml.clib-0.2.12 scipy-1.15.2 six-1.17.0 soupsieve-2.6 sphinx-autodoc-typehints-3.0.1 sphinx-copybutton-0.5.2 sphinx-jinja2-compat-0.3.0 sphinx-prompt-1.9.0 sphinx-tabs-3.4.5 sphinx-toolbox-3.8.2 sphinx_rtd_theme-3.0.2 sphinxcontrib-jquery-4.1 sphinxcontrib-napoleon-0.7 tabulate-0.9.0 typing-extensions-4.12.2 webencodings-0.5.1
[rtd-command-info] start-time: 2025-02-18T19:59:47.193943Z, end-time: 2025-02-18T19:59:47.244496Z, duration: 0, exit-code: 0
cat doc/OnlineDocs/conf.py
# ___________________________________________________________________________
#
# Pyomo: Python Optimization Modeling Objects
# Copyright (c) 2008-2024
# National Technology and Engineering Solutions of Sandia, LLC
# Under the terms of Contract DE-NA0003525 with National Technology and
# Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
# rights in this software.
# This software is distributed under the 3-clause BSD License.
# ___________________________________________________________________________
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# pyomo documentation build configuration file, created by
# sphinx-quickstart on Mon Dec 12 16:08:36 2016.
#
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
#
# All configuration values have a default; values that are commented out
# serve to show the default.
import os
import sys
# 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.
#
# assumes pyutilib source is next to the pyomo source directory
sys.path.insert(0, os.path.abspath('../../../pyutilib'))
# top-level pyomo source directory
sys.path.insert(0, os.path.abspath('../..'))
# our sphinx extensions
sys.path.insert(0, os.path.abspath('ext'))
# -- Rebuild SPY files ----------------------------------------------------
sys.path.insert(0, os.path.abspath('src'))
try:
print("Regenerating SPY files...")
from strip_examples import generate_spy_files
generate_spy_files(os.path.abspath('src'))
generate_spy_files(
os.path.abspath(os.path.join('explanation', 'experimental', 'kernel'))
)
finally:
sys.path.pop(0)
# -- Options for intersphinx ---------------------------------------------
intersphinx_mapping = {
'python': ('https://docs.python.org/3', None),
'matplotlib': ('https://matplotlib.org/stable/', None),
'numpy': ('https://numpy.org/doc/stable/', None),
'pandas': ('https://pandas.pydata.org/docs/', None),
'scikit-learn': ('https://scikit-learn.org/stable/', None),
'scipy': ('https://docs.scipy.org/doc/scipy/', None),
}
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
needs_sphinx = '1.8'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.intersphinx',
'sphinx.ext.coverage',
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinx.ext.napoleon',
'sphinx.ext.inheritance_diagram',
'sphinx.ext.doctest',
'sphinx.ext.todo',
'sphinx_copybutton',
# Our version of 'autoenum', designed to work with autosummary.
# This adds 'sphinx.ext.autosummary', and 'sphinx.ext.autodoc':
'pyomo_autosummary_autoenum',
]
viewcode_follow_imported_members = True
# napoleon_include_private_with_doc = True
copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: "
copybutton_prompt_is_regexp = True
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# General information about the project.
project = u'Pyomo'
copyright = u'2008-2024, Sandia National Laboratories'
author = u'Pyomo Developers'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
import pyomo.version
version = pyomo.version.__version__
# The full version, including alpha/beta/rc tags.
release = pyomo.version.__version__
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = "en"
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
# Notes:
# - _build : this is the Sphinx build (output) dir
#
# - api/*.tests.* : this matches autosummary RST files generated for
# test modules. Note that the _templates/recursive-modules.rst
# should prevent these file from being generated, so this is not
# strictly necessary, but including it makes Sphinx throw warnings if
# the filter in the template ever "breaks"
#
# - **/tests/** : this matches source files in any tests directory
# [JDS: I *believe* this is necessary, but am not 100% certain]
#
# - 'Thumbs.db', '.DS_Store' : these have been included from the
# beginning. Unclear if they are still necessary
exclude_patterns = ['_build', 'api/*.tests.*', '**/tests/**', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
# If true, doctest flags (comments looking like # doctest: FLAG, ...) at
# the ends of lines and <BLANKLINE> markers are removed for all code
# blocks showing interactive Python sessions (i.e. doctests)
trim_doctest_flags = True
# If true, figures, tables and code-blocks are automatically numbered if
# they have a caption.
numfig = True
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# html_theme = 'alabaster'
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
html_theme = 'sphinx_rtd_theme'
if not on_rtd: # only import and set the theme if we're building docs locally
import sphinx_rtd_theme
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
# 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 = {'navigation_depth': 6, 'titles_only': True}
# 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']
html_css_files = ['theme_overrides.css']
html_favicon = "../logos/pyomo/favicon.ico"
# -- Options for HTMLHelp output ------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'pyomo'
# -- 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',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [(master_doc, 'pyomo.tex', 'Pyomo Documentation', 'Pyomo', 'manual')]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(master_doc, 'pyomo', 'Pyomo Documentation', [author], 1)]
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(
master_doc,
'pyomo',
'Pyomo Documentation',
author,
'Pyomo',
'One line description of project.',
'Miscellaneous',
)
]
# autodoc_member_order = 'bysource'
autodoc_member_order = 'groupwise'
autosummary_generate = True
autosummary_ignore_module_all = True
# -- Check which conditional dependencies are available ------------------
# Used for skipping certain doctests
from sphinx.ext.doctest import doctest
doctest_default_flags = (
doctest.ELLIPSIS
+ doctest.NORMALIZE_WHITESPACE
+ doctest.IGNORE_EXCEPTION_DETAIL
+ doctest.DONT_ACCEPT_TRUE_FOR_1
)
class IgnoreResultOutputChecker(doctest.OutputChecker):
IGNORE_RESULT = doctest.register_optionflag('IGNORE_RESULT')
def check_output(self, want, got, optionflags):
if optionflags & self.IGNORE_RESULT:
return True
return super().check_output(want, got, optionflags)
doctest.OutputChecker = IgnoreResultOutputChecker
doctest_global_setup = '''
import os, platform, sys
on_github_actions = bool(os.environ.get('GITHUB_ACTIONS', ''))
system_info = (
sys.platform,
platform.machine(),
platform.python_implementation()
)
# Mark that we are testing code (in this case, testing the documentation)
from pyomo.common.flags import in_testing_environment
in_testing_environment(True)
# We need multiprocessing because some doctests must be skipped if the
# start method is not "fork"
import multiprocessing
# (register plugins, make environ available to tests)
import pyomo.environ as pyo
from pyomo.common.dependencies import (
attempt_import, numpy_available, scipy_available, pandas_available,
yaml_available, networkx_available, matplotlib_available,
pympler_available, dill_available, pint_available,
numpy as np,
)
from pyomo.contrib.parmest.parmest import parmest_available
# Ensure that the matplotlib import has been resolved (and the backend changed)
bool(matplotlib_available)
# Not using SolverFactory to check solver availability because
# as of June 2020 there is no way to suppress warnings when
# solvers are not available
import pyomo.opt as _opt
ipopt_available = bool(_opt.check_available_solvers('ipopt'))
sipopt_available = bool(_opt.check_available_solvers('ipopt_sens'))
k_aug_available = bool(_opt.check_available_solvers('k_aug'))
dot_sens_available = bool(_opt.check_available_solvers('dot_sens'))
baron_available = bool(_opt.check_available_solvers('baron'))
glpk_available = bool(_opt.check_available_solvers('glpk'))
gurobipy_available = bool(_opt.check_available_solvers('gurobi_direct'))
baron = _opt.SolverFactory('baron')
if numpy_available:
# Recent changes on GHA seem to have dropped the default precision
# from 8 to 4; restore the default.
np.set_printoptions(precision=8)
if numpy_available and scipy_available:
import pyomo.contrib.pynumero.asl as _asl
asl_available = _asl.AmplInterface.available()
import pyomo.contrib.pynumero.linalg.ma27 as _ma27
ma27_available = _ma27.MA27Interface.available()
from pyomo.contrib.pynumero.linalg.mumps_interface import mumps_available
else:
asl_available = False
ma27_available = False
mumps_available = False
# Prevent any Pyomo logs from propagating up to the doctest logger
import logging
logging.getLogger('pyomo').propagate = False
'''
[rtd-command-info] start-time: 2025-02-18T19:59:47.369075Z, end-time: 2025-02-18T19:59:48.104297Z, duration: 0, exit-code: 2
python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html
Running Sphinx v8.2.0
Regenerating SPY files...
loading translations [en]... done
Versions
========
* Platform: linux; (Linux-5.19.0-1028-aws-x86_64-with-glibc2.35)
* Python version: 3.11.10 (CPython)
* Sphinx version: 8.2.0
* Docutils version: 0.21.2
* Jinja2 version: 3.1.5
* Pygments version: 2.19.1
Last Messages
=============
None.
Loaded Extensions
=================
None.
Traceback
=========
Traceback (most recent call last):
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages/sphinx/cmd/build.py", line 414, in build_main
app = Sphinx(
^^^^^^^
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages/sphinx/application.py", line 291, in __init__
self.setup_extension(extension)
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages/sphinx/application.py", line 489, in setup_extension
self.registry.load_extension(self, extname)
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages/sphinx/registry.py", line 541, in load_extension
mod = import_module(extname)
^^^^^^^^^^^^^^^^^^^^^^
File "/home/docs/.asdf/installs/python/3.11.10/lib/python3.11/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/checkouts/3476/doc/OnlineDocs/ext/pyomo_autosummary_autoenum.py", line 28, in <module>
from sphinx_toolbox.more_autodoc.typehints import format_annotation
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages/sphinx_toolbox/more_autodoc/typehints.py", line 907, in <module>
fr: Union[ForwardRef, sphinx.util.typing.ForwardRef],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/docs/checkouts/readthedocs.org/user_builds/pyomo/envs/3476/lib/python3.11/site-packages/sphinx/util/typing.py", line 626, in __getattr__
raise AttributeError(msg)
AttributeError: module 'sphinx.util.typing' has no attribute 'ForwardRef'
The full traceback has been saved in:
/tmp/sphinx-err-n345jwh4.log
To report this error to the developers, please open an issue at <https://github.com/sphinx-doc/sphinx/issues/>. Thanks!
Please also report this if it was a user error, so that a better error message can be provided next time.
Environment Information
Please see above.
Sphinx extensions
'docs': [
'Sphinx>4',
'sphinx-copybutton',
'sphinx_rtd_theme>0.5',
'sphinxcontrib-jsmath',
'sphinxcontrib-napoleon',
'sphinx-toolbox>=2.16.0',
'sphinx-jinja2-compat>=0.1.1',
],
Additional context
No response