Read the Docs build information Build id: 4218215 Project: icb-scanpy Version: 4179 Commit: b88b8fda6951daa76dacbf5b072d00fba3f6bd7e Date: 2026-07-16T01:12:04.398215Z State: finished Success: False [rtd-command-info] start-time: 2026-07-16T01:12:05.149137Z, end-time: 2026-07-16T01:12:06.090207Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/scverse/scanpy.git . Cloning into '.'... [rtd-command-info] start-time: 2026-07-16T01:12:06.184372Z, end-time: 2026-07-16T01:12:06.749534Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/4179/head:external-4179 From https://github.com/scverse/scanpy * [new ref] refs/pull/4179/head -> external-4179 [rtd-command-info] start-time: 2026-07-16T01:12:07.491523Z, end-time: 2026-07-16T01:12:07.642579Z, duration: 0, exit-code: 0 git checkout --force b88b8fda6951daa76dacbf5b072d00fba3f6bd7e Note: switching to 'b88b8fda6951daa76dacbf5b072d00fba3f6bd7e'. 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 b88b8fd fixing test errors 2 [rtd-command-info] start-time: 2026-07-16T01:12:07.735120Z, end-time: 2026-07-16T01:12:07.776053Z, duration: 0, exit-code: 0 cat .readthedocs.yml # https://docs.readthedocs.io/en/stable/config-file/v2.html version: 2 submodules: include: all build: os: ubuntu-24.04 tools: python: '3.13' jobs: post_checkout: # unshallow so version can be derived from tag - git fetch --unshallow || true create_environment: - asdf plugin add uv - asdf install uv latest - asdf global uv latest pre_build: # run towncrier to preview the next version’s release notes - ( find docs/release-notes -regex '[^.]+[.][^.]+.md' | grep -q . ) && uvx hatch run towncrier build --keep || true build: html: - uvx hatch run docs:build -T - mv docs/_build $READTHEDOCS_OUTPUT [rtd-command-info] start-time: 2026-07-16T01:12:07.905297Z, end-time: 2026-07-16T01:12:07.972965Z, duration: 0, exit-code: 0 git submodule sync [rtd-command-info] start-time: 2026-07-16T01:12:08.066100Z, end-time: 2026-07-16T01:12:30.574273Z, duration: 22, exit-code: 0 git submodule update --init --force -- Submodule 'notebooks' (https://github.com/scverse/scanpy-tutorials/) registered for path 'notebooks' Cloning into '/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/notebooks'... Submodule path 'notebooks': checked out 'ac0e94be9f36977400177dc940cbd8eac1d2297c' [rtd-command-info] start-time: 2026-07-16T01:12:30.656824Z, end-time: 2026-07-16T01:12:34.951624Z, duration: 4, exit-code: 0 git fetch --unshallow || true From https://github.com/scverse/scanpy * [new tag] 0.0 -> 0.0 * [new tag] 0.1 -> 0.1 * [new tag] 0.2 -> 0.2 * [new tag] 0.2.1 -> 0.2.1 * [new tag] 0.2.3 -> 0.2.3 * [new tag] 0.2.3.5 -> 0.2.3.5 * [new tag] 0.2.4 -> 0.2.4 * [new tag] 0.2.5 -> 0.2.5 * [new tag] 0.2.6 -> 0.2.6 * [new tag] 0.2.7 -> 0.2.7 * [new tag] 0.2.8 -> 0.2.8 * [new tag] 0.2.9 -> 0.2.9 * [new tag] 0.2.9.1 -> 0.2.9.1 * [new tag] 0.3 -> 0.3 * [new tag] 0.3.1 -> 0.3.1 * [new tag] 0.3.2 -> 0.3.2 * [new tag] 0.4 -> 0.4 * [new tag] 0.4.1 -> 0.4.1 * [new tag] 0.4.2 -> 0.4.2 * [new tag] 0.4.2.post1 -> 0.4.2.post1 * [new tag] 0.4.2.post2 -> 0.4.2.post2 * [new tag] 0.4.3 -> 0.4.3 * [new tag] 0.4.4 -> 0.4.4 * [new tag] 1.0 -> 1.0 * [new tag] 1.0.1 -> 1.0.1 * [new tag] 1.0.2 -> 1.0.2 * [new tag] 1.0.3 -> 1.0.3 * [new tag] 1.0.4 -> 1.0.4 * [new tag] 1.1 -> 1.1 * [new tag] 1.10.0.dev0 -> 1.10.0.dev0 * [new tag] 1.10.0rc1 -> 1.10.0rc1 * [new tag] 1.11.0 -> 1.11.0 * [new tag] 1.11.0rc1 -> 1.11.0rc1 * [new tag] 1.11.0rc2 -> 1.11.0rc2 * [new tag] 1.12.0 -> 1.12.0 * [new tag] 1.12.0rc1 -> 1.12.0rc1 * [new tag] 1.1a1 -> 1.1a1 * [new tag] 1.1a2 -> 1.1a2 * [new tag] 1.2.0 -> 1.2.0 * [new tag] 1.2.1 -> 1.2.1 * [new tag] 1.2.2 -> 1.2.2 * [new tag] 1.3 -> 1.3 * [new tag] 1.3.1 -> 1.3.1 * [new tag] 1.3.2 -> 1.3.2 * [new tag] 1.3.3 -> 1.3.3 * [new tag] 1.3.4 -> 1.3.4 * [new tag] 1.3.5 -> 1.3.5 * [new tag] 1.3.6 -> 1.3.6 * [new tag] 1.3.7 -> 1.3.7 * [new tag] 1.3.8 -> 1.3.8 * [new tag] 1.4 -> 1.4 * [new tag] 1.4.1 -> 1.4.1 * [new tag] 1.4.2 -> 1.4.2 * [new tag] 1.4.3 -> 1.4.3 * [new tag] 1.4.4 -> 1.4.4 * [new tag] 1.4.5 -> 1.4.5 * [new tag] 1.4.5.1 -> 1.4.5.1 * [new tag] 1.4.5.post1 -> 1.4.5.post1 * [new tag] 1.4.5.post2 -> 1.4.5.post2 * [new tag] 1.4.5.post3 -> 1.4.5.post3 * [new tag] 1.4.6 -> 1.4.6 * [new tag] 1.5.0 -> 1.5.0 * [new tag] 1.5.0a1 -> 1.5.0a1 * [new tag] 1.5.1 -> 1.5.1 * [new tag] 1.6.0 -> 1.6.0 * [new tag] 1.7.0rc1 -> 1.7.0rc1 * [new tag] 1.8.0 -> 1.8.0 * [new tag] 1.8.0.dev0 -> 1.8.0.dev0 * [new tag] 1.9.0 -> 1.9.0 * [new tag] 1.9.0.dev0 -> 1.9.0.dev0 Fetching submodule notebooks From https://github.com/scverse/scanpy-tutorials * branch 26e16f83387caef76abdd42afda3c7c13f7139f1 -> FETCH_HEAD [rtd-command-info] start-time: 2026-07-16T01:12:39.251311Z, end-time: 2026-07-16T01:12:39.303398Z, duration: 0, exit-code: 0 asdf global python 3.13.14 [rtd-command-info] start-time: 2026-07-16T01:12:39.627380Z, end-time: 2026-07-16T01:12:40.675237Z, duration: 1, exit-code: 0 asdf plugin add uv updating plugin repository...From https://github.com/asdf-vm/asdf-plugins 8e311ee..c0369a1 master -> origin/master * [new branch] dependabot/github_actions/actions/checkout-6 -> origin/dependabot/github_actions/actions/checkout-6 * [new branch] dependabot/github_actions/amannn/action-semantic-pull-request-6.1.1 -> origin/dependabot/github_actions/amannn/action-semantic-pull-request-6.1.1 * [new branch] dependabot/github_actions/asdf-vm/actions-4 -> origin/dependabot/github_actions/asdf-vm/actions-4 HEAD is now at c0369a1 feat: add yasm plugin (#1087) [rtd-command-info] start-time: 2026-07-16T01:12:40.752250Z, end-time: 2026-07-16T01:12:41.998378Z, duration: 1, exit-code: 0 asdf install uv latest redirect url: https://github.com/astral-sh/uv/releases/tag/0.11.29 * Downloading uv release 0.11.29... uv 0.11.29 installation was successful! [rtd-command-info] start-time: 2026-07-16T01:12:42.082336Z, end-time: 2026-07-16T01:12:42.193633Z, duration: 0, exit-code: 0 asdf global uv latest redirect url: https://github.com/astral-sh/uv/releases/tag/0.11.29 [rtd-command-info] start-time: 2026-07-16T01:12:42.349923Z, end-time: 2026-07-16T01:12:48.869516Z, duration: 6, exit-code: 0 ( find docs/release-notes -regex '[^.]+[.][^.]+.md' | grep -q . ) && uvx hatch run towncrier build --keep || true Downloading uv (25.7MiB) Downloading virtualenv (5.3MiB) Downloading pygments (1.2MiB) Downloading cryptography (4.5MiB) Downloaded uv Downloaded virtualenv Downloaded cryptography Downloaded pygments Installed 43 packages in 20ms Creating environment: default Installing project in development mode Checking dependencies Syncing dependencies Loading template... Finding news fragments... Rendering news fragments... Writing to newsfile... Staging newsfile... Keeping the following files: /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4126.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4055.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4141.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4178.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4184.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4205.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/3953.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4081.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4052.breaking.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4037.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4132.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4081.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4010.chore.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4013.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4191.chore.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4147.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/3653.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/3983.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4142.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4143.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4192.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4196.docs.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4038.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4112.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4100.docs.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4039.breaking.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4036.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4079.docs.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/3999.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4017.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4062.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/3984.breaking.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/release-notes/4076.feat.md Done! [rtd-command-info] start-time: 2026-07-16T01:12:48.963967Z, end-time: 2026-07-16T01:13:29.151489Z, duration: 40, exit-code: 2 uvx hatch run docs:build -T Creating environment: docs Installing project in development mode Checking dependencies Syncing dependencies Running Sphinx v9.1.0 loading translations [en]... done Extension error! Versions ======== * Platform: linux; (Linux-7.0.0-1004-aws-x86_64-with-glibc2.39) * Python version: 3.13.14 (CPython) * Sphinx version: 9.1.0 * Docutils version: 0.22.4 * Jinja2 version: 3.1.6 * Pygments version: 2.20.0 Last Messages ============= None. Loaded Extensions ================= None. Traceback ========= Traceback (most recent call last): File "/home/docs/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/lib/python3.13/site-packages/sphinx/registry.py", line 550, in load_extension mod = import_module(extname) File "/home/docs/.asdf/installs/python/3.13.14/lib/python3.13/importlib/__init__.py", line 88, in import_module return _bootstrap._gcd_import(name[level:], package, level) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1395, 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 1023, in exec_module File "", line 488, in _call_with_frames_removed File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/docs/extensions/array_support.py", line 12, in from scanpy._utils import _docs File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/src/scanpy/__init__.py", line 12, in from ._settings import Preset, Verbosity, settings File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/src/scanpy/_settings/__init__.py", line 22, in from .presets import Default, Preset File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/src/scanpy/_settings/presets.py", line 16, in from .._utils._doctests import doctest_needs File "/home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4179/src/scanpy/_utils/__init__.py", line 33, in from fast_array_utils.types import HasArrayNamespace ImportError: cannot import name 'HasArrayNamespace' from 'fast_array_utils.types' (/home/docs/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/lib/python3.13/site-packages/fast_array_utils/types.py) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/docs/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/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/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/lib/python3.13/site-packages/sphinx/application.py", line 299, in __init__ self.setup_extension(extension) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/lib/python3.13/site-packages/sphinx/application.py", line 505, in setup_extension self.registry.load_extension(self, extname) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/lib/python3.13/site-packages/sphinx/registry.py", line 553, in load_extension raise ExtensionError( __('Could not import extension %s') % extname, err ) from err sphinx.errors.ExtensionError: Could not import extension array_support (exception: cannot import name 'HasArrayNamespace' from 'fast_array_utils.types' (/home/docs/.local/share/hatch/env/virtual/scanpy/QzQLp7wt/docs/lib/python3.13/site-packages/fast_array_utils/types.py)) The full traceback has been saved in: /tmp/sphinx-err-xfb1a15c.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.