Read the Docs build information Build id: 4024188 Project: institute-for-disease-modeling-laser Version: 400 Commit: dca9762c1df49ed195e968ce589fb86d0fda1cc6 Date: 2026-05-19T02:28:41.031039Z State: finished Success: True [rtd-command-info] start-time: 2026-05-19T02:30:50.419195Z, end-time: 2026-05-19T02:30:50.921711Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/InstituteforDiseaseModeling/laser.git . Cloning into '.'... [rtd-command-info] start-time: 2026-05-19T02:30:51.005104Z, end-time: 2026-05-19T02:30:51.981866Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/400/head:external-400 From https://github.com/InstituteforDiseaseModeling/laser * [new ref] refs/pull/400/head -> external-400 * [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 * [new tag] v1.0.1 -> v1.0.1 [rtd-command-info] start-time: 2026-05-19T02:30:52.633015Z, end-time: 2026-05-19T02:30:52.687558Z, duration: 0, exit-code: 0 git checkout --force dca9762c1df49ed195e968ce589fb86d0fda1cc6 Note: switching to 'dca9762c1df49ed195e968ce589fb86d0fda1cc6'. 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 dca9762 Bump pytest from 8.4.2 to 9.0.3 [rtd-command-info] start-time: 2026-05-19T02:30:52.762807Z, end-time: 2026-05-19T02:30:52.800829Z, 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-05-19T02:30:57.460275Z, end-time: 2026-05-19T02:30:57.515380Z, duration: 0, exit-code: 0 asdf global python 3.13.9 [rtd-command-info] start-time: 2026-05-19T02:30:57.849992Z, end-time: 2026-05-19T02:30:58.487329Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.13.9.final.0-64 in 392ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400, 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-05-19T02:30:58.570011Z, end-time: 2026-05-19T02:31:05.140978Z, duration: 6, 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/400/lib/python3.13/site-packages (23.1) Collecting pip Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/3a/eb/fea4d1d51c49832120f7f285d07306db3960f423a2612c6057caf3e8196f/pip-26.1.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 14.8 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/lib/python3.13/site-packages (67.6.1) Collecting setuptools Downloading https://packages.idmod.org/api/pypi/pypi-production/packages/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 16.3 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.1.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-05-19T02:31:05.220682Z, end-time: 2026-05-19T02:31:12.048112Z, duration: 6, 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 sphinx-9.1.0-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 15.2 MB/s 0:00:00 Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 15.5 MB/s 0:00:00 Collecting docutils<0.23,>=0.21 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 20.3 MB/s 0:00:00 Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 15.0 MB/s 0:00:00 Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.34.2-py3-none-any.whl (73 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.2-py3-none-any.whl (100 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 (22 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (215 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.15-py3-none-any.whl (72 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.7.0-py3-none-any.whl (131 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.4.22-py3-none-any.whl (135 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.4.22 charset_normalizer-3.4.7 docutils-0.22.4 idna-3.15 imagesize-2.0.0 packaging-26.2 requests-2.34.2 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.7.0 [rtd-command-info] start-time: 2026-05-19T02:31:12.128645Z, end-time: 2026-05-19T02:31:13.699241Z, 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/400/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 sphinx_rtd_theme-3.1.0-py2.py3-none-any.whl (7.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 15.0 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/400/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/400/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/400/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/400/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/400/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/400/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/400/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/400/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.20.0) Requirement already satisfied: docutils<0.23,>=0.21 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/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/400/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/400/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.18.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/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/400/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.0.0) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.34.2) Requirement already satisfied: roman-numerals>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/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/400/lib/python3.13/site-packages (from sphinx>=1.3->-r docs/requirements.txt (line 1)) (26.2) Collecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme->-r docs/requirements.txt (line 2)) Downloading 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/400/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/400/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.4.7) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (3.15) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (2.7.0) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/envs/400/lib/python3.13/site-packages (from requests>=2.30.0->sphinx>=1.3->-r docs/requirements.txt (line 1)) (2026.4.22) 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-05-19T02:31:13.783803Z, end-time: 2026-05-19T02:32:01.790378Z, duration: 48, 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 ./. 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.1) Downloading click-8.4.0-py3-none-any.whl (116 kB) Collecting numpy (from laser-core==1.0.1) Downloading numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.6/16.6 MB 14.9 MB/s 0:00:01 Collecting numba (from laser-core==1.0.1) Downloading numba-0.65.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 14.6 MB/s 0:00:00 Collecting matplotlib (from laser-core==1.0.1) Downloading matplotlib-3.10.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (8.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.8/8.8 MB 14.9 MB/s 0:00:00 Collecting pandas (from laser-core==1.0.1) Downloading pandas-3.0.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (10.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.9/10.9 MB 14.8 MB/s 0:00:00 Collecting h5py (from laser-core==1.0.1) Downloading h5py-3.16.0-cp313-cp313-manylinux_2_28_x86_64.whl (5.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.4/5.4 MB 14.7 MB/s 0:00:00 Collecting geopandas (from laser-core==1.0.1) Downloading geopandas-1.1.3-py3-none-any.whl (342 kB) Collecting shapely (from laser-core==1.0.1) Downloading shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 15.2 MB/s 0:00:00 Collecting uv>=0.10.5 (from laser-core==1.0.1) Downloading uv-0.11.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (24.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.4/24.4 MB 14.6 MB/s 0:00:01 Collecting pytest>=6.0 (from laser-core==1.0.1) Downloading pytest-9.0.3-py3-none-any.whl (375 kB) Collecting pytest-cov (from laser-core==1.0.1) Downloading pytest_cov-7.1.0-py3-none-any.whl (22 kB) Collecting scipy (from laser-core==1.0.1) Downloading scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (35.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.2/35.2 MB 14.8 MB/s 0:00:02 Collecting tox (from laser-core==1.0.1) Downloading tox-4.54.0-py3-none-any.whl (214 kB) Collecting tox-uv (from laser-core==1.0.1) Downloading tox_uv-1.35.2-py3-none-any.whl (6.6 kB) Collecting iniconfig>=1.0.1 (from pytest>=6.0->laser-core==1.0.1) Downloading 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/400/lib/python3.13/site-packages (from pytest>=6.0->laser-core==1.0.1) (26.2) Collecting pluggy<2,>=1.5 (from pytest>=6.0->laser-core==1.0.1) Downloading 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/400/lib/python3.13/site-packages (from pytest>=6.0->laser-core==1.0.1) (2.20.0) Collecting pyogrio>=0.7.2 (from geopandas->laser-core==1.0.1) Downloading pyogrio-0.12.1-cp313-cp313-manylinux_2_28_x86_64.whl (32.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 32.5/32.5 MB 14.8 MB/s 0:00:02 Collecting pyproj>=3.5.0 (from geopandas->laser-core==1.0.1) Downloading pyproj-3.7.2-cp313-cp313-manylinux_2_28_x86_64.whl (9.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.5/9.5 MB 14.9 MB/s 0:00:00 Collecting python-dateutil>=2.8.2 (from pandas->laser-core==1.0.1) Downloading 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/400/lib/python3.13/site-packages (from pyogrio>=0.7.2->geopandas->laser-core==1.0.1) (2026.4.22) Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->laser-core==1.0.1) Downloading six-1.17.0-py2.py3-none-any.whl (11 kB) Collecting contourpy>=1.0.1 (from matplotlib->laser-core==1.0.1) Downloading 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.1) Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB) Collecting fonttools>=4.22.0 (from matplotlib->laser-core==1.0.1) Downloading fonttools-4.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (5.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 14.7 MB/s 0:00:00 Collecting kiwisolver>=1.3.1 (from matplotlib->laser-core==1.0.1) Downloading kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 15.3 MB/s 0:00:00 Collecting pillow>=8 (from matplotlib->laser-core==1.0.1) Downloading pillow-12.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.1/7.1 MB 14.9 MB/s 0:00:00 Collecting pyparsing>=3 (from matplotlib->laser-core==1.0.1) Downloading pyparsing-3.3.2-py3-none-any.whl (122 kB) Collecting llvmlite<0.48,>=0.47.0dev0 (from numba->laser-core==1.0.1) Downloading llvmlite-0.47.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 14.8 MB/s 0:00:03 Collecting coverage>=7.10.6 (from coverage[toml]>=7.10.6->pytest-cov->laser-core==1.0.1) Downloading coverage-7.14.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (253 kB) Collecting cachetools>=7.0.3 (from tox->laser-core==1.0.1) Downloading cachetools-7.1.3-py3-none-any.whl (16 kB) Collecting colorama>=0.4.6 (from tox->laser-core==1.0.1) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Collecting filelock>=3.25 (from tox->laser-core==1.0.1) Downloading filelock-3.29.0-py3-none-any.whl (39 kB) Collecting platformdirs>=4.9.4 (from tox->laser-core==1.0.1) Downloading platformdirs-4.9.6-py3-none-any.whl (21 kB) Collecting pyproject-api>=1.10 (from tox->laser-core==1.0.1) Downloading pyproject_api-1.10.0-py3-none-any.whl (13 kB) Collecting python-discovery>=1.2.2 (from tox->laser-core==1.0.1) Downloading python_discovery-1.3.1-py3-none-any.whl (33 kB) Collecting tomli-w>=1.2 (from tox->laser-core==1.0.1) Downloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB) Collecting virtualenv>=21.1 (from tox->laser-core==1.0.1) Downloading virtualenv-21.3.3-py3-none-any.whl (7.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.6/7.6 MB 14.9 MB/s 0:00:00 Collecting distlib<1,>=0.3.7 (from virtualenv>=21.1->tox->laser-core==1.0.1) Downloading distlib-0.4.0-py2.py3-none-any.whl (469 kB) Collecting tox-uv-bare==1.35.2 (from tox-uv->laser-core==1.0.1) Downloading tox_uv_bare-1.35.2-py3-none-any.whl (22 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.1-py3-none-any.whl size=36638 sha256=ad05044d7059ebd560958150d6d2f7e69e8bc448992cf1c6c4013f07c3db9e1a Stored in directory: /tmp/pip-ephem-wheel-cache-xdp_r8jg/wheels/41/42/20/8bd806a83b3827cceb780e9694d52fdf7f16347fe7988922dc Successfully built laser-core Installing collected packages: distlib, uv, tomli-w, six, pyproject-api, pyproj, pyparsing, pluggy, platformdirs, pillow, numpy, llvmlite, kiwisolver, iniconfig, fonttools, filelock, cycler, coverage, colorama, click, cachetools, shapely, scipy, python-discovery, python-dateutil, pytest, pyogrio, numba, h5py, contourpy, virtualenv, pytest-cov, pandas, matplotlib, tox, geopandas, tox-uv-bare, laser-core, tox-uv Successfully installed cachetools-7.1.3 click-8.4.0 colorama-0.4.6 contourpy-1.3.3 coverage-7.14.0 cycler-0.12.1 distlib-0.4.0 filelock-3.29.0 fonttools-4.63.0 geopandas-1.1.3 h5py-3.16.0 iniconfig-2.3.0 kiwisolver-1.5.0 laser-core-1.0.1 llvmlite-0.47.0 matplotlib-3.10.9 numba-0.65.1 numpy-2.4.6 pandas-3.0.3 pillow-12.2.0 platformdirs-4.9.6 pluggy-1.6.0 pyogrio-0.12.1 pyparsing-3.3.2 pyproj-3.7.2 pyproject-api-1.10.0 pytest-9.0.3 pytest-cov-7.1.0 python-dateutil-2.9.0.post0 python-discovery-1.3.1 scipy-1.17.1 shapely-2.1.2 six-1.17.0 tomli-w-1.2.0 tox-4.54.0 tox-uv-1.35.2 tox-uv-bare-1.35.2 uv-0.11.15 virtualenv-21.3.3 [rtd-command-info] start-time: 2026-05-19T02:32:01.919856Z, end-time: 2026-05-19T02:32:01.959081Z, 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.1" pygments_style = "trac" templates_path = ["."] extlinks = { "issue": ("https://github.com/laser-base/laser-core/issues/%s", "#"), "pr": ("https://github.com/laser-base/laser-core/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-05-19T02:32:02.039114Z, end-time: 2026-05-19T02:32:06.315561Z, duration: 4, 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 ../CHANGELOG.rst:76: 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/400/_readthedocs/html/_static/language_data.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/400/_readthedocs/html/_static/basic.css Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/400/_readthedocs/html/_static/documentation_options.js Writing evaluated template result to /home/docs/checkouts/readthedocs.org/user_builds/institute-for-disease-modeling-laser/checkouts/400/_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... [ 10%] laser.core.demographics.kmestimator highlighting module code... [ 20%] laser.core.demographics.pyramid highlighting module code... [ 30%] laser.core.demographics.spatialpops highlighting module code... [ 40%] laser.core.distributions highlighting module code... [ 50%] laser.core.laserframe highlighting module code... [ 60%] laser.core.migration highlighting module code... [ 70%] laser.core.propertyset highlighting module code... [ 80%] laser.core.random highlighting module code... [ 90%] laser.core.sortedqueue highlighting module code... [100%] laser.core.utils writing additional pages... search done copying images... [ 25%] media/squash_save_load.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, 1 warning. The HTML pages are in ../_readthedocs/html.