Read the Docs build information Build id: 4244050 Project: iiasa-energy-program-message-ix Version: 1027 Commit: e7802c058a46e8b0bb7fd6a8fef7d07ba7652312 Date: 2026-07-23T08:31:23.761601Z State: cancelled Success: False [rtd-command-info] start-time: 2026-07-23T08:31:24.460043Z, end-time: 2026-07-23T08:31:25.177593Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/iiasa/message_ix.git . Cloning into '.'... [rtd-command-info] start-time: 2026-07-23T08:31:25.255927Z, end-time: 2026-07-23T08:31:26.189405Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/1027/head:external-1027 From https://github.com/iiasa/message_ix * [new ref] refs/pull/1027/head -> external-1027 * [new tag] v3.11.0 -> v3.11.0 * [new tag] v3.11.1 -> v3.11.1 [rtd-command-info] start-time: 2026-07-23T08:31:26.995559Z, end-time: 2026-07-23T08:31:27.109059Z, duration: 0, exit-code: 0 git checkout --force e7802c058a46e8b0bb7fd6a8fef7d07ba7652312 Note: switching to 'e7802c058a46e8b0bb7fd6a8fef7d07ba7652312'. 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 e7802c0 Add release note for MESSAGE-MACRO subannual demand fix [rtd-command-info] start-time: 2026-07-23T08:31:27.203958Z, end-time: 2026-07-23T08:31:27.242275Z, 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-07-23T08:31:31.311739Z, end-time: 2026-07-23T08:31:31.365436Z, duration: 0, exit-code: 0 asdf global python 3.13.14 [rtd-command-info] start-time: 2026-07-23T08:31:31.718505Z, end-time: 2026-07-23T08:31:32.335816Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.13.14.final.0-64 in 380ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027, 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-07-23T08:31:32.440016Z, end-time: 2026-07-23T08:31:37.121843Z, 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/1027/lib/python3.13/site-packages (23.1) Collecting pip Downloading pip-26.1.2-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 17.6 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (67.6.1) Collecting setuptools Downloading setuptools-83.0.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 31.1 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.1.2 setuptools-83.0.0 [rtd-command-info] start-time: 2026-07-23T08:31:37.208756Z, end-time: 2026-07-23T08:31:41.743481Z, 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.20.0-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.1.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.34.2-py3-none-any.whl.metadata (4.8 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-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.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (41 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.7.22-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 155.4 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 1.0 GB/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 413.6 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.2-py3-none-any.whl (100 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 867.5 MB/s 0:00:00 Downloading requests-2.34.2-py3-none-any.whl (73 kB) Downloading charset_normalizer-3.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (223 kB) Downloading idna-3.18-py3-none-any.whl (65 kB) Downloading urllib3-2.7.0-py3-none-any.whl (131 kB) Downloading certifi-2026.7.22-py3-none-any.whl (136 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.1.1-py3-none-any.whl (104 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.7.22 charset_normalizer-3.4.9 docutils-0.22.4 idna-3.18 imagesize-2.0.0 packaging-26.2 requests-2.34.2 roman-numerals-4.1.0 snowballstemmer-3.1.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.7.0 [rtd-command-info] start-time: 2026-07-23T08:31:41.827980Z, end-time: 2026-07-23T08:32:10.828404Z, duration: 29, 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 45)) Cloning https://github.com/iiasa/ixmp.git (to revision main) to /tmp/pip-install-mg5t9pbs/ixmp_8d13b392cf96400785c51d481bd5828a Running command git clone --filter=blob:none --quiet https://github.com/iiasa/ixmp.git /tmp/pip-install-mg5t9pbs/ixmp_8d13b392cf96400785c51d481bd5828a Resolved https://github.com/iiasa/ixmp.git to commit baa0bc43354eebe1cd695a8ddd2cc11aee0192aa 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 dask[array]==2025.7.0->-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.50 (from -r doc/requirements.txt (line 37)) Downloading gitpython-3.1.50-py3-none-any.whl.metadata (14 kB) Collecting idna==3.15 (from -r doc/requirements.txt (line 39)) Downloading idna-3.15-py3-none-any.whl.metadata (7.7 kB) Collecting imagesize==1.4.1 (from -r doc/requirements.txt (line 43)) 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/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 47)) (3.1.6) Collecting jpype1==1.6.0 (from -r doc/requirements.txt (line 49)) 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 51)) 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 53)) 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 55)) 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 57)) 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 62)) Downloading numpydoc-1.8.0-py3-none-any.whl.metadata (4.3 kB) Collecting openpyxl==3.1.5 (from -r doc/requirements.txt (line 64)) Downloading openpyxl-3.1.5-py2.py3-none-any.whl.metadata (2.5 kB) Collecting packaging==25.0 (from -r doc/requirements.txt (line 66)) Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB) Collecting pandas==2.2.3 (from pandas[parquet]==2.2.3->-r doc/requirements.txt (line 72)) 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 77)) Downloading partd-1.4.2-py3-none-any.whl.metadata (4.6 kB) Collecting pint==0.24.4 (from -r doc/requirements.txt (line 79)) Downloading Pint-0.24.4-py3-none-any.whl.metadata (8.5 kB) Collecting platformdirs==4.3.8 (from -r doc/requirements.txt (line 83)) Downloading platformdirs-4.3.8-py3-none-any.whl.metadata (12 kB) Collecting pyarrow==23.0.1 (from -r doc/requirements.txt (line 87)) Downloading pyarrow-23.0.1-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (3.1 kB) Collecting pybtex==0.25.1 (from -r doc/requirements.txt (line 89)) Downloading pybtex-0.25.1-py2.py3-none-any.whl.metadata (2.2 kB) Collecting pybtex-docutils==1.0.2 (from -r doc/requirements.txt (line 93)) Downloading pybtex_docutils-1.0.2-py3-none-any.whl.metadata (4.2 kB) Requirement already satisfied: pygments==2.20.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 95)) (2.20.0) Collecting python-dateutil==2.9.0.post0 (from -r doc/requirements.txt (line 99)) 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 101)) Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB) Collecting pyyaml==6.0.1 (from -r doc/requirements.txt (line 103)) 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.33.0 (from -r doc/requirements.txt (line 109)) Downloading requests-2.33.0-py3-none-any.whl.metadata (5.1 kB) Collecting roman-numerals-py==3.1.0 (from -r doc/requirements.txt (line 113)) 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 115)) 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 119)) Downloading smmap-5.0.0-py3-none-any.whl.metadata (4.2 kB) Collecting snowballstemmer==2.2.0 (from -r doc/requirements.txt (line 121)) 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 123)) 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 131)) 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/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 133)) (2.0.0) Collecting sphinxcontrib-bibtex==2.6.5 (from -r doc/requirements.txt (line 135)) Downloading sphinxcontrib_bibtex-2.6.5-py3-none-any.whl.metadata (6.1 kB) Requirement already satisfied: sphinxcontrib-devhelp==2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 137)) (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/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 139)) (2.1.0) Collecting sphinxcontrib-jquery==4.1 (from -r doc/requirements.txt (line 141)) 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/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 143)) (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/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 145)) (2.0.0) Collecting sphinxcontrib-serializinghtml==1.1.9 (from -r doc/requirements.txt (line 147)) 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 149)) Downloading tabulate-0.9.0-py3-none-any.whl.metadata (34 kB) Collecting toolz==1.0.0 (from -r doc/requirements.txt (line 151)) 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 155)) Downloading typing_extensions-4.14.1-py3-none-any.whl.metadata (3.0 kB) Collecting tzdata==2025.2 (from -r doc/requirements.txt (line 160)) Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB) Requirement already satisfied: urllib3==2.7.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from -r doc/requirements.txt (line 162)) (2.7.0) Collecting xarray==2025.7.1 (from -r doc/requirements.txt (line 166)) Downloading xarray-2025.7.1-py3-none-any.whl.metadata (12 kB) 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 34.6 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 82.4 MB/s 0:00:00 Downloading docutils-0.20.1-py3-none-any.whl (572 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 134.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.50-py3-none-any.whl (212 kB) Downloading idna-3.15-py3-none-any.whl (72 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 146.2 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 257.2 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-23.0.1-cp313-cp313-manylinux_2_28_x86_64.whl (47.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.6/47.6 MB 285.8 MB/s 0:00:00 Downloading pybtex-0.25.1-py2.py3-none-any.whl (127 kB) Downloading pybtex_docutils-1.0.2-py3-none-any.whl (6.3 kB) 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.33.0-py3-none-any.whl (65 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 365.2 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 340.4 MB/s 0:00:00 Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxcontrib_bibtex-2.6.5-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 234.4 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.dev233+gbaa0bc433-py3-none-any.whl size=19407036 sha256=953408050379989a85b2a0350a67ed5980bd4b2d64cca77778ed68105e6fce2c Stored in directory: /tmp/pip-ephem-wheel-cache-6s66qkrd/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=29146 sha256=f05d0cfa33fd841ab52b23dbbacc31e1311a07566b47f69eb0aeedad82b2a1f1 Stored in directory: /tmp/pip-ephem-wheel-cache-6s66qkrd/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=45460 sha256=7ad07107a81f1e145f5fd1848f7397d13eb7c7955aa801c5708e75db7e4d2b1c Stored in directory: /tmp/pip-ephem-wheel-cache-6s66qkrd/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, 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.1.1 Uninstalling snowballstemmer-3.1.1: Successfully uninstalled snowballstemmer-3.1.1 Attempting uninstall: packaging Found existing installation: packaging 26.2 Uninstalling packaging-26.2: Successfully uninstalled packaging-26.2 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.18 Uninstalling idna-3.18: Successfully uninstalled idna-3.18 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.9 Uninstalling charset-normalizer-3.4.9: Successfully uninstalled charset-normalizer-3.4.9 Attempting uninstall: certifi Found existing installation: certifi 2026.7.22 Uninstalling certifi-2026.7.22: Successfully uninstalled certifi-2026.7.22 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.34.2 Uninstalling requests-2.34.2: Successfully uninstalled requests-2.34.2 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.50 idna-3.15 imagesize-1.4.1 ixmp-3.11.2.dev233+gbaa0bc433 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-23.0.1 pybtex-0.25.1 pybtex-docutils-1.0.2 python-dateutil-2.9.0.post0 pytz-2025.2 pyyaml-6.0.1 requests-2.33.0 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.5 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-07-23T08:32:10.917668Z, end-time: 2026-07-23T08:32:37.803213Z, 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/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (8.2.1) Requirement already satisfied: ixmp>=3.11 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (3.11.2.dev233+gbaa0bc433) Requirement already satisfied: genno>=1.20 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (1.28.2) Requirement already satisfied: numpy in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (2.3.0) Requirement already satisfied: pandas>=1.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (2.2.3) Requirement already satisfied: PyYAML in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (6.0.1) Collecting scipy (from message_ix==3.11.2.dev122+ge7802c058) Downloading scipy-1.18.0-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/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (3.1.50) Requirement already satisfied: numpydoc in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (1.8.0) Requirement already satisfied: sphinx>=4.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (8.2.3) Requirement already satisfied: sphinx_rtd_theme in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (3.0.2) Requirement already satisfied: sphinxcontrib-bibtex in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from message_ix==3.11.2.dev122+ge7802c058) (2.6.5) Requirement already satisfied: dask>=2.14 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (2025.7.0) Requirement already satisfied: pint in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (0.24.4) Requirement already satisfied: platformdirs in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (2025.7.1) Requirement already satisfied: cloudpickle>=3.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/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.dev122+ge7802c058) (3.1.1) Requirement already satisfied: fsspec>=2021.09.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/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.dev122+ge7802c058) (2025.7.0) Requirement already satisfied: packaging>=20.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/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.dev122+ge7802c058) (25.0) Requirement already satisfied: partd>=1.4.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/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.dev122+ge7802c058) (1.4.2) Requirement already satisfied: toolz>=0.10.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/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.dev122+ge7802c058) (1.0.0) Collecting pyam-iamc (from genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading pyam_iamc-3.4.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/1027/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev122+ge7802c058) (1.6.0) Requirement already satisfied: openpyxl in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev122+ge7802c058) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev122+ge7802c058) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev122+ge7802c058) (2025.2) Requirement already satisfied: pyarrow>=10.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from pandas[parquet]>=1.0->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (23.0.1) Requirement already satisfied: locket in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/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.dev122+ge7802c058) (1.0.0) Requirement already satisfied: six>=1.5 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (1.1.9) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (3.1.6) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (2.20.0) Requirement already satisfied: docutils<0.22,>=0.20 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (0.20.1) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (2.2.0) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (2.16.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (0.7.16) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (1.4.1) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (2.33.0) Requirement already satisfied: roman-numerals-py>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (3.1.0) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from Jinja2>=3.1->sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (2.1.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (3.2.0) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (3.15) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (2.7.0) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from GitPython->message_ix==3.11.2.dev122+ge7802c058) (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/1027/lib/python3.13/site-packages (from gitdb<5,>=4.0.1->GitPython->message_ix==3.11.2.dev122+ge7802c058) (5.0.0) Collecting ixmp4<0.15,>=0.14 (from ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading gamsapi-54.2.1-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.dev122+ge7802c058) Downloading pyjwt-2.13.0-py3-none-any.whl.metadata (3.4 kB) Collecting SQLAlchemy-Utils>=0.41.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading sqlalchemy-2.0.51-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.dev122+ge7802c058) Downloading alembic-1.18.5-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.dev122+ge7802c058) Downloading fastapi-0.139.2-py3-none-any.whl.metadata (26 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading pandera-0.32.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.dev122+ge7802c058) Downloading psycopg-3.3.4-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.dev122+ge7802c058) Downloading pydantic-2.13.4-py3-none-any.whl.metadata (109 kB) Collecting pydantic-settings>=2.1.0 (from ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading pydantic_settings-2.14.2-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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading rich-15.0.0-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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading typer-0.27.0-py3-none-any.whl.metadata (15 kB) Collecting Mako (from alembic>=1.12.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading mako-1.3.12-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/1027/lib/python3.13/site-packages (from alembic>=1.12.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) (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.dev122+ge7802c058) Downloading starlette-1.3.1-py3-none-any.whl.metadata (6.4 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.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading anyio-4.14.2-py3-none-any.whl.metadata (4.6 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.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading hpack-4.2.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: et-xmlfile in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from openpyxl->ixmp>=3.11->message_ix==3.11.2.dev122+ge7802c058) (2.0.0) Collecting typeguard (from pandera>=0.24.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading typeguard-4.5.2-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.dev122+ge7802c058) Downloading typing_inspect-0.9.0-py3-none-any.whl.metadata (1.5 kB) Collecting psycopg-binary==3.3.4 (from psycopg[binary]>=3.1.12->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading psycopg_binary-3.3.4-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.dev122+ge7802c058) Downloading annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB) Collecting pydantic-core==2.46.4 (from pydantic>=2.3.0->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 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.dev122+ge7802c058) Downloading markdown_it_py-4.2.0-py3-none-any.whl.metadata (7.4 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading greenlet-3.5.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 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.dev122+ge7802c058) Downloading mypy-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 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.dev122+ge7802c058) Downloading mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB) Collecting pathspec>=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.dev122+ge7802c058) Downloading pathspec-1.1.1-py3-none-any.whl.metadata (14 kB) Collecting librt>=0.13.0 (from mypy>=0.910->SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading librt-0.13.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (1.3 kB) Collecting ast-serialize<1.0.0,>=0.6.0 (from mypy>=0.910->SQLAlchemy[mypy]>=2.0.22->ixmp4<0.15,>=0.14->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev122+ge7802c058) Downloading ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading plotnine-0.15.7-py3-none-any.whl.metadata (9.6 kB) Collecting sdmx1 (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading sdmx1-2.26.0-py3-none-any.whl.metadata (5.4 kB) Collecting graphviz (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) 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/1027/lib/python3.13/site-packages (from numpydoc->message_ix==3.11.2.dev122+ge7802c058) (0.9.0) Requirement already satisfied: flexcache>=0.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from pint->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (0.3) Requirement already satisfied: flexparser>=0.4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from pint->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) (0.4) Collecting matplotlib>=3.8.0 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading matplotlib-3.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (80 kB) Collecting mizani~=0.14.0 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB) Collecting fonttools>=4.28.2 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading fonttools-4.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (118 kB) Collecting kiwisolver>=1.3.1 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (5.1 kB) Collecting pillow>=9 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.1 kB) Collecting pyparsing>=3 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading xlsxwriter-3.2.9-py3-none-any.whl.metadata (2.7 kB) Collecting iam-units>=2021.8.12 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading iam_units-2026.5.18-py3-none-any.whl.metadata (50 kB) INFO: pip is looking at multiple versions of pyam-iamc to determine which version is compatible with other requirements. This could take a while. Collecting pyam-iamc (from genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) Downloading pyam_iamc-3.3.2-py3-none-any.whl.metadata (8.9 kB) Downloading pyam_iamc-3.3.1-py3-none-any.whl.metadata (8.9 kB) Downloading pyam_iamc-3.3.0-py3-none-any.whl.metadata (8.9 kB) Collecting seaborn>=0.11 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev122+ge7802c058) 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.dev122+ge7802c058) 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.dev122+ge7802c058) Downloading lxml-6.1.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.5 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.dev122+ge7802c058) Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB) Requirement already satisfied: sphinxcontrib-jquery<5,>=4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinx_rtd_theme->message_ix==3.11.2.dev122+ge7802c058) (4.1) Requirement already satisfied: pybtex>=0.25 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev122+ge7802c058) (0.25.1) Requirement already satisfied: pybtex-docutils>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev122+ge7802c058) (1.0.2) Requirement already satisfied: latexcodec>=1.0.4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/1027/lib/python3.13/site-packages (from pybtex>=0.25->sphinxcontrib-bibtex->message_ix==3.11.2.dev122+ge7802c058) (2.0.1) Downloading ixmp4-0.14.0-py3-none-any.whl (273 kB) Downloading alembic-1.18.5-py3-none-any.whl (264 kB) Downloading fastapi-0.139.2-py3-none-any.whl (130 kB) Downloading annotated_doc-0.0.4-py3-none-any.whl (5.3 kB) Downloading gamsapi-54.2.1-cp313-cp313-manylinux_2_28_x86_64.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 21.3 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.2.0-py3-none-any.whl (34 kB) Downloading hyperframe-6.1.0-py3-none-any.whl (13 kB) Downloading pandera-0.32.1-py3-none-any.whl (447 kB) Downloading psycopg-3.3.4-py3-none-any.whl (213 kB) Downloading psycopg_binary-3.3.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 48.9 MB/s 0:00:00 Downloading pydantic-2.13.4-py3-none-any.whl (472 kB) Downloading pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 79.6 MB/s 0:00:00 Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB) Downloading pydantic_settings-2.14.2-py3-none-any.whl (61 kB) Downloading pyjwt-2.13.0-py3-none-any.whl (31 kB) Downloading python_dotenv-1.2.2-py3-none-any.whl (22 kB) Downloading rich-15.0.0-py3-none-any.whl (310 kB) Downloading markdown_it_py-4.2.0-py3-none-any.whl (91 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading sqlalchemy-2.0.51-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 101.1 MB/s 0:00:00 Downloading greenlet-3.5.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (624 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 624.0/624.0 kB 165.3 MB/s 0:00:00 Downloading sqlalchemy_utils-0.42.1-py3-none-any.whl (91 kB) Downloading mypy-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (15.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.2/15.2 MB 169.0 MB/s 0:00:00 Downloading ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 350.4 MB/s 0:00:00 Downloading librt-0.13.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (531 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 531.6/531.6 kB 645.7 MB/s 0:00:00 Downloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB) Downloading pathspec-1.1.1-py3-none-any.whl (57 kB) Downloading starlette-1.3.1-py3-none-any.whl (73 kB) Downloading anyio-4.14.2-py3-none-any.whl (125 kB) Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB) Downloading typer-0.27.0-py3-none-any.whl (122 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.12-py3-none-any.whl (78 kB) Downloading plotnine-0.15.7-py3-none-any.whl (1.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 215.2 MB/s 0:00:00 Downloading mizani-0.14.4-py3-none-any.whl (133 kB) Downloading matplotlib-3.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (10.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.0/10.0 MB 245.1 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.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 336.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 611.7 MB/s 0:00:00 Downloading pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 389.6 MB/s 0:00:00 Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB) Downloading scipy-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.3/35.3 MB 277.0 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 271.7 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.3.0-py3-none-any.whl (99 kB) Downloading iam_units-2026.5.18-py3-none-any.whl (53 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.26.0-py3-none-any.whl (267 kB) Downloading lxml-6.1.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 560.2 MB/s 0:00:00 Downloading packaging-26.2-py3-none-any.whl (100 kB) Downloading typeguard-4.5.2-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.dev122+ge7802c058-py3-none-any.whl size=6362011 sha256=17dc66f76b290fae1e630b1e4f316be96b606c3a488d0b2a17c42c302a5a5ed5 Stored in directory: /tmp/pip-ephem-wheel-cache-5lqmb2me/wheels/47/a5/6a/07d58a29229fb4fd9699f8f464fbee7ae26dd46d3d3334bdff 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, ast-serialize, 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.12 PyJWT-2.13.0 SQLAlchemy-2.0.51 SQLAlchemy-Utils-0.42.1 XlsxWriter-3.2.9 alembic-1.18.5 annotated-doc-0.0.4 annotated-types-0.7.0 anyio-4.14.2 ast-serialize-0.6.0 contourpy-1.3.3 cycler-0.12.1 fastapi-0.139.2 fonttools-4.63.0 gamsapi-54.2.1 graphviz-0.21 greenlet-3.5.4 h11-0.16.0 h2-4.3.0 hpack-4.2.0 httpcore-1.0.9 httpx-0.28.1 hyperframe-6.1.0 iam-units-2026.5.18 ixmp4-0.14.0 kiwisolver-1.5.0 librt-0.13.0 lxml-6.1.1 markdown-it-py-4.2.0 matplotlib-3.11.1 mdurl-0.1.2 message_ix-3.11.2.dev122+ge7802c058 mizani-0.14.4 mypy-2.3.0 mypy_extensions-1.1.0 packaging-26.2 pandera-0.32.1 pathspec-1.1.1 patsy-1.0.2 pillow-12.3.0 plotnine-0.15.7 ply-3.11 psycopg-3.3.4 psycopg-binary-3.3.4 pyam-iamc-3.3.0 pydantic-2.13.4 pydantic-core-2.46.4 pydantic-settings-2.14.2 pyparsing-3.3.2 python-dotenv-1.2.2 rich-15.0.0 scipy-1.18.0 sdmx1-2.26.0 seaborn-0.13.2 shellingham-1.5.4 starlette-1.3.1 statsmodels-0.14.6 toml-0.10.2 typeguard-4.5.2 typer-0.27.0 typing-inspection-0.4.2 typing_inspect-0.9.0 wquantiles-0.6 [rtd-command-info] start-time: 2026-07-23T08:32:38.014193Z, end-time: 2026-07-23T08:32:38.056926Z, 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: None, end-time: None, duration: None, exit-code: None python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html