Read the Docs build information Build id: 3527360 Project: iiasa-energy-program-message-ix Version: 873 Commit: 01018ab24ade104664849ce012c08c2a846005fc Date: 2025-11-17T11:31:04.302631Z State: finished Success: False [rtd-command-info] start-time: 2025-11-17T11:31:05.130110Z, end-time: 2025-11-17T11:31:06.103060Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/iiasa/message_ix.git . Cloning into '.'... [rtd-command-info] start-time: 2025-11-17T11:31:06.192055Z, end-time: 2025-11-17T11:31:07.111707Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/873/head:external-873 From https://github.com/iiasa/message_ix * [new ref] refs/pull/873/head -> external-873 * [new tag] v3.10.0 -> v3.10.0 * [new tag] v3.11.0 -> v3.11.0 * [new tag] v3.11.1 -> v3.11.1 [rtd-command-info] start-time: 2025-11-17T11:31:07.795808Z, end-time: 2025-11-17T11:31:07.899692Z, duration: 0, exit-code: 0 git checkout --force 01018ab24ade104664849ce012c08c2a846005fc Note: switching to '01018ab24ade104664849ce012c08c2a846005fc'. 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 01018ab Add .models.shift_period; tests [rtd-command-info] start-time: 2025-11-17T11:31:07.987019Z, end-time: 2025-11-17T11:31:08.030323Z, 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: 2025-11-17T11:31:13.257335Z, end-time: 2025-11-17T11:31:13.318426Z, duration: 0, exit-code: 0 asdf global python 3.13.3 [rtd-command-info] start-time: 2025-11-17T11:31:13.754898Z, end-time: 2025-11-17T11:31:14.924835Z, duration: 1, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.13.3.final.0-64 in 831ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2025-11-17T11:31:15.013228Z, end-time: 2025-11-17T11:31:24.128866Z, duration: 9, 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/873/lib/python3.13/site-packages (23.1) Collecting pip Downloading pip-25.3-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 11.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/873/lib/python3.13/site-packages (67.6.1) Collecting setuptools Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 22.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-25.3 setuptools-80.9.0 [rtd-command-info] start-time: 2025-11-17T11:31:24.216400Z, end-time: 2025-11-17T11:31:28.997607Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-8.2.3-py3-none-any.whl.metadata (7.0 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.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.22,>=0.20 (from sphinx) Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.17.0-py3-none-any.whl.metadata (2.0 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB) Collecting roman-numerals-py>=1.0.0 (from sphinx) Downloading roman_numerals_py-3.1.0-py3-none-any.whl.metadata (3.6 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-25.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.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (37 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.5.0-py3-none-any.whl.metadata (6.5 kB) Collecting certifi>=2017.4.17 (from requests>=2.30.0->sphinx) Downloading certifi-2025.11.12-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-8.2.3-py3-none-any.whl (3.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 120.1 MB/s 0:00:00 Downloading docutils-0.21.2-py3-none-any.whl (587 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 551.4 MB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.17.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 336.2 MB/s 0:00:00 Downloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 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-25.0-py3-none-any.whl (66 kB) Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 660.9 MB/s 0:00:00 Downloading requests-2.32.5-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (153 kB) Downloading idna-3.11-py3-none-any.whl (71 kB) Downloading urllib3-2.5.0-py3-none-any.whl (129 kB) Downloading certifi-2025.11.12-py3-none-any.whl (159 kB) Downloading roman_numerals_py-3.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-py, 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.17.0 certifi-2025.11.12 charset_normalizer-3.4.4 docutils-0.21.2 idna-3.11 imagesize-1.4.1 packaging-25.0 requests-2.32.5 roman-numerals-py-3.1.0 snowballstemmer-3.0.1 sphinx-8.2.3 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.5.0 [rtd-command-info] start-time: 2025-11-17T11:31:29.089937Z, end-time: 2025-11-17T11:31:59.859869Z, 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@1730afd24238b4dad88a89c2d58d0fed2cd19dd0 (from -r doc/requirements.txt (line 45)) Cloning https://github.com/iiasa/ixmp.git (to revision 1730afd24238b4dad88a89c2d58d0fed2cd19dd0) to /tmp/pip-install-u32l6ojx/ixmp_8b82fd7d511e4ef0b9d1f1f922a2ac6a Running command git clone --filter=blob:none --quiet https://github.com/iiasa/ixmp.git /tmp/pip-install-u32l6ojx/ixmp_8b82fd7d511e4ef0b9d1f1f922a2ac6a Running command git rev-parse -q --verify 'sha^1730afd24238b4dad88a89c2d58d0fed2cd19dd0' Running command git fetch -q https://github.com/iiasa/ixmp.git 1730afd24238b4dad88a89c2d58d0fed2cd19dd0 Running command git checkout -q 1730afd24238b4dad88a89c2d58d0fed2cd19dd0 Resolved https://github.com/iiasa/ixmp.git to commit 1730afd24238b4dad88a89c2d58d0fed2cd19dd0 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) Requirement already satisfied: imagesize==1.4.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 41)) (1.4.1) Collecting importlib-metadata==8.7.0 (from -r doc/requirements.txt (line 43)) Downloading importlib_metadata-8.7.0-py3-none-any.whl.metadata (4.8 kB) Requirement already satisfied: jinja2==3.1.6 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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) Requirement already satisfied: packaging==25.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 66)) (25.0) Collecting pandas==2.2.3 (from -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 78)) Downloading partd-1.4.2-py3-none-any.whl.metadata (4.6 kB) Collecting pint==0.24.4 (from -r doc/requirements.txt (line 80)) Downloading Pint-0.24.4-py3-none-any.whl.metadata (8.5 kB) Collecting platformdirs==4.3.8 (from -r doc/requirements.txt (line 84)) Downloading platformdirs-4.3.8-py3-none-any.whl.metadata (12 kB) Collecting pyarrow==21.0.0 (from -r doc/requirements.txt (line 88)) 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 90)) 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 94)) 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 96)) 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 98)) 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 100)) Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB) Collecting pyyaml==6.0.1 (from -r doc/requirements.txt (line 102)) 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 108)) Downloading requests-2.32.4-py3-none-any.whl.metadata (4.9 kB) Requirement already satisfied: roman-numerals-py==3.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 110)) (3.1.0) Requirement already satisfied: setuptools==80.9.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 112)) (80.9.0) Collecting six==1.16.0 (from -r doc/requirements.txt (line 114)) 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) Requirement already satisfied: sphinx==8.2.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 123)) (8.2.3) 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/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 133)) (2.0.0) Collecting sphinxcontrib-bibtex==2.6.3 (from -r doc/requirements.txt (line 135)) 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/873/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/873/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/873/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/873/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.5.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from -r doc/requirements.txt (line 162)) (2.5.0) Collecting xarray==2025.7.1 (from -r doc/requirements.txt (line 164)) Downloading xarray-2025.7.1-py3-none-any.whl.metadata (12 kB) Collecting zipp==3.23.0 (from -r doc/requirements.txt (line 168)) Downloading zipp-3.23.0-py3-none-any.whl.metadata (3.6 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 28.2 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 67.7 MB/s 0:00:00 Downloading docutils-0.20.1-py3-none-any.whl (572 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 572.7/572.7 kB 113.8 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 importlib_metadata-8.7.0-py3-none-any.whl (27 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 113.4 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 pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.7/12.7 MB 204.3 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 345.9 MB/s 0:00:00 Downloading pybtex-0.24.0-py2.py3-none-any.whl (561 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 561.4/561.4 kB 660.5 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 685.9 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 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_rtd_theme-3.0.2-py2.py3-none-any.whl (7.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 429.8 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 544.5 MB/s 0:00:00 Downloading zipp-3.23.0-py3-none-any.whl (10 kB) 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.dev44+g1730afd24-py3-none-any.whl size=19278549 sha256=d67313d9b410bdfaa5ac04d1b8a9fef14db8137986fc22964b7ac8c69f8d7a4c Stored in directory: /tmp/pip-ephem-wheel-cache-syvfctyy/wheels/e3/41/ab/3642031e91eba4bcd41be375f569d760e83c2dfeb534c0f996 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=29142 sha256=3bc581a8e504cb1663ad6cb3c30ede9d700774731c455332fce00542cf18fd93 Stored in directory: /tmp/pip-ephem-wheel-cache-syvfctyy/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=9822888472ea8da4d558523c1d0d6e4b0f84930e8786c852f4712f8e7f5e7aa8 Stored in directory: /tmp/pip-ephem-wheel-cache-syvfctyy/wheels/9c/9e/34/1e1548811b63a9d001469f21797e8b7d5c216d8eb928e7d6ad Successfully built ixmp markupsafe pyyaml Installing collected packages: snowballstemmer, pytz, zipp, tzdata, typing-extensions, toolz, tabulate, smmap, six, pyyaml, pygments, pyarrow, platformdirs, numpy, markupsafe, locket, jpype1, idna, fsspec, et-xmlfile, docutils, cloudpickle, click, charset-normalizer, certifi, babel, alabaster, requests, python-dateutil, partd, openpyxl, latexcodec, importlib-metadata, gitdb, flexparser, flexcache, pybtex, pint, pandas, gitpython, dask, xarray, pybtex-docutils, genno, ixmp, sphinxcontrib-serializinghtml, 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: markupsafe Found existing installation: MarkupSafe 3.0.3 Uninstalling MarkupSafe-3.0.3: Successfully uninstalled MarkupSafe-3.0.3 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.21.2 Uninstalling docutils-0.21.2: Successfully uninstalled docutils-0.21.2 Attempting uninstall: charset-normalizer Found existing installation: charset-normalizer 3.4.4 Uninstalling charset-normalizer-3.4.4: Successfully uninstalled charset-normalizer-3.4.4 Attempting uninstall: certifi Found existing installation: certifi 2025.11.12 Uninstalling certifi-2025.11.12: Successfully uninstalled certifi-2025.11.12 Attempting uninstall: babel Found existing installation: babel 2.17.0 Uninstalling babel-2.17.0: Successfully uninstalled babel-2.17.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 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 importlib-metadata-8.7.0 ixmp-3.11.2.dev44+g1730afd24 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 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 six-1.16.0 smmap-5.0.0 snowballstemmer-2.2.0 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 zipp-3.23.0 [rtd-command-info] start-time: 2025-11-17T11:31:59.955068Z, end-time: 2025-11-17T11:32:27.594829Z, duration: 27, exit-code: 0 python -m pip install --upgrade --upgrade-strategy only-if-needed --no-cache-dir .[docs] Processing /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/checkouts/873 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/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (8.2.1) Requirement already satisfied: ixmp>=3.11 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (3.11.2.dev44+g1730afd24) Requirement already satisfied: genno>=1.20 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (1.28.2) Requirement already satisfied: numpy in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (2.3.0) Requirement already satisfied: pandas>=1.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (2.2.3) Requirement already satisfied: PyYAML in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (6.0.1) Collecting scipy (from message_ix==3.11.2.dev91+g01018ab24) Downloading scipy-1.16.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (62 kB) Requirement already satisfied: GitPython in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (3.1.44) Requirement already satisfied: numpydoc in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (1.8.0) Requirement already satisfied: sphinx>=4.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (8.2.3) Requirement already satisfied: sphinx_rtd_theme in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (3.0.2) Requirement already satisfied: sphinxcontrib-bibtex in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from message_ix==3.11.2.dev91+g01018ab24) (2.6.3) Requirement already satisfied: dask>=2.14 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from dask[array]>=2.14->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (2025.7.0) Requirement already satisfied: pint in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (0.24.4) Requirement already satisfied: platformdirs in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (2025.7.1) Requirement already satisfied: cloudpickle>=3.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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.dev91+g01018ab24) (3.1.1) Requirement already satisfied: fsspec>=2021.09.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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.dev91+g01018ab24) (2025.7.0) Requirement already satisfied: packaging>=20.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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.dev91+g01018ab24) (25.0) Requirement already satisfied: partd>=1.4.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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.dev91+g01018ab24) (1.4.2) Requirement already satisfied: toolz>=0.10.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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.dev91+g01018ab24) (1.0.0) Collecting pyam-iamc (from genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading pyam_iamc-3.2.0-py3-none-any.whl.metadata (8.9 kB) Requirement already satisfied: importlib_metadata in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev91+g01018ab24) (8.7.0) Requirement already satisfied: JPype1>=1.2.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev91+g01018ab24) (1.6.0) Requirement already satisfied: openpyxl in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from ixmp>=3.11->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev91+g01018ab24) (2.9.0.post0) Requirement already satisfied: pytz>=2020.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev91+g01018ab24) (2025.2) Requirement already satisfied: tzdata>=2022.7 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from pandas>=1.2->message_ix==3.11.2.dev91+g01018ab24) (2025.2) Requirement already satisfied: pyarrow>=10.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from pandas[parquet]>=1.0->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (21.0.0) Requirement already satisfied: locket in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/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.dev91+g01018ab24) (1.0.0) Requirement already satisfied: six>=1.5 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from python-dateutil>=2.8.2->pandas>=1.2->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (1.1.9) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (3.1.6) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (0.20.1) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (2.2.0) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (2.16.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (0.7.16) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (1.4.1) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (3.1.0) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from Jinja2>=3.1->sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (2.1.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (3.2.0) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (3.7) Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (2.5.0) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=4.0->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from GitPython->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from gitdb<5,>=4.0.1->GitPython->message_ix==3.11.2.dev91+g01018ab24) (5.0.0) Requirement already satisfied: zipp>=3.20 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from importlib_metadata->ixmp>=3.11->message_ix==3.11.2.dev91+g01018ab24) (3.23.0) Collecting ixmp4<0.11,>=0.10 (from ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading ixmp4-0.10.0-py3-none-any.whl.metadata (5.1 kB) Collecting gamsapi>=45.7.0 (from gamsapi[core,transfer]>=45.7.0; extra == "ixmp4"->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading gamsapi-51.4.0-cp313-cp313-manylinux_2_28_x86_64.whl.metadata (5.9 kB) Collecting PyJWT>=2.4.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading PyJWT-2.10.1-py3-none-any.whl.metadata (4.0 kB) Collecting SQLAlchemy-Utils>=0.41.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading sqlalchemy_utils-0.42.0-py3-none-any.whl.metadata (4.6 kB) Collecting SQLAlchemy>=2.0.22 (from SQLAlchemy[mypy]>=2.0.22->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.5 kB) Collecting alembic>=1.12.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading alembic-1.17.2-py3-none-any.whl.metadata (7.2 kB) Collecting fastapi>=0.100.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading fastapi-0.121.2-py3-none-any.whl.metadata (28 kB) Collecting httpx>=0.25.0 (from httpx[http2]>=0.25.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB) Collecting pandera>=0.17.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading pandera-0.26.1-py3-none-any.whl.metadata (10 kB) Collecting psycopg>=3.1.12 (from psycopg[binary]>=3.1.12->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading psycopg-3.2.12-py3-none-any.whl.metadata (4.5 kB) Collecting pydantic>=2.3.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading pydantic-2.12.4-py3-none-any.whl.metadata (89 kB) Collecting pydantic-settings>=2.1.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading pydantic_settings-2.12.0-py3-none-any.whl.metadata (3.4 kB) Collecting python-dotenv>=1.0.1 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading python_dotenv-1.2.1-py3-none-any.whl.metadata (25 kB) Collecting rich>=13.5.2 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading rich-14.2.0-py3-none-any.whl.metadata (18 kB) Collecting sqlalchemy-continuum>=1.4.2 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading sqlalchemy_continuum-1.5.2-py3-none-any.whl.metadata (6.0 kB) Collecting toml>=0.10.2 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB) Collecting typer>=0.9.0 (from ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading typer-0.20.0-py3-none-any.whl.metadata (16 kB) Collecting Mako (from alembic>=1.12.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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/873/lib/python3.13/site-packages (from alembic>=1.12.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) (4.14.1) Collecting starlette<0.50.0,>=0.40.0 (from fastapi>=0.100.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading starlette-0.49.3-py3-none-any.whl.metadata (6.4 kB) Collecting annotated-doc>=0.0.2 (from fastapi>=0.100.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading annotated_doc-0.0.4-py3-none-any.whl.metadata (6.6 kB) Collecting annotated-types>=0.6.0 (from pydantic>=2.3.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.3 kB) Collecting typing-inspection>=0.4.2 (from pydantic>=2.3.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB) Collecting anyio<5,>=3.6.2 (from starlette<0.50.0,>=0.40.0->fastapi>=0.100.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading anyio-4.11.0-py3-none-any.whl.metadata (4.1 kB) Collecting sniffio>=1.1 (from anyio<5,>=3.6.2->starlette<0.50.0,>=0.40.0->fastapi>=0.100.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB) Collecting ply (from gamsapi[core,transfer]>=45.7.0; extra == "ixmp4"->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading ply-3.11-py2.py3-none-any.whl.metadata (844 bytes) Collecting httpcore==1.* (from httpx>=0.25.0->httpx[http2]>=0.25.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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/873/lib/python3.13/site-packages (from openpyxl->ixmp>=3.11->message_ix==3.11.2.dev91+g01018ab24) (2.0.0) Collecting typeguard (from pandera>=0.17.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading typeguard-4.4.4-py3-none-any.whl.metadata (3.3 kB) Collecting typing_inspect>=0.6.0 (from pandera>=0.17.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading typing_inspect-0.9.0-py3-none-any.whl.metadata (1.5 kB) Collecting psycopg-binary==3.2.12 (from psycopg[binary]>=3.1.12->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading psycopg_binary-3.2.12-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.9 kB) Collecting markdown-it-py>=2.2.0 (from rich>=13.5.2->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (4.1 kB) Collecting mypy>=0.910 (from SQLAlchemy[mypy]>=2.0.22->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading mypy-1.18.2-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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) Downloading pathspec-0.12.1-py3-none-any.whl.metadata (21 kB) Collecting shellingham>=1.3.0 (from typer>=0.9.0->ixmp4<0.11,>=0.10->ixmp[ixmp4]; extra == "ixmp4"->message_ix==3.11.2.dev91+g01018ab24) 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.dev91+g01018ab24) Downloading plotnine-0.15.1-py3-none-any.whl.metadata (9.5 kB) Collecting sdmx1 (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading sdmx1-2.23.1-py3-none-any.whl.metadata (5.4 kB) Collecting graphviz (from genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) 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/873/lib/python3.13/site-packages (from numpydoc->message_ix==3.11.2.dev91+g01018ab24) (0.9.0) Requirement already satisfied: flexcache>=0.3 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from pint->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (0.3) Requirement already satisfied: flexparser>=0.4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from pint->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) (0.4) Collecting matplotlib>=3.8.0 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading matplotlib-3.10.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (11 kB) Collecting mizani~=0.14.0 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading mizani-0.14.3-py3-none-any.whl.metadata (4.8 kB) Collecting statsmodels>=0.14.5 (from plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading statsmodels-0.14.5-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.dev91+g01018ab24) 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.dev91+g01018ab24) 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.dev91+g01018ab24) Downloading fonttools-4.60.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata (112 kB) Collecting kiwisolver>=1.3.1 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (6.3 kB) Collecting pillow>=8 (from matplotlib>=3.8.0->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) Downloading pillow-12.0.0-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.dev91+g01018ab24) Downloading pyparsing-3.2.5-py3-none-any.whl.metadata (5.0 kB) Collecting patsy>=0.5.6 (from statsmodels>=0.14.5->plotnine->genno>=1.20->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) 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.dev91+g01018ab24) 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.dev91+g01018ab24) Downloading iam_units-2025.10.13-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.dev91+g01018ab24) Downloading pyam_iamc-3.1.0-py3-none-any.whl.metadata (8.9 kB) Downloading pyam_iamc-3.0.0-py3-none-any.whl.metadata (9.3 kB) Collecting seaborn>=0.11 (from pyam-iamc->genno[pyam]>=1.20->message_ix==3.11.2.dev91+g01018ab24) 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.dev91+g01018ab24) 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.dev91+g01018ab24) Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.6 kB) Requirement already satisfied: sphinxcontrib-jquery<5,>=4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinx_rtd_theme->message_ix==3.11.2.dev91+g01018ab24) (4.1) Requirement already satisfied: pybtex>=0.24 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev91+g01018ab24) (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/873/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev91+g01018ab24) (1.0.2) Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from sphinxcontrib-bibtex->message_ix==3.11.2.dev91+g01018ab24) (80.9.0) Requirement already satisfied: latexcodec>=1.0.4 in /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages (from pybtex>=0.24->sphinxcontrib-bibtex->message_ix==3.11.2.dev91+g01018ab24) (2.0.1) Downloading ixmp4-0.10.0-py3-none-any.whl (244 kB) Downloading alembic-1.17.2-py3-none-any.whl (248 kB) Downloading fastapi-0.121.2-py3-none-any.whl (109 kB) Downloading pydantic-2.12.4-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 25.5 MB/s 0:00:00 Downloading starlette-0.49.3-py3-none-any.whl (74 kB) Downloading anyio-4.11.0-py3-none-any.whl (109 kB) Downloading annotated_doc-0.0.4-py3-none-any.whl (5.3 kB) Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB) Downloading gamsapi-51.4.0-cp313-cp313-manylinux_2_28_x86_64.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 36.4 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.26.1-py3-none-any.whl (292 kB) Downloading psycopg-3.2.12-py3-none-any.whl (206 kB) Downloading psycopg_binary-3.2.12-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (4.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 51.9 MB/s 0:00:00 Downloading pydantic_settings-2.12.0-py3-none-any.whl (51 kB) Downloading PyJWT-2.10.1-py3-none-any.whl (22 kB) Downloading python_dotenv-1.2.1-py3-none-any.whl (21 kB) Downloading rich-14.2.0-py3-none-any.whl (243 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 sniffio-1.3.1-py3-none-any.whl (10 kB) Downloading sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 81.4 MB/s 0:00:00 Downloading greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (610 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 610.5/610.5 kB 134.1 MB/s 0:00:00 Downloading sqlalchemy_continuum-1.5.2-py3-none-any.whl (51 kB) Downloading sqlalchemy_utils-0.42.0-py3-none-any.whl (91 kB) Downloading mypy-1.18.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (13.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.3/13.3 MB 132.4 MB/s 0:00:00 Downloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB) Downloading pathspec-0.12.1-py3-none-any.whl (31 kB) Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB) Downloading typer-0.20.0-py3-none-any.whl (47 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.1-py3-none-any.whl (1.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 247.4 MB/s 0:00:00 Downloading mizani-0.14.3-py3-none-any.whl (133 kB) Downloading matplotlib-3.10.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.7/8.7 MB 215.2 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.60.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (4.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 270.7 MB/s 0:00:00 Downloading kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 404.7 MB/s 0:00:00 Downloading pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.0/7.0 MB 302.9 MB/s 0:00:00 Downloading pyparsing-3.2.5-py3-none-any.whl (113 kB) Downloading scipy-1.16.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (35.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.7/35.7 MB 420.8 MB/s 0:00:00 Downloading statsmodels-0.14.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (10.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 318.8 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.0.0-py3-none-any.whl (99 kB) Downloading iam_units-2025.10.13-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.23.1-py3-none-any.whl (262 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 354.2 MB/s 0:00:00 Downloading typeguard-4.4.4-py3-none-any.whl (34 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.dev91+g01018ab24-py3-none-any.whl size=6303512 sha256=9ed28db9dbe2249eea781436a024daeb2145d64519ce48df4d2495145dbe211b Stored in directory: /tmp/pip-ephem-wheel-cache-rj88jm9e/wheels/da/05/2d/21838f0710bc21ad20c1fa79b86a6a4fa4bf34c84ee2417bf5 Successfully built message_ix Installing collected packages: ply, XlsxWriter, wquantiles, typing-inspection, typeguard, toml, sniffio, shellingham, scipy, python-dotenv, pyparsing, PyJWT, pydantic-core, psycopg-binary, psycopg, pillow, patsy, pathspec, mypy_extensions, mdurl, Mako, lxml, kiwisolver, hyperframe, hpack, h11, greenlet, graphviz, gamsapi, fonttools, cycler, contourpy, annotated-types, annotated-doc, typing_inspect, SQLAlchemy, pydantic, mypy, matplotlib, markdown-it-py, httpcore, h2, anyio, statsmodels, starlette, SQLAlchemy-Utils, sqlalchemy-continuum, seaborn, sdmx1, rich, pydantic-settings, pandera, mizani, iam-units, httpx, alembic, typer, plotnine, fastapi, ixmp4, pyam-iamc, message_ix Successfully installed Mako-1.3.10 PyJWT-2.10.1 SQLAlchemy-2.0.44 SQLAlchemy-Utils-0.42.0 XlsxWriter-3.2.9 alembic-1.17.2 annotated-doc-0.0.4 annotated-types-0.7.0 anyio-4.11.0 contourpy-1.3.3 cycler-0.12.1 fastapi-0.121.2 fonttools-4.60.1 gamsapi-51.4.0 graphviz-0.21 greenlet-3.2.4 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-2025.10.13 ixmp4-0.10.0 kiwisolver-1.4.9 lxml-6.0.2 markdown-it-py-4.0.0 matplotlib-3.10.7 mdurl-0.1.2 message_ix-3.11.2.dev91+g01018ab24 mizani-0.14.3 mypy-1.18.2 mypy_extensions-1.1.0 pandera-0.26.1 pathspec-0.12.1 patsy-1.0.2 pillow-12.0.0 plotnine-0.15.1 ply-3.11 psycopg-3.2.12 psycopg-binary-3.2.12 pyam-iamc-3.0.0 pydantic-2.12.4 pydantic-core-2.41.5 pydantic-settings-2.12.0 pyparsing-3.2.5 python-dotenv-1.2.1 rich-14.2.0 scipy-1.16.3 sdmx1-2.23.1 seaborn-0.13.2 shellingham-1.5.4 sniffio-1.3.1 sqlalchemy-continuum-1.5.2 starlette-0.49.3 statsmodels-0.14.5 toml-0.10.2 typeguard-4.4.4 typer-0.20.0 typing-inspection-0.4.2 typing_inspect-0.9.0 wquantiles-0.6 [rtd-command-info] start-time: 2025-11-17T11:32:27.750825Z, end-time: 2025-11-17T11:32:27.793430Z, 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/issue/%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), ), "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: 2025-11-17T11:32:27.878909Z, end-time: 2025-11-17T11:32:32.375529Z, duration: 4, 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 /home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages/pybtex/plugin/__init__.py:26: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81. import pkg_resources Versions ======== * Platform: linux; (Linux-6.8.0-1021-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/873/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/873/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/873/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/873/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 1310, in _find_and_load_unlocked File "", line 488, in _call_with_frames_removed File "", line 1387, in _gcd_import File "", line 1360, in _find_and_load File "", line 1310, in _find_and_load_unlocked File "", line 488, in _call_with_frames_removed 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/873/lib/python3.13/site-packages/message_ix/__init__.py", line 12, in from .message import MESSAGE File "/home/docs/checkouts/readthedocs.org/user_builds/iiasa-energy-program-message-ix/envs/873/lib/python3.13/site-packages/message_ix/message.py", line 875, in def shift_period(scenario: Scenario, y0: int) -> None: ^^^^^^^^ NameError: name 'Scenario' is not defined The full traceback has been saved in: /tmp/sphinx-err-k86hfnny.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.