Read the Docs build information Build id: 3702807 Project: institute-for-disease-modeling-laser Version: 352 Commit: bc1bb7736a5c8af6b6a97fda6794a86ad7338100 Date: 2026-01-29T00:02:06.331778Z State: finished Success: True [rtd-command-info] start-time: 2026-01-29T00:02:07.642124Z, end-time: 2026-01-29T00:02:08.101971Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/InstituteforDiseaseModeling/laser.git . Cloning into '.'... [rtd-command-info] start-time: 2026-01-29T00:02:08.282482Z, end-time: 2026-01-29T00:02:09.169444Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/352/head:external-352 From https://github.com/InstituteforDiseaseModeling/laser * [new ref] refs/pull/352/head -> external-352 * [new tag] v0.7.0 -> v0.7.0 * [new tag] v0.8.0 -> v0.8.0 * [new tag] v0.8.1 -> v0.8.1 * [new tag] v0.9.0 -> v0.9.0 * [new tag] v0.9.1 -> v0.9.1 * [new tag] v1.0.0 -> v1.0.0 [rtd-command-info] start-time: 2026-01-29T00:02:09.886046Z, end-time: 2026-01-29T00:02:09.929174Z, duration: 0, exit-code: 0 git checkout --force bc1bb7736a5c8af6b6a97fda6794a86ad7338100 Note: switching to 'bc1bb7736a5c8af6b6a97fda6794a86ad7338100'. 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 bc1bb77 Bump uv from 0.8.18 to 0.9.6 [rtd-command-info] start-time: 2026-01-29T00:02:10.072737Z, end-time: 2026-01-29T00:02:10.109220Z, duration: 0, exit-code: 0 cat .readthedocs.yml # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details version: 2 build: os: ubuntu-22.04 tools: python: "3.13" sphinx: configuration: docs/conf.py fail_on_warning: false formats: - htmlzip - pdf python: install: - requirements: docs/requirements.txt - method: pip path: . extra_requirements: - test search: ranking: installation.html: 3 laser.core.html: 2 [rtd-command-info] start-time: 2026-01-29T00:02:14.111177Z, end-time: 2026-01-29T00:02:14.154133Z, duration: 0, exit-code: 0 asdf global python 3.13.3 [rtd-command-info] start-time: 2026-01-29T00:02:14.540040Z, end-time: 2026-01-29T00:02:15.312340Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.13.3.final.0-64 in 496ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352, 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-01-29T00:02:15.452797Z, end-time: 2026-01-29T00:02:25.319839Z, duration: 9, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Looking in indexes: https://pypi.org/simple, https://packages.idmod.org/api/pypi/pypi-production/simple Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (23.1) Collecting pip Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/44/3c/d717024885424591d5376220b5e836c2d5293ce2011523c9de23ff7bf068/pip-25.3-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 12.0 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (67.6.1) Collecting setuptools Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/94/b8/f1f62a5e3c0ad2ff1d189590bfa4c46b4f3b6e49cef6f26c6ee4e575394d/setuptools-80.10.2-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 13.7 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.10.2 [rtd-command-info] start-time: 2026-01-29T00:02:25.484560Z, end-time: 2026-01-29T00:02:32.609848Z, duration: 7, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Looking in indexes: https://pypi.org/simple, https://packages.idmod.org/api/pypi/pypi-production/simple Collecting sphinx Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/73/f7/b1884cb3188ab181fc81fa00c266699dab600f927a964df02ec3d5d1916a/sphinx-9.1.0-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 13.8 MB/s 0:00:00 Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl (134 kB) Collecting Pygments>=2.17 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 14.5 MB/s 0:00:00 Collecting docutils<0.23,>=0.21 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 16.7 MB/s 0:00:00 Collecting snowballstemmer>=2.2 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Collecting babel>=2.13 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 13.8 MB/s 0:00:00 Collecting alabaster>=0.7.14 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl (13 kB) Collecting imagesize>=1.3 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Collecting requests>=2.30.0 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl (64 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Collecting packaging>=23.0 (from sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl (74 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (153 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl (71 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.30.0->sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl (131 kB) Collecting certifi>=2017.4.17 (from requests>=2.30.0->sphinx) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl (152 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.19.2 alabaster-1.0.0 babel-2.17.0 certifi-2026.1.4 charset_normalizer-3.4.4 docutils-0.22.4 idna-3.11 imagesize-1.4.1 packaging-26.0 requests-2.32.5 roman-numerals-4.1.0 snowballstemmer-3.0.1 sphinx-9.1.0 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.6.3 [rtd-command-info] start-time: 2026-01-29T00:02:32.812945Z, end-time: 2026-01-29T00:02:34.371225Z, duration: 1, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r docs/requirements.txt Looking in indexes: https://pypi.org/simple, https://packages.idmod.org/api/pypi/pypi-production/simple Requirement already satisfied: sphinx>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from -r docs/requirements.txt (line 1)) (9.1.0) Collecting sphinx-rtd-theme (from -r docs/requirements.txt (line 2)) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/87/c7/b5c8015d823bfda1a346adb2c634a2101d50bb75d421eb6dcb31acd25ebc/sphinx_rtd_theme-3.1.0-py2.py3-none-any.whl (7.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 13.3 MB/s 0:00:00 Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: Jinja2>=3.1 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.1.6) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.19.2) Requirement already satisfied: docutils<0.23,>=0.21 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (0.22.4) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.0.1) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.17.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (1.4.1) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.32.5) Requirement already satisfied: roman-numerals>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (4.1.0) Requirement already satisfied: packaging>=23.0 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (26.0) Collecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme->-r docs/requirements.txt (line 2)) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from Jinja2>=3.1->sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.4.4) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.11) Requirement already satisfied: urllib3<3,>=1.21.1 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.6.3) Requirement already satisfied: certifi>=2017.4.17 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (2026.1.4) Installing collected packages: sphinxcontrib-jquery, sphinx-rtd-theme Successfully installed sphinx-rtd-theme-3.1.0 sphinxcontrib-jquery-4.1 [rtd-command-info] start-time: 2026-01-29T00:02:34.516352Z, end-time: 2026-01-29T00:03:19.178080Z, duration: 44, exit-code: 0 python -m pip install --upgrade --upgrade-strategy only-if-needed --no-cache-dir .[test] Looking in indexes: https://pypi.org/simple, https://packages.idmod.org/api/pypi/pypi-production/simple Processing /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/352 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 click (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl (108 kB) Collecting numpy (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/ba/87/d341e519956273b39d8d47969dd1eaa1af740615394fe67d06f1efa68773/numpy-2.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 13.8 MB/s 0:00:01 Collecting numba (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/e9/6c/1e222edba1e20e6b113912caa9b1665b5809433cbcb042dfd133c6f1fd38/numba-0.63.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 10.1 MB/s 0:00:00 Collecting matplotlib (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.7/8.7 MB 13.9 MB/s 0:00:00 Collecting pandas (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/f7/a3/51e02ebc2a14974170d51e2410dfdab58870ea9bcd37cda15bd553d24dc4/pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.9/10.9 MB 13.8 MB/s 0:00:00 Collecting h5py (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/d9/69/4402ea66272dacc10b298cca18ed73e1c0791ff2ae9ed218d3859f9698ac/h5py-3.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1/5.1 MB 13.8 MB/s 0:00:00 Collecting geopandas (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/54/e4/fac19dc34cb686c96011388b813ff7b858a70681e5ce6ce7698e5021b0f4/geopandas-1.1.2-py3-none-any.whl (341 kB) Collecting shapely (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/f2/a2/83fc37e2a58090e3d2ff79175a95493c664bcd0b653dd75cb9134645a4e5/shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 14.1 MB/s 0:00:00 Collecting pytest>=6.0 (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl (374 kB) Collecting pytest-cov (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl (22 kB) Collecting scipy (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/63/1e/12fbf2a3bb240161651c94bb5cdd0eae5d4e8cc6eaeceb74ab07b12a753d/scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.0/35.0 MB 13.8 MB/s 0:00:02 Collecting uv (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/15/19/b35928e55307beb69b60b88446df3cb8d7ff3ba0993fc2214a43266c17d1/uv-0.9.27-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.7/22.7 MB 13.8 MB/s 0:00:01 Collecting iniconfig>=1.0.1 (from pytest>=6.0->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl (7.5 kB) Requirement already satisfied: packaging>=22 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from pytest>=6.0->laser-core==1.0.0) (26.0) Collecting pluggy<2,>=1.5 (from pytest>=6.0->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl (20 kB) Requirement already satisfied: pygments>=2.7.2 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from pytest>=6.0->laser-core==1.0.0) (2.19.2) Collecting pyogrio>=0.7.2 (from geopandas->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/46/35/b874f79d03e9f900012cf609f7fff97b77164f2e14ee5aac282f8a999c1b/pyogrio-0.12.1-cp313-cp313-manylinux_2_28_x86_64.whl (32.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 32.5/32.5 MB 13.4 MB/s 0:00:02 Collecting pyproj>=3.5.0 (from geopandas->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/f8/85/c2b1706e51942de19076eff082f8495e57d5151364e78b5bef4af4a1d94a/pyproj-3.7.2-cp313-cp313-manylinux_2_28_x86_64.whl (9.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 13.7 MB/s 0:00:00 Collecting python-dateutil>=2.8.2 (from pandas->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Requirement already satisfied: certifi in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages (from pyogrio>=0.7.2->geopandas->laser-core==1.0.0) (2026.1.4) Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl (11 kB) Collecting contourpy>=1.0.1 (from matplotlib->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (362 kB) Collecting cycler>=0.10 (from matplotlib->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl (8.3 kB) Collecting fonttools>=4.22.0 (from matplotlib->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/a3/4b/d67eedaed19def5967fade3297fed8161b25ba94699efc124b14fb68cdbc/fonttools-4.61.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 14.0 MB/s 0:00:00 Collecting kiwisolver>=1.3.1 (from matplotlib->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/e9/e9/f218a2cb3a9ffbe324ca29a9e399fa2d2866d7f348ec3a88df87fc248fc5/kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 13.8 MB/s 0:00:00 Collecting pillow>=8 (from matplotlib->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.0/7.0 MB 13.7 MB/s 0:00:00 Collecting pyparsing>=3 (from matplotlib->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl (122 kB) Collecting llvmlite<0.47,>=0.46.0dev0 (from numba->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/0e/54/737755c0a91558364b9200702c3c9c15d70ed63f9b98a2c32f1c2aa1f3ba/llvmlite-0.46.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 13.7 MB/s 0:00:04 Collecting numpy (from laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.6/16.6 MB 13.8 MB/s 0:00:01 Collecting coverage>=7.10.6 (from coverage[toml]>=7.10.6->pytest-cov->laser-core==1.0.0) Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/8e/78/befa6640f74092b86961f957f26504c8fba3d7da57cc2ab7407391870495/coverage-7.13.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (253 kB) Building wheels for collected packages: laser-core Building wheel for laser-core (pyproject.toml): started Building wheel for laser-core (pyproject.toml): finished with status 'done' Created wheel for laser-core: filename=laser_core-1.0.0-cp313-cp313-linux_x86_64.whl size=47194 sha256=aa59cd3a9b00c88e50bf3b982a72043cc85a972517b09d24a52b64cd0f21fe1f Stored in directory: /tmp/pip-ephem-wheel-cache-huevqlg_/wheels/1e/9a/8c/1656b2e25d9860b41003f3e83b5b4c5b8d0bd4c4cc1f2327a4 Successfully built laser-core Installing collected packages: uv, six, pyproj, pyparsing, pluggy, pillow, numpy, llvmlite, kiwisolver, iniconfig, fonttools, cycler, coverage, click, shapely, scipy, python-dateutil, pytest, pyogrio, numba, h5py, contourpy, pytest-cov, pandas, matplotlib, geopandas, laser-core Successfully installed click-8.3.1 contourpy-1.3.3 coverage-7.13.2 cycler-0.12.1 fonttools-4.61.1 geopandas-1.1.2 h5py-3.15.1 iniconfig-2.3.0 kiwisolver-1.4.9 laser-core-1.0.0 llvmlite-0.46.0 matplotlib-3.10.8 numba-0.63.1 numpy-2.3.5 pandas-3.0.0 pillow-12.1.0 pluggy-1.6.0 pyogrio-0.12.1 pyparsing-3.3.2 pyproj-3.7.2 pytest-9.0.2 pytest-cov-7.0.0 python-dateutil-2.9.0.post0 scipy-1.17.0 shapely-2.1.2 six-1.17.0 uv-0.9.27 [rtd-command-info] start-time: 2026-01-29T00:03:19.527320Z, end-time: 2026-01-29T00:03:19.561160Z, duration: 0, exit-code: 0 cat docs/conf.py import os extensions = [ "sphinx.ext.autodoc", "sphinx.ext.autosummary", "sphinx.ext.coverage", "sphinx.ext.doctest", "sphinx.ext.extlinks", "sphinx.ext.ifconfig", "sphinx.ext.napoleon", "sphinx.ext.todo", "sphinx.ext.viewcode", "sphinx.ext.mathjax", ] source_suffix = {".rst": "restructuredtext"} master_doc = "index" project = "LASER" year = "2023-2024" author = "Institute for Disease Modeling" copyright = f"{year}, {author}" version = release = "1.0.0" pygments_style = "trac" templates_path = ["."] extlinks = { "issue": ("https://github.com/InstituteforDiseaseModeling/laser/issues/%s", "#"), "pr": ("https://github.com/InstituteforDiseaseModeling/laser/pull/%s", "PR #"), } # on_rtd is whether we are on readthedocs.org on_rtd = os.environ.get("READTHEDOCS", None) == "True" if not on_rtd: # only set the theme if we are building docs locally html_theme = "sphinx_rtd_theme" html_use_smartypants = True html_last_updated_fmt = "%b %d, %Y" html_split_index = False html_sidebars = { "**": ["searchbox.html", "globaltoc.html", "sourcelink.html"], } html_short_title = f"{project}-{version}" # Napoleon settings (Napolean converts Google-style docstrings to reStructuredText) napoleon_google_docstring = True napoleon_numpy_docstring = True napoleon_include_init_with_doc = False napoleon_include_private_with_doc = False napoleon_include_special_with_doc = True napoleon_use_admonition_for_examples = False napoleon_use_admonition_for_notes = False napoleon_use_admonition_for_references = False napoleon_use_ivar = True # from Cookiecutter template, False is the default napoleon_use_param = False # from Cookiecutter template, True is the default napoleon_use_rtype = False # from Cookiecutter template, True is the default napoleon_preprocess_types = False napoleon_type_aliases = None napoleon_attr_annotations = True mathjax3_config = {"TeX": {"Macros": {"small": ["{\\scriptstyle #1}", 1]}}} # Prevent the following warning: # sphinx/builders/linkcheck.py:86: RemovedInSphinx80Warning: The default value for 'linkcheck_report_timeouts_as_broken' will change to False in Sphinx 8, meaning that request timeouts will be reported with a new 'timeout' status, instead of as 'broken'. This is intended to provide more detail as to the failure mode. See https://github.com/sphinx-doc/sphinx/issues/11868 for details. # warnings.warn(deprecation_msg, RemovedInSphinx80Warning, stacklevel=1) linkcheck_ignore = [r"https://www\.populationpyramid\.net/nigeria/2024/"] linkcheck_report_timeouts_as_broken = False [rtd-command-info] start-time: 2026-01-29T00:03:19.757310Z, end-time: 2026-01-29T00:03:29.201492Z, duration: 9, exit-code: 0 python -m sphinx -T -b html -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v9.1.0 loading translations [en]... done making output directory... done [autosummary] generating autosummary for: architecture.rst, authors.rst, calibration.rst, changelog.rst, contributing.rst, eula.rst, example.rst, index.rst, installation.rst, kmestimator.rst, migration.rst, performance.rst, pyramids.rst, readme.rst, source/laser.core.demographics.rst, source/laser.core.rst, source/modules.rst, spatialexample.rst, usage.rst, vdexample.rst building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 20 source files that are out of date updating environment: [new config] 20 added, 0 changed, 0 removed reading sources... [ 5%] architecture reading sources... [ 10%] authors reading sources... [ 15%] calibration reading sources... [ 20%] changelog reading sources... [ 25%] contributing reading sources... [ 30%] eula reading sources... [ 35%] example reading sources... [ 40%] index reading sources... [ 45%] installation reading sources... [ 50%] kmestimator reading sources... [ 55%] migration reading sources... [ 60%] performance reading sources... [ 65%] pyramids reading sources... [ 70%] readme reading sources... [ 75%] source/laser.core reading sources... [ 80%] source/laser.core.demographics reading sources... [ 85%] source/modules reading sources... [ 90%] spatialexample reading sources... [ 95%] usage reading sources... [100%] vdexample /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages/laser/core/propertyset.py:docstring of laser.core.propertyset.PropertySet:57: WARNING: Inline substitution_reference start-string without end-string. [docutils] /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/352/lib/python3.13/site-packages/laser/core/propertyset.py:docstring of laser.core.propertyset.PropertySet:57: WARNING: Inline substitution_reference start-string without end-string. [docutils] looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/352/_readthedocs/html/_static/language_data.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/352/_readthedocs/html/_static/basic.css Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/352/_readthedocs/html/_static/documentation_options.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/352/_readthedocs/html/_static/alabaster.css copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 5%] architecture writing output... [ 10%] authors writing output... [ 15%] calibration writing output... [ 20%] changelog writing output... [ 25%] contributing writing output... [ 30%] eula writing output... [ 35%] example writing output... [ 40%] index writing output... [ 45%] installation writing output... [ 50%] kmestimator writing output... [ 55%] migration writing output... [ 60%] performance writing output... [ 65%] pyramids writing output... [ 70%] readme writing output... [ 75%] source/laser.core writing output... [ 80%] source/laser.core.demographics writing output... [ 85%] source/modules writing output... [ 90%] spatialexample writing output... [ 95%] usage writing output... [100%] vdexample generating indices... genindex py-modindex done highlighting module code... [ 9%] laser.core.demographics.kmestimator highlighting module code... [ 18%] laser.core.demographics.pyramid highlighting module code... [ 27%] laser.core.demographics.spatialpops highlighting module code... [ 36%] laser.core.distributions highlighting module code... [ 45%] laser.core.extension highlighting module code... [ 55%] laser.core.laserframe highlighting module code... [ 64%] laser.core.migration highlighting module code... [ 73%] laser.core.propertyset highlighting module code... [ 82%] laser.core.random highlighting module code... [ 91%] laser.core.sortedqueue highlighting module code... [100%] laser.core.utils writing additional pages... search done copying images... [ 25%] media/workflow.png copying images... [ 50%] media/Nigeria-NDD.png copying images... [ 75%] media/Nigeria-2024.png copying images... [100%] media/Nigeria-Sampled.png dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 2 warnings. The HTML pages are in ../_readthedocs/html.