Read the Docs build information Build id: 3857064 Project: iiasa-energy-program-message-ix Version: 1003 Commit: cf78039a8ffcc0f6185fca58d2c22d3d81ef3e28 Date: 2026-03-23T17:52:39.378811Z State: finished Success: False [rtd-command-info] start-time: 2026-03-23T17:54:31.333579Z, end-time: 2026-03-23T17:54:32.143724Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/iiasa/message_ix.git . Cloning into '.'... [rtd-command-info] start-time: 2026-03-23T17:54:32.233555Z, end-time: 2026-03-23T17:54:33.274452Z, duration: 1, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/1003/head:external-1003 From https://github.com/iiasa/message_ix * [new ref] refs/pull/1003/head -> external-1003 * [new tag] v3.11.0 -> v3.11.0 * [new tag] v3.11.1 -> v3.11.1 [rtd-command-info] start-time: 2026-03-23T17:54:33.950291Z, end-time: 2026-03-23T17:54:34.062177Z, duration: 0, exit-code: 0 git checkout --force cf78039a8ffcc0f6185fca58d2c22d3d81ef3e28 Note: switching to 'cf78039a8ffcc0f6185fca58d2c22d3d81ef3e28'. 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 cf78039 Avoid division by eps in MESSAGE-MACRO_run.gms [rtd-command-info] start-time: 2026-03-23T17:54:34.157108Z, end-time: 2026-03-23T17:54:34.194609Z, duration: 0, exit-code: 0 cat .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Build ePub formats: - epub # Set the version of Python and other tools you might need build: os: ubuntu-24.04 tools: python: "3.13" # Build documentation in the docs/ directory with Sphinx sphinx: configuration: doc/conf.py python: install: - requirements: doc/requirements.txt - method: pip path: . extra_requirements: [docs] [rtd-command-info] start-time: 2026-03-23T17:54:38.709103Z, end-time: 2026-03-23T17:54:38.760136Z, duration: 0, exit-code: 0 asdf global python 3.13.3 [rtd-command-info] start-time: 2026-03-23T17:54:39.135147Z, end-time: 2026-03-23T17:54:39.755906Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.13.3.final.0-64 in 391ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-03-23T17:54:39.837215Z, end-time: 2026-03-23T17:54:44.472973Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (23.1) Collecting pip Downloading pip-26.0.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 16.3 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (67.6.1) Collecting setuptools Downloading setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 29.0 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.0.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-03-23T17:54:44.566510Z, end-time: 2026-03-23T17:54:49.246042Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-9.1.0-py3-none-any.whl.metadata (5.8 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.23,>=0.21 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl.metadata (15 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.0-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.30.0->sphinx) Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2017.4.17 (from requests>=2.30.0->sphinx) Downloading certifi-2026.2.25-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-9.1.0-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 69.5 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 693.9 MB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 371.3 MB/s 0:00:00 Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading packaging-26.0-py3-none-any.whl (74 kB) Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 1.0 GB/s 0:00:00 Downloading requests-2.32.5-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (206 kB) Downloading idna-3.11-py3-none-any.whl (71 kB) Downloading urllib3-2.6.3-py3-none-any.whl (131 kB) Downloading certifi-2026.2.25-py3-none-any.whl (153 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.19.2 alabaster-1.0.0 babel-2.18.0 certifi-2026.2.25 charset_normalizer-3.4.6 docutils-0.22.4 idna-3.11 imagesize-2.0.0 packaging-26.0 requests-2.32.5 roman-numerals-4.1.0 snowballstemmer-3.0.1 sphinx-9.1.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.6.3 [rtd-command-info] start-time: 2026-03-23T17:54:49.333093Z, end-time: 2026-03-23T17:55:20.054966Z, duration: 30, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r doc/requirements.txt Collecting ixmp @ git+https://github.com/iiasa/ixmp.git@main (from -r doc/requirements.txt (line 43)) Cloning https://github.com/iiasa/ixmp.git (to revision main) to /tmp/pip-install-cl464g1o/ixmp_5c11023b586d478f9ae05a278b1ecd38 Running command git clone --filter=blob:none --quiet https://github.com/iiasa/ixmp.git /tmp/pip-install-cl464g1o/ixmp_5c11023b586d478f9ae05a278b1ecd38 Resolved https://github.com/iiasa/ixmp.git to commit 4c0e18f1c02b3e51d0e91d8dd22526b473c39f21 Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting alabaster==0.7.16 (from -r doc/requirements.txt (line 3)) Downloading alabaster-0.7.16-py3-none-any.whl.metadata (2.9 kB) Collecting babel==2.16.0 (from -r doc/requirements.txt (line 5)) Downloading babel-2.16.0-py3-none-any.whl.metadata (1.5 kB) Collecting certifi==2024.7.4 (from -r doc/requirements.txt (line 7)) Downloading certifi-2024.7.4-py3-none-any.whl.metadata (2.2 kB) Collecting charset-normalizer==3.2.0 (from -r doc/requirements.txt (line 9)) Downloading charset_normalizer-3.2.0-py3-none-any.whl.metadata (31 kB) Collecting click==8.2.1 (from -r doc/requirements.txt (line 11)) Downloading click-8.2.1-py3-none-any.whl.metadata (2.5 kB) Collecting cloudpickle==3.1.1 (from -r doc/requirements.txt (line 15)) Downloading cloudpickle-3.1.1-py3-none-any.whl.metadata (7.1 kB) Collecting dask==2025.7.0 (from -r doc/requirements.txt (line 17)) Downloading dask-2025.7.0-py3-none-any.whl.metadata (3.8 kB) Collecting docutils==0.20.1 (from -r doc/requirements.txt (line 19)) Downloading docutils-0.20.1-py3-none-any.whl.metadata (2.8 kB) Collecting et-xmlfile==2.0.0 (from -r doc/requirements.txt (line 25)) Downloading et_xmlfile-2.0.0-py3-none-any.whl.metadata (2.7 kB) Collecting flexcache==0.3 (from -r doc/requirements.txt (line 27)) Downloading flexcache-0.3-py3-none-any.whl.metadata (7.0 kB) Collecting flexparser==0.4 (from -r doc/requirements.txt (line 29)) Downloading flexparser-0.4-py3-none-any.whl.metadata (18 kB) Collecting fsspec==2025.7.0 (from -r doc/requirements.txt (line 31)) Downloading fsspec-2025.7.0-py3-none-any.whl.metadata (12 kB) Collecting genno==1.28.2 (from -r doc/requirements.txt (line 33)) Downloading genno-1.28.2-py3-none-any.whl.metadata (4.1 kB) Collecting gitdb==4.0.10 (from -r doc/requirements.txt (line 35)) Downloading gitdb-4.0.10-py3-none-any.whl.metadata (1.1 kB) Collecting gitpython==3.1.44 (from -r doc/requirements.txt (line 37)) Downloading GitPython-3.1.44-py3-none-any.whl.metadata (13 kB) Collecting idna==3.7 (from -r doc/requirements.txt (line 39)) Downloading idna-3.7-py3-none-any.whl.metadata (9.9 kB) Collecting imagesize==1.4.1 (from -r doc/requirements.txt (line 41)) Downloading imagesize-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB) Requirement already satisfied: jinja2==3.1.6 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 45)) (3.1.6) Collecting jpype1==1.6.0 (from -r doc/requirements.txt (line 47)) Downloading jpype1-1.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (5.0 kB) Collecting latexcodec==2.0.1 (from -r doc/requirements.txt (line 49)) Downloading latexcodec-2.0.1-py2.py3-none-any.whl.metadata (4.7 kB) Collecting locket==1.0.0 (from -r doc/requirements.txt (line 51)) Downloading locket-1.0.0-py2.py3-none-any.whl.metadata (2.8 kB) Collecting markupsafe==2.1.3 (from -r doc/requirements.txt (line 53)) Downloading MarkupSafe-2.1.3.tar.gz (19 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting numpy==2.3.0 (from -r doc/requirements.txt (line 55)) Downloading numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (62 kB) Collecting numpydoc==1.8.0 (from -r doc/requirements.txt (line 60)) Downloading numpydoc-1.8.0-py3-none-any.whl.metadata (4.3 kB) Collecting openpyxl==3.1.5 (from -r doc/requirements.txt (line 62)) Downloading openpyxl-3.1.5-py2.py3-none-any.whl.metadata (2.5 kB) Collecting packaging==25.0 (from -r doc/requirements.txt (line 64)) Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB) Collecting pandas==2.2.3 (from -r doc/requirements.txt (line 70)) Downloading pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB) Collecting partd==1.4.2 (from -r doc/requirements.txt (line 76)) Downloading partd-1.4.2-py3-none-any.whl.metadata (4.6 kB) Collecting pint==0.24.4 (from -r doc/requirements.txt (line 78)) Downloading Pint-0.24.4-py3-none-any.whl.metadata (8.5 kB) Collecting platformdirs==4.3.8 (from -r doc/requirements.txt (line 82)) Downloading platformdirs-4.3.8-py3-none-any.whl.metadata (12 kB) Collecting pyarrow==21.0.0 (from -r doc/requirements.txt (line 86)) Downloading pyarrow-21.0.0-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (3.3 kB) Collecting pybtex==0.24.0 (from -r doc/requirements.txt (line 88)) Downloading pybtex-0.24.0-py2.py3-none-any.whl.metadata (2.0 kB) Collecting pybtex-docutils==1.0.2 (from -r doc/requirements.txt (line 92)) Downloading pybtex_docutils-1.0.2-py3-none-any.whl.metadata (4.2 kB) Collecting pygments==2.18.0 (from -r doc/requirements.txt (line 94)) Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB) Collecting python-dateutil==2.9.0.post0 (from -r doc/requirements.txt (line 96)) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting pytz==2025.2 (from -r doc/requirements.txt (line 98)) Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB) Collecting pyyaml==6.0.1 (from -r doc/requirements.txt (line 100)) Downloading PyYAML-6.0.1.tar.gz (125 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting requests==2.32.4 (from -r doc/requirements.txt (line 106)) Downloading requests-2.32.4-py3-none-any.whl.metadata (4.9 kB) Collecting roman-numerals-py==3.1.0 (from -r doc/requirements.txt (line 108)) Downloading roman_numerals_py-3.1.0-py3-none-any.whl.metadata (3.6 kB) Collecting six==1.16.0 (from -r doc/requirements.txt (line 110)) Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB) Collecting smmap==5.0.0 (from -r doc/requirements.txt (line 115)) Downloading smmap-5.0.0-py3-none-any.whl.metadata (4.2 kB) Collecting snowballstemmer==2.2.0 (from -r doc/requirements.txt (line 117)) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl.metadata (6.5 kB) Collecting sphinx==8.2.3 (from -r doc/requirements.txt (line 119)) Downloading sphinx-8.2.3-py3-none-any.whl.metadata (7.0 kB) Collecting sphinx-rtd-theme==3.0.2 (from -r doc/requirements.txt (line 127)) Downloading sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl.metadata (4.4 kB) Requirement already satisfied: sphinxcontrib-applehelp==2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 129)) (2.0.0) Collecting sphinxcontrib-bibtex==2.6.3 (from -r doc/requirements.txt (line 131)) Downloading sphinxcontrib_bibtex-2.6.3-py3-none-any.whl.metadata (6.3 kB) Requirement already satisfied: sphinxcontrib-devhelp==2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 133)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp==2.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 135)) (2.1.0) Collecting sphinxcontrib-jquery==4.1 (from -r doc/requirements.txt (line 137)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Requirement already satisfied: sphinxcontrib-jsmath==1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 139)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp==2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 141)) (2.0.0) Collecting sphinxcontrib-serializinghtml==1.1.9 (from -r doc/requirements.txt (line 143)) Downloading sphinxcontrib_serializinghtml-1.1.9-py3-none-any.whl.metadata (2.3 kB) Collecting tabulate==0.9.0 (from -r doc/requirements.txt (line 145)) Downloading tabulate-0.9.0-py3-none-any.whl.metadata (34 kB) Collecting toolz==1.0.0 (from -r doc/requirements.txt (line 147)) Downloading toolz-1.0.0-py3-none-any.whl.metadata (5.1 kB) Collecting typing-extensions==4.14.1 (from -r doc/requirements.txt (line 151)) Downloading typing_extensions-4.14.1-py3-none-any.whl.metadata (3.0 kB) Collecting tzdata==2025.2 (from -r doc/requirements.txt (line 156)) Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB) Requirement already satisfied: urllib3==2.6.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from -r doc/requirements.txt (line 158)) (2.6.3) Collecting xarray==2025.7.1 (from -r doc/requirements.txt (line 160)) Downloading xarray-2025.7.1-py3-none-any.whl.metadata (12 kB) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinxcontrib-bibtex==2.6.3->-r doc/requirements.txt (line 131)) (82.0.1) Downloading alabaster-0.7.16-py3-none-any.whl (13 kB) Downloading babel-2.16.0-py3-none-any.whl (9.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 31.4 MB/s 0:00:00 Downloading certifi-2024.7.4-py3-none-any.whl (162 kB) Downloading charset_normalizer-3.2.0-py3-none-any.whl (46 kB) Downloading click-8.2.1-py3-none-any.whl (102 kB) Downloading cloudpickle-3.1.1-py3-none-any.whl (20 kB) Downloading dask-2025.7.0-py3-none-any.whl (1.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 76.5 MB/s 0:00:00 Downloading docutils-0.20.1-py3-none-any.whl (572 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 119.7 MB/s 0:00:00 Downloading et_xmlfile-2.0.0-py3-none-any.whl (18 kB) Downloading flexcache-0.3-py3-none-any.whl (13 kB) Downloading flexparser-0.4-py3-none-any.whl (27 kB) Downloading fsspec-2025.7.0-py3-none-any.whl (199 kB) Downloading genno-1.28.2-py3-none-any.whl (172 kB) Downloading gitdb-4.0.10-py3-none-any.whl (62 kB) Downloading smmap-5.0.0-py3-none-any.whl (24 kB) Downloading GitPython-3.1.44-py3-none-any.whl (207 kB) Downloading idna-3.7-py3-none-any.whl (66 kB) Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Downloading jpype1-1.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (496 kB) Downloading latexcodec-2.0.1-py2.py3-none-any.whl (18 kB) Downloading locket-1.0.0-py2.py3-none-any.whl (4.4 kB) Downloading numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl (16.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.6/16.6 MB 126.6 MB/s 0:00:00 Downloading numpydoc-1.8.0-py3-none-any.whl (64 kB) Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB) Downloading packaging-25.0-py3-none-any.whl (66 kB) Downloading pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.7/12.7 MB 159.9 MB/s 0:00:00 Downloading partd-1.4.2-py3-none-any.whl (18 kB) Downloading Pint-0.24.4-py3-none-any.whl (302 kB) Downloading platformdirs-4.3.8-py3-none-any.whl (18 kB) Downloading pyarrow-21.0.0-cp313-cp313-manylinux_2_28_x86_64.whl (42.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 MB 211.3 MB/s 0:00:00 Downloading pybtex-0.24.0-py2.py3-none-any.whl (561 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 561.4/561.4 kB 725.1 MB/s 0:00:00 Downloading pybtex_docutils-1.0.2-py3-none-any.whl (6.3 kB) Downloading pygments-2.18.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 771.7 MB/s 0:00:00 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB) Downloading requests-2.32.4-py3-none-any.whl (64 kB) Downloading roman_numerals_py-3.1.0-py3-none-any.whl (7.7 kB) Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Downloading snowballstemmer-2.2.0-py2.py3-none-any.whl (93 kB) Downloading sphinx-8.2.3-py3-none-any.whl (3.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 286.3 MB/s 0:00:00 Downloading sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl (7.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 253.1 MB/s 0:00:00 Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxcontrib_bibtex-2.6.3-py3-none-any.whl (40 kB) Downloading sphinxcontrib_serializinghtml-1.1.9-py3-none-any.whl (92 kB) Downloading tabulate-0.9.0-py3-none-any.whl (35 kB) Downloading toolz-1.0.0-py3-none-any.whl (56 kB) Downloading typing_extensions-4.14.1-py3-none-any.whl (43 kB) Downloading tzdata-2025.2-py2.py3-none-any.whl (347 kB) Downloading xarray-2025.7.1-py3-none-any.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 527.3 MB/s 0:00:00 Building wheels for collected packages: ixmp, markupsafe, pyyaml Building wheel for ixmp (pyproject.toml): started Building wheel for ixmp (pyproject.toml): finished with status 'done' Created wheel for ixmp: filename=ixmp-3.11.2.dev212+g4c0e18f1c-py3-none-any.whl size=19402771 sha256=60fb4c339b83b694472782c4dccdf97ec839241ddcc3731c3f07700d5c5675ab Stored in directory: /tmp/pip-ephem-wheel-cache-ug4p6rue/wheels/40/a2/bc/3441b072523ab2bcaf7b23c09176dd459edd8300863a982931 Building wheel for markupsafe (pyproject.toml): started Building wheel for markupsafe (pyproject.toml): finished with status 'done' Created wheel for markupsafe: filename=markupsafe-2.1.3-cp313-cp313-linux_x86_64.whl size=29140 sha256=72b7d42d05c46ef879a3b965e0eb711a1bb95d57d327264bb1cb32f738b54812 Stored in directory: /tmp/pip-ephem-wheel-cache-ug4p6rue/wheels/ea/7f/c1/89539e885f1223e3a9b36f07c5a03562bf4853712f6b8b71a2 Building wheel for pyyaml (pyproject.toml): started Building wheel for pyyaml (pyproject.toml): finished with status 'done' Created wheel for pyyaml: filename=pyyaml-6.0.1-cp313-cp313-linux_x86_64.whl size=45459 sha256=05b61a22347be7a8c57b12dc879165bb0d0af7e568aae227c0bf4de53623db93 Stored in directory: /tmp/pip-ephem-wheel-cache-ug4p6rue/wheels/9c/9e/34/1e1548811b63a9d001469f21797e8b7d5c216d8eb928e7d6ad Successfully built ixmp markupsafe pyyaml Installing collected packages: snowballstemmer, pytz, tzdata, typing-extensions, toolz, tabulate, smmap, six, roman-numerals-py, pyyaml, pygments, pyarrow, platformdirs, packaging, numpy, markupsafe, locket, imagesize, idna, fsspec, et-xmlfile, docutils, cloudpickle, click, charset-normalizer, certifi, babel, alabaster, requests, python-dateutil, partd, openpyxl, latexcodec, jpype1, gitdb, flexparser, flexcache, pybtex, pint, pandas, gitpython, dask, xarray, pybtex-docutils, genno, ixmp, sphinxcontrib-serializinghtml, sphinx, sphinxcontrib-jquery, sphinxcontrib-bibtex, sphinx-rtd-theme, numpydoc Attempting uninstall: snowballstemmer Found existing installation: snowballstemmer 3.0.1 Uninstalling snowballstemmer-3.0.1: Successfully uninstalled snowballstemmer-3.0.1 Attempting uninstall: pygments Found existing installation: Pygments 2.19.2 Uninstalling Pygments-2.19.2: Successfully uninstalled Pygments-2.19.2 Attempting uninstall: packaging Found existing installation: packaging 26.0 Uninstalling packaging-26.0: Successfully uninstalled packaging-26.0 Attempting uninstall: markupsafe Found existing installation: MarkupSafe 3.0.3 Uninstalling MarkupSafe-3.0.3: Successfully uninstalled MarkupSafe-3.0.3 Attempting uninstall: imagesize Found existing installation: imagesize 2.0.0 Uninstalling imagesize-2.0.0: Successfully uninstalled imagesize-2.0.0 Attempting uninstall: idna Found existing installation: idna 3.11 Uninstalling idna-3.11: Successfully uninstalled idna-3.11 Attempting uninstall: docutils Found existing installation: docutils 0.22.4 Uninstalling docutils-0.22.4: Successfully uninstalled docutils-0.22.4 Attempting uninstall: charset-normalizer Found existing installation: charset-normalizer 3.4.6 Uninstalling charset-normalizer-3.4.6: Successfully uninstalled charset-normalizer-3.4.6 Attempting uninstall: certifi Found existing installation: certifi 2026.2.25 Uninstalling certifi-2026.2.25: Successfully uninstalled certifi-2026.2.25 Attempting uninstall: babel Found existing installation: babel 2.18.0 Uninstalling babel-2.18.0: Successfully uninstalled babel-2.18.0 Attempting uninstall: alabaster Found existing installation: alabaster 1.0.0 Uninstalling alabaster-1.0.0: Successfully uninstalled alabaster-1.0.0 Attempting uninstall: requests Found existing installation: requests 2.32.5 Uninstalling requests-2.32.5: Successfully uninstalled requests-2.32.5 Attempting uninstall: sphinxcontrib-serializinghtml Found existing installation: sphinxcontrib-serializinghtml 2.0.0 Uninstalling sphinxcontrib-serializinghtml-2.0.0: Successfully uninstalled sphinxcontrib-serializinghtml-2.0.0 Attempting uninstall: sphinx Found existing installation: Sphinx 9.1.0 Uninstalling Sphinx-9.1.0: Successfully uninstalled Sphinx-9.1.0 Successfully installed alabaster-0.7.16 babel-2.16.0 certifi-2024.7.4 charset-normalizer-3.2.0 click-8.2.1 cloudpickle-3.1.1 dask-2025.7.0 docutils-0.20.1 et-xmlfile-2.0.0 flexcache-0.3 flexparser-0.4 fsspec-2025.7.0 genno-1.28.2 gitdb-4.0.10 gitpython-3.1.44 idna-3.7 imagesize-1.4.1 ixmp-3.11.2.dev212+g4c0e18f1c jpype1-1.6.0 latexcodec-2.0.1 locket-1.0.0 markupsafe-2.1.3 numpy-2.3.0 numpydoc-1.8.0 openpyxl-3.1.5 packaging-25.0 pandas-2.2.3 partd-1.4.2 pint-0.24.4 platformdirs-4.3.8 pyarrow-21.0.0 pybtex-0.24.0 pybtex-docutils-1.0.2 pygments-2.18.0 python-dateutil-2.9.0.post0 pytz-2025.2 pyyaml-6.0.1 requests-2.32.4 roman-numerals-py-3.1.0 six-1.16.0 smmap-5.0.0 snowballstemmer-2.2.0 sphinx-8.2.3 sphinx-rtd-theme-3.0.2 sphinxcontrib-bibtex-2.6.3 sphinxcontrib-jquery-4.1 sphinxcontrib-serializinghtml-1.1.9 tabulate-0.9.0 toolz-1.0.0 typing-extensions-4.14.1 tzdata-2025.2 xarray-2025.7.1 [rtd-command-info] start-time: 2026-03-23T17:55:20.148731Z, end-time: 2026-03-23T17:55:47.133906Z, duration: 26, exit-code: 0 python -m pip install --upgrade --upgrade-strategy only-if-needed --no-cache-dir .[docs] Processing ./. Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Requirement already satisfied: click in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (8.2.1) Requirement already satisfied: ixmp>=3.11 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (3.11.2.dev212+g4c0e18f1c) Requirement already satisfied: genno>=1.20 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (1.28.2) Requirement already satisfied: numpy in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (2.3.0) Requirement already satisfied: pandas>=1.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (2.2.3) Requirement already satisfied: PyYAML in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (6.0.1) Collecting scipy (from message_ix==3.11.2.dev119+gcf78039a8) Downloading scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB) Requirement already satisfied: GitPython in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (3.1.44) Requirement already satisfied: numpydoc in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (1.8.0) Requirement already satisfied: sphinx>=4.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (8.2.3) Requirement already satisfied: sphinx_rtd_theme in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (3.0.2) Requirement already satisfied: sphinxcontrib-bibtex in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from message_ix==3.11.2.dev119+gcf78039a8) (2.6.3) Requirement already satisfied: dask>=2.14 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (2025.7.0) Requirement already satisfied: pint in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (0.24.4) Requirement already satisfied: platformdirs in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (4.3.8) Requirement already satisfied: xarray!=2022.6.0,>=0.17 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (2025.7.1) Requirement already satisfied: cloudpickle>=3.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (3.1.1) Requirement already satisfied: fsspec>=2021.09.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (2025.7.0) Requirement already satisfied: packaging>=20.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (25.0) Requirement already satisfied: partd>=1.4.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (1.4.2) Requirement already satisfied: toolz>=0.10.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (1.0.0) Collecting pyam-iamc (from genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading pyam_iamc-3.2.0-py3-none-any.whl.metadata (8.9 kB) Requirement already satisfied: JPype1>=1.2.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev119+gcf78039a8) (1.6.0) Requirement already satisfied: openpyxl in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev119+gcf78039a8) (3.1.5) Requirement already satisfied: python-dateutil>=2.8.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev119+gcf78039a8) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev119+gcf78039a8) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev119+gcf78039a8) (2025.2) Requirement already satisfied: pyarrow>=10.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pandas[parquet]>=1.0->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (21.0.0) Requirement already satisfied: locket in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from partd>=1.4.0->dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (1.0.0) Requirement already satisfied: six>=1.5 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->message_ix==3.11.2.dev119+gcf78039a8) (1.16.0) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (1.1.9) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (3.1.6) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.18.0) Requirement already satisfied: docutils<0.22,>=0.20 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (0.20.1) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.2.0) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.16.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (0.7.16) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (1.4.1) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.32.4) Requirement already satisfied: roman-numerals-py>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (3.1.0) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from Jinja2>=3.1->sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.1.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (3.2.0) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (3.7) Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2.6.3) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev119+gcf78039a8) (2024.7.4) Requirement already satisfied: gitdb<5,>=4.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from GitPython->message_ix==3.11.2.dev119+gcf78039a8) (4.0.10) Requirement already satisfied: smmap<6,>=3.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from gitdb<5,>=4.0.1->GitPython->message_ix==3.11.2.dev119+gcf78039a8) (5.0.0) Collecting ixmp4<0.15,>=0.14 (from ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading ixmp4-0.14.0-py3-none-any.whl.metadata (5.2 kB) Collecting gamsapi>=45.7.0 (from gamsapi[core,transfer]>=45.7.0; extra == "ixmp4"->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading gamsapi-53.3.0-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (6.0 kB) Collecting PyJWT>=2.4.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading pyjwt-2.12.1-py3-none-any.whl.metadata (4.1 kB) Collecting SQLAlchemy-Utils>=0.41.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading sqlalchemy_utils-0.42.1-py3-none-any.whl.metadata (4.6 kB) Collecting SQLAlchemy>=2.0.22 (from SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading sqlalchemy-2.0.48-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB) Collecting alembic>=1.12.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading alembic-1.18.4-py3-none-any.whl.metadata (7.2 kB) Collecting fastapi>=0.100.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading fastapi-0.135.2-py3-none-any.whl.metadata (28 kB) Collecting httpx>=0.25.0 (from httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB) Collecting pandera>=0.24.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading pandera-0.30.1-py3-none-any.whl.metadata (10 kB) Collecting psycopg>=3.1.12 (from psycopg[binary]>=3.1.12->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading psycopg-3.3.3-py3-none-any.whl.metadata (4.3 kB) Collecting pydantic>=2.3.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading pydantic-2.12.5-py3-none-any.whl.metadata (90 kB) Collecting pydantic-settings>=2.1.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading pydantic_settings-2.13.1-py3-none-any.whl.metadata (3.4 kB) Collecting python-dotenv>=1.0.1 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading python_dotenv-1.2.2-py3-none-any.whl.metadata (27 kB) Collecting rich>=13.5.2 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading rich-14.3.3-py3-none-any.whl.metadata (18 kB) Collecting toml>=0.10.2 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB) Collecting typer>=0.9.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading typer-0.24.1-py3-none-any.whl.metadata (16 kB) Collecting Mako (from alembic>=1.12.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading mako-1.3.10-py3-none-any.whl.metadata (2.9 kB) Requirement already satisfied: typing-extensions>=4.12 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from alembic>=1.12.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) (4.14.1) Collecting starlette>=0.46.0 (from fastapi>=0.100.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading starlette-1.0.0-py3-none-any.whl.metadata (6.3 kB) Collecting typing-inspection>=0.4.2 (from fastapi>=0.100.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB) Collecting annotated-doc>=0.0.2 (from fastapi>=0.100.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading annotated_doc-0.0.4-py3-none-any.whl.metadata (6.6 kB) Collecting ply (from gamsapi[core,transfer]>=45.7.0; extra == "ixmp4"->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading ply-3.11-py2.py3-none-any.whl.metadata (844 bytes) Collecting anyio (from httpx>=0.25.0->httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading anyio-4.12.1-py3-none-any.whl.metadata (4.3 kB) Collecting httpcore==1.* (from httpx>=0.25.0->httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB) Collecting h11>=0.16 (from httpcore==1.*->httpx>=0.25.0->httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Collecting h2<5,>=3 (from httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading h2-4.3.0-py3-none-any.whl.metadata (5.1 kB) Collecting hyperframe<7,>=6.1 (from h2<5,>=3->httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading hyperframe-6.1.0-py3-none-any.whl.metadata (4.3 kB) Collecting hpack<5,>=4.1 (from h2<5,>=3->httpx[http2]>=0.25.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading hpack-4.1.0-py3-none-any.whl.metadata (4.6 kB) Requirement already satisfied: et-xmlfile in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from openpyxl->ixmp>=3.11->message_ix==3.11.2.dev119+gcf78039a8) (2.0.0) Collecting typeguard (from pandera>=0.24.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading typeguard-4.5.1-py3-none-any.whl.metadata (3.8 kB) Collecting typing_inspect>=0.6.0 (from pandera>=0.24.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading typing_inspect-0.9.0-py3-none-any.whl.metadata (1.5 kB) Collecting psycopg-binary==3.3.3 (from psycopg[binary]>=3.1.12->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading psycopg_binary-3.3.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB) Collecting annotated-types>=0.6.0 (from pydantic>=2.3.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB) Collecting pydantic-core==2.41.5 (from pydantic>=2.3.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.3 kB) Collecting markdown-it-py>=2.2.0 (from rich>=13.5.2->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading markdown_it_py-4.0.0-py3-none-any.whl.metadata (7.3 kB) Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=13.5.2->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Collecting greenlet>=1 (from SQLAlchemy>=2.0.22->SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading greenlet-3.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.7 kB) Collecting mypy>=0.910 (from SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.2 kB) Collecting mypy_extensions>=1.0.0 (from mypy>=0.910->SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB) Collecting pathspec>=0.9.0 (from mypy>=0.910->SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading pathspec-1.0.4-py3-none-any.whl.metadata (13 kB) Collecting librt>=0.6.2 (from mypy>=0.910->SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (1.3 kB) Collecting shellingham>=1.3.0 (from typer>=0.9.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev119+gcf78039a8) Downloading shellingham-1.5.4-py2.py3-none-any.whl.metadata (3.5 kB) Collecting plotnine (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading plotnine-0.15.3-py3-none-any.whl.metadata (9.5 kB) Collecting sdmx1 (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading sdmx1-2.25.1-py3-none-any.whl.metadata (5.4 kB) Collecting graphviz (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading graphviz-0.21-py3-none-any.whl.metadata (12 kB) Requirement already satisfied: tabulate>=0.8.10 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from numpydoc->message_ix==3.11.2.dev119+gcf78039a8) (0.9.0) Requirement already satisfied: flexcache>=0.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pint->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (0.3) Requirement already satisfied: flexparser>=0.4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pint->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) (0.4) Collecting matplotlib>=3.8.0 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (52 kB) Collecting mizani~=0.14.0 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading mizani-0.14.4-py3-none-any.whl.metadata (4.8 kB) Collecting statsmodels>=0.14.6 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading statsmodels-0.14.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (9.5 kB) Collecting contourpy>=1.0.1 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (5.5 kB) Collecting cycler>=0.10 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB) Collecting fonttools>=4.22.0 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading fonttools-4.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (117 kB) Collecting kiwisolver>=1.3.1 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (5.1 kB) Collecting pillow>=8 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB) Collecting pyparsing>=3 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading pyparsing-3.3.2-py3-none-any.whl.metadata (5.8 kB) Collecting patsy>=0.5.6 (from statsmodels>=0.14.6->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading patsy-1.0.2-py2.py3-none-any.whl.metadata (3.6 kB) Collecting XlsxWriter>=3.0.3 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading xlsxwriter-3.2.9-py3-none-any.whl.metadata (2.7 kB) Collecting iam-units>=2020.4.21 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading iam_units-2026.3.10-py3-none-any.whl.metadata (50 kB) Collecting seaborn>=0.11 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB) Collecting wquantiles>=0.6 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading wquantiles-0.6-py3-none-any.whl.metadata (1.1 kB) Collecting lxml>=3.6 (from sdmx1->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.6 kB) Collecting packaging>=20.0 (from dask>=2.14->dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev119+gcf78039a8) Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: sphinxcontrib-jquery<5,>=4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinx_rtd_theme->message_ix==3.11.2.dev119+gcf78039a8) (4.1) Requirement already satisfied: pybtex>=0.24 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev119+gcf78039a8) (0.24.0) Requirement already satisfied: pybtex-docutils>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev119+gcf78039a8) (1.0.2) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev119+gcf78039a8) (82.0.1) Requirement already satisfied: latexcodec>=1.0.4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->message_ix==3.11.2.dev119+gcf78039a8) (2.0.1) Downloading ixmp4-0.14.0-py3-none-any.whl (273 kB) Downloading alembic-1.18.4-py3-none-any.whl (263 kB) Downloading fastapi-0.135.2-py3-none-any.whl (117 kB) Downloading annotated_doc-0.0.4-py3-none-any.whl (5.3 kB) Downloading gamsapi-53.3.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 17.7 MB/s 0:00:00 Downloading httpx-0.28.1-py3-none-any.whl (73 kB) Downloading httpcore-1.0.9-py3-none-any.whl (78 kB) Downloading h11-0.16.0-py3-none-any.whl (37 kB) Downloading h2-4.3.0-py3-none-any.whl (61 kB) Downloading hpack-4.1.0-py3-none-any.whl (34 kB) Downloading hyperframe-6.1.0-py3-none-any.whl (13 kB) Downloading pandera-0.30.1-py3-none-any.whl (303 kB) Downloading psycopg-3.3.3-py3-none-any.whl (212 kB) Downloading psycopg_binary-3.3.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 38.5 MB/s 0:00:00 Downloading pydantic-2.12.5-py3-none-any.whl (463 kB) Downloading pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 64.3 MB/s 0:00:00 Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB) Downloading pydantic_settings-2.13.1-py3-none-any.whl (58 kB) Downloading pyjwt-2.12.1-py3-none-any.whl (29 kB) Downloading python_dotenv-1.2.2-py3-none-any.whl (22 kB) Downloading rich-14.3.3-py3-none-any.whl (310 kB) Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading sqlalchemy-2.0.48-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 78.6 MB/s 0:00:00 Downloading greenlet-3.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (616 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 616.8/616.8 kB 130.3 MB/s 0:00:00 Downloading sqlalchemy_utils-0.42.1-py3-none-any.whl (91 kB) Downloading mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (13.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.6/13.6 MB 130.6 MB/s 0:00:00 Downloading librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (224 kB) Downloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB) Downloading pathspec-1.0.4-py3-none-any.whl (55 kB) Downloading starlette-1.0.0-py3-none-any.whl (72 kB) Downloading anyio-4.12.1-py3-none-any.whl (113 kB) Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB) Downloading typer-0.24.1-py3-none-any.whl (56 kB) Downloading shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB) Downloading typing_inspect-0.9.0-py3-none-any.whl (8.8 kB) Downloading typing_inspection-0.4.2-py3-none-any.whl (14 kB) Downloading graphviz-0.21-py3-none-any.whl (47 kB) Downloading mako-1.3.10-py3-none-any.whl (78 kB) Downloading plotnine-0.15.3-py3-none-any.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 221.7 MB/s 0:00:00 Downloading mizani-0.14.4-py3-none-any.whl (133 kB) Downloading matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.7/8.7 MB 204.9 MB/s 0:00:00 Downloading contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (362 kB) Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB) Downloading fonttools-4.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 251.2 MB/s 0:00:00 Downloading kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 412.9 MB/s 0:00:00 Downloading pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.0/7.0 MB 282.5 MB/s 0:00:00 Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB) Downloading scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.2/35.2 MB 265.7 MB/s 0:00:00 Downloading statsmodels-0.14.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (10.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.3/10.3 MB 200.4 MB/s 0:00:00 Downloading patsy-1.0.2-py2.py3-none-any.whl (233 kB) Downloading ply-3.11-py2.py3-none-any.whl (49 kB) Downloading pyam_iamc-3.2.0-py3-none-any.whl (98 kB) Downloading iam_units-2026.3.10-py3-none-any.whl (50 kB) Downloading seaborn-0.13.2-py3-none-any.whl (294 kB) Downloading wquantiles-0.6-py3-none-any.whl (3.3 kB) Downloading xlsxwriter-3.2.9-py3-none-any.whl (175 kB) Downloading sdmx1-2.25.1-py3-none-any.whl (264 kB) Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 292.5 MB/s 0:00:00 Downloading packaging-26.0-py3-none-any.whl (74 kB) Downloading typeguard-4.5.1-py3-none-any.whl (36 kB) Building wheels for collected packages: message_ix Building wheel for message_ix (pyproject.toml): started Building wheel for message_ix (pyproject.toml): finished with status 'done' Created wheel for message_ix: filename=message_ix-3.11.2.dev119+gcf78039a8-py3-none-any.whl size=6360720 sha256=a91aaeb2ed9854cc424d4e1ddc4729e6e3f47f1b166a1ff63b6795338f30d359 Stored in directory: /tmp/pip-ephem-wheel-cache-z884xtpb/wheels/5e/ec/00/77f513dbb7c77d0bc52b8d31df0081529b382438434f15a1c4 Successfully built message_ix Installing collected packages: ply, XlsxWriter, wquantiles, typing-inspection, typeguard, toml, shellingham, scipy, python-dotenv, pyparsing, PyJWT, pydantic-core, psycopg-binary, psycopg, pillow, patsy, pathspec, packaging, mypy_extensions, mdurl, Mako, lxml, librt, kiwisolver, hyperframe, hpack, h11, greenlet, graphviz, gamsapi, fonttools, cycler, contourpy, anyio, annotated-types, annotated-doc, typing_inspect, starlette, SQLAlchemy, pydantic, mypy, matplotlib, markdown-it-py, httpcore, h2, statsmodels, SQLAlchemy-Utils, seaborn, sdmx1, rich, pydantic-settings, pandera, mizani, iam-units, httpx, fastapi, alembic, typer, plotnine, ixmp4, pyam-iamc, message_ix Attempting uninstall: packaging Found existing installation: packaging 25.0 Uninstalling packaging-25.0: Successfully uninstalled packaging-25.0 Successfully installed Mako-1.3.10 PyJWT-2.12.1 SQLAlchemy-2.0.48 SQLAlchemy-Utils-0.42.1 XlsxWriter-3.2.9 alembic-1.18.4 annotated-doc-0.0.4 annotated-types-0.7.0 anyio-4.12.1 contourpy-1.3.3 cycler-0.12.1 fastapi-0.135.2 fonttools-4.62.1 gamsapi-53.3.0 graphviz-0.21 greenlet-3.3.2 h11-0.16.0 h2-4.3.0 hpack-4.1.0 httpcore-1.0.9 httpx-0.28.1 hyperframe-6.1.0 iam-units-2026.3.10 ixmp4-0.14.0 kiwisolver-1.5.0 librt-0.8.1 lxml-6.0.2 markdown-it-py-4.0.0 matplotlib-3.10.8 mdurl-0.1.2 message_ix-3.11.2.dev119+gcf78039a8 mizani-0.14.4 mypy-1.19.1 mypy_extensions-1.1.0 packaging-26.0 pandera-0.30.1 pathspec-1.0.4 patsy-1.0.2 pillow-12.1.1 plotnine-0.15.3 ply-3.11 psycopg-3.3.3 psycopg-binary-3.3.3 pyam-iamc-3.2.0 pydantic-2.12.5 pydantic-core-2.41.5 pydantic-settings-2.13.1 pyparsing-3.3.2 python-dotenv-1.2.2 rich-14.3.3 scipy-1.17.1 sdmx1-2.25.1 seaborn-0.13.2 shellingham-1.5.4 starlette-1.0.0 statsmodels-0.14.6 toml-0.10.2 typeguard-4.5.1 typer-0.24.1 typing-inspection-0.4.2 typing_inspect-0.9.0 wquantiles-0.6 [rtd-command-info] start-time: 2026-03-23T17:55:47.292586Z, end-time: 2026-03-23T17:55:47.329027Z, duration: 0, exit-code: 0 cat doc/conf.py # Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full # list see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html import os from importlib.metadata import version as get_version from pathlib import Path # -- Project information --------------------------------------------------------------- project = "MESSAGEix" copyright = "2018–%Y, IIASA Energy, Climate, and Environment (ECE) Program" author = "MESSAGEix Developers" # The major project version, used as the replacement for |version|. version = get_version("message_ix") # The full project version, used as the replacement for |release| and in HTML templates. release = version # -- General configuration ------------------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions coming # with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ # First-party "sphinx.ext.autodoc", "sphinx.ext.doctest", "sphinx.ext.extlinks", "sphinx.ext.intersphinx", "sphinx.ext.todo", "sphinx.ext.coverage", "sphinx.ext.mathjax", "sphinxcontrib.bibtex", "sphinx.ext.autosummary", "sphinx.ext.napoleon", # Others "genno.compat.sphinx.rewrite_refs", "ixmp.util.sphinx_linkcode_github", "message_ix.util.sphinx_gams", ] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and directories to # ignore when looking for source files. This pattern also affects html_static_path and # html_extra_path. exclude_patterns = ["_build", "README.rst"] nitpicky = True # A string of reStructuredText that will be included at the beginning of every source # file that is read. rst_prolog = r""" .. role:: py(code) :language: python .. role:: strike .. role:: underline .. |MESSAGEix| replace:: MESSAGE\ :emphasis:`ix` .. |ixmp| replace:: :emphasis:`ix` modeling platform .. |IIASA| raw:: html IIASA .. |y0| replace:: :math:`y_0` .. |yA| replace:: :math:`y^A` .. |yV| replace:: :math:`y^V` """ # Add reST replacements for references to particular MESSAGE/MACRO model items. These # are of the form ".. |foo| replace:: :ref:`foo `", such that |foo| in reST links # to the hyperlink target #foo with the text 'foo'. The explicit text is needed because # sometimes multiple targets appear above a single heading, and that heading text would # be automatically used for the link text. for name in ( "ACT", "CAP", "CAP_NEW", "LAND", "STOCK_CHG", "duration_period", "duration_period_sum", "growth_new_capacity_up", "historical_new_capacity", "initial_new_capacity_up", "input", "input_cap", "input_cap_new", "input_cap_ret", "output", "output_cap", "output_cap_new", "output_cap_ret", "land_input", "land_output", "map_tec_lifetime", "remaining_capacity", "technical_lifetime", ): rst_prolog += f"\n.. |{name}| replace:: :ref:`{name} <{name}>`" # -- Options for HTML output ----------------------------------------------------------- # A list of CSS files. html_css_files = ["custom.css"] html_favicon = "_static/messageix-favicon.svg" # The name of an image file (relative to this directory) to place at the top of the # sidebar. html_logo = "_static/combined-logo-white.svg" # 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"] # The theme to use for HTML and HTML Help pages. html_theme = "sphinx_rtd_theme" html_theme_options = {"logo_only": True} # Define the canonical URL if you are using a custom domain on Read the Docs html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "") # Tell Jinja2 templates the build is running on Read the Docs if os.environ.get("READTHEDOCS", "") == "True": if "html_context" not in globals(): html_context = {} html_context["READTHEDOCS"] = True # -- Options for LaTeX output ---------------------------------------------------------- # The LaTeX engine to build the docs. latex_engine = "lualatex" # -- Options for genno.compat.sphinx.rewrite_refs -------------------------------------- # When base classes in upstream (genno, ixmp) packages are inherited in message_ix, # Sphinx will not properly resolve relative references within docstrings of methods of # the former. Some of these aliases are to allow Sphinx to locate the correct targets. reference_aliases = { # genno "AnyQuantity": ":data:`genno.core.quantity.AnyQuantity`", "Computer": "genno.Computer", "Graph": "genno.core.graph.Graph", "Operator": "genno.Operator", "KeyLike": ":data:`genno.core.key.KeyLike`", "iter_keys": "genno.core.key.iter_keys", "single_key": "genno.core.key.single_key", r"(genno\.|)Key(?=Seq|[^\w]|$)": "genno.core.key.Key", r"(genno\.|)Quantity": "genno.core.attrseries.AttrSeries", # ixmp "ItemType": "ixmp.backend.ItemType", "Platform": "ixmp.Platform", "TimeSeries": "ixmp.TimeSeries", # # Many projects (including Sphinx itself!) do not have a py:module target in for the # top-level module in objects.inv. Resolve these using :doc:`index` or similar for # each project. "dask$": ":std:doc:`dask:index`", "jpype$": ":std:doc:`jpype:index`", "plotnine$": ":class:`plotnine.ggplot`", } # -- Options for ixmp.util.sphinx_linkcode_github / sphinx.ext.linkcode ---------------- linkcode_github_repo_slug = "iiasa/message_ix" # -- Options for message_ix.util.sphinx_gams ------------------------------------------- gams_source_dir = Path(__file__).parents[1].joinpath("message_ix", "model") gams_target_dir = "model" # -- Options for sphinx.ext.extlinks --------------------------------------------------- # Link to "main" blob if a non-release version of the docs is being built; otherwise # to the tag for the release gh_ref = "main" if ".dev" in version else f"v{version}" extlinks = { "issue": ("https://github.com/iiasa/message_ix/issues/%s", "#%s"), "pull": ("https://github.com/iiasa/message_ix/pull/%s", "PR #%s"), "tut": (f"https://github.com/iiasa/message_ix/blob/{gh_ref}/tutorial/%s", None), } # -- Options for sphinx.ext.intersphinx ------------------------------------------------ def local_inv(name: str, *parts: str) -> str | None: """Construct the path to a local intersphinx inventory.""" from importlib.util import find_spec spec = find_spec(name) if spec is None: return None if 0 == len(parts): parts = ("doc", "_build", "html") assert spec.origin is not None return str(Path(spec.origin).parents[1].joinpath(*parts, "objects.inv")) intersphinx_mapping = { "dask": ("https://docs.dask.org/en/stable/", None), "genno": ("https://genno.readthedocs.io/en/latest", (local_inv("genno"), None)), "ixmp": ( "https://docs.messageix.org/projects/ixmp/en/latest/", (local_inv("ixmp"), None), ), "ixmp4": ("https://docs.ece.iiasa.ac.at/projects/ixmp4/en/latest", None), "jpype": ("https://jpype.readthedocs.io/en/stable", None), "message-ix-models": ( "https://docs.messageix.org/projects/models/en/latest/", None, ), "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None), "pint": ("https://pint.readthedocs.io/en/stable/", None), "plotly": ("https://plotly.com/python-api-reference", None), "plotnine": ("https://plotnine.org", None), "pyam": ("https://pyam-iamc.readthedocs.io/en/stable/", None), "python": ("https://docs.python.org/3/", None), "sphinx": ("https://www.sphinx-doc.org/en/master/", None), "xarray": ("https://docs.xarray.dev/en/stable", None), } # -- Options for sphinx.ext.mathjax ---------------------------------------------------- # See https://github.com/iiasa/message_ix/pull/721#pullrequestreview-1497907368: # prefer to write \text{} explicitly # TODO read at least some of these from message_ix.models # TODO complete list # TODO also add these to a LaTeX preamble macros = {} macros.update( { k.replace("_", ""): rf"\text{{{k}}}" for k in """ACT COMMODITY_BALANCE STORAGE STORAGE_CHARGE duration_time_rel input map_time_commodity_storage storage_initial storage_self_discharge""".split() } ) macros.update( { "dp": r"\text{duration_period}", "hnc": r"\text{historical_new_capacity}", "mtl": r"\text{map_tec_lifetime}", "tl": r"\text{technical_lifetime}", } ) mathjax3_config = dict(tex=dict(macros=macros)) # -- Options for sphinx.ext.napoleon --------------------------------------------------- napoleon_preprocess_types = True napoleon_type_aliases = { # Standard library "callable": ":ref:`callable `", "iterable": ":class:`collections.abc.Iterable`", "mapping": ":class:`collections.abc.Mapping`", "sequence": ":class:`collections.abc.Sequence`", # Upstream "DataFrame": "pandas.DataFrame", "Series": "pandas.Series", "Quantity": "genno.Quantity", } # -- Options for sphinx.ext.todo ------------------------------------------------------- # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True # -- Options for sphinxcontrib.bibtex -------------------------------------------------- bibtex_bibfiles = ["references.bib"] [rtd-command-info] start-time: 2026-03-23T17:55:47.422044Z, end-time: 2026-03-23T17:55:47.928459Z, duration: 0, exit-code: 2 python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v8.2.3 loading translations [en]... done Extension error! Versions ======== * Platform: linux; (Linux-6.17.0-1007-aws-x86_64-with-glibc2.39) * Python version: 3.13.3 (CPython) * Sphinx version: 8.2.3 * Docutils version: 0.20.1 * Jinja2 version: 3.1.6 * Pygments version: 2.18.0 Last Messages ============= None. Loaded Extensions ================= None. Traceback ========= Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinx/registry.py", line 541, in load_extension mod = import_module(extname) File "/home/docs/.asdf/installs/python/3.13.3/lib/python3.13/importlib/__init__.py", line 88, in import_module return _bootstrap._gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1387, in _gcd_import File "", line 1360, in _find_and_load File "", line 1331, in _find_and_load_unlocked File "", line 935, in _load_unlocked File "", line 1026, in exec_module File "", line 488, in _call_with_frames_removed File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinxcontrib/bibtex/__init__.py", line 14, in from .directives import BibliographyDirective File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinxcontrib/bibtex/directives.py", line 21, in from .bibfile import _make_ids, normpath_filename File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinxcontrib/bibtex/bibfile.py", line 23, in from pybtex.database import BibliographyData, BibliographyDataError File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/pybtex/database/__init__.py", line 44, in from pybtex.plugin import find_plugin File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/pybtex/plugin/__init__.py", line 26, in import pkg_resources ModuleNotFoundError: No module named 'pkg_resources' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinx/cmd/build.py", line 414, in build_main app = Sphinx( srcdir=args.sourcedir, ...<14 lines>... exception_on_warning=args.exception_on_warning, ) File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinx/application.py", line 291, in __init__ self.setup_extension(extension) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinx/application.py", line 489, in setup_extension self.registry.load_extension(self, extname) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1003/lib/python3.13/site-packages/sphinx/registry.py", line 544, in load_extension raise ExtensionError( __('Could not import extension %s') % extname, err ) from err sphinx.errors.ExtensionError: Could not import extension sphinxcontrib.bibtex (exception: No module named 'pkg_resources') The full traceback has been saved in: /tmp/sphinx-err-hnjp9ybn.log To report this error to the developers, please open an issue at . Thanks! Please also report this if it was a user error, so that a better error message can be provided next time.