Read the Docs build information Build id: 4182184 Project: icb-scanpy Version: 4188 Commit: 674c859c0338ced41641e8f670b0b1b08e41b1c5 Date: 2026-07-07T14:35:02.187091Z State: finished Success: False [rtd-command-info] start-time: 2026-07-07T14:35:02.919424Z, end-time: 2026-07-07T14:35:03.874017Z, duration: 0, exit-code: 0 git clone --depth 1 https://github.com/scverse/scanpy.git . Cloning into '.'... [rtd-command-info] start-time: 2026-07-07T14:35:03.956411Z, end-time: 2026-07-07T14:35:04.508499Z, duration: 0, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 pull/4188/head:external-4188 From https://github.com/scverse/scanpy * [new ref] refs/pull/4188/head -> external-4188 [rtd-command-info] start-time: 2026-07-07T14:35:05.170455Z, end-time: 2026-07-07T14:35:05.334583Z, duration: 0, exit-code: 0 git checkout --force 674c859c0338ced41641e8f670b0b1b08e41b1c5 Note: switching to '674c859c0338ced41641e8f670b0b1b08e41b1c5'. 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 674c859 backends [rtd-command-info] start-time: 2026-07-07T14:35:05.413228Z, end-time: 2026-07-07T14:35:05.451111Z, 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-07T14:35:05.567879Z, end-time: 2026-07-07T14:35:05.708969Z, duration: 0, exit-code: 0 git submodule sync [rtd-command-info] start-time: 2026-07-07T14:35:05.797122Z, end-time: 2026-07-07T14:35:25.657135Z, duration: 19, 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/4188/notebooks'... Submodule path 'notebooks': checked out 'ac0e94be9f36977400177dc940cbd8eac1d2297c' [rtd-command-info] start-time: 2026-07-07T14:35:25.734135Z, end-time: 2026-07-07T14:35:30.608247Z, 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-07T14:35:35.735592Z, end-time: 2026-07-07T14:35:35.850109Z, duration: 0, exit-code: 0 asdf global python 3.13.14 [rtd-command-info] start-time: 2026-07-07T14:35:36.191466Z, end-time: 2026-07-07T14:35:37.731124Z, 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-07T14:35:37.917180Z, end-time: 2026-07-07T14:35:39.178853Z, duration: 1, exit-code: 0 asdf install uv latest redirect url: https://github.com/astral-sh/uv/releases/tag/0.11.27 * Downloading uv release 0.11.27... uv 0.11.27 installation was successful! [rtd-command-info] start-time: 2026-07-07T14:35:39.251652Z, end-time: 2026-07-07T14:35:39.362802Z, duration: 0, exit-code: 0 asdf global uv latest redirect url: https://github.com/astral-sh/uv/releases/tag/0.11.27 [rtd-command-info] start-time: 2026-07-07T14:35:39.501913Z, end-time: 2026-07-07T14:35:46.012548Z, duration: 6, exit-code: 0 ( find docs/release-notes -regex '[^.]+[.][^.]+.md' | grep -q . ) && uvx hatch run towncrier build --keep || true Downloading virtualenv (5.3MiB) Downloading cryptography (4.5MiB) Downloading pygments (1.2MiB) Downloading uv (25.4MiB) Downloaded uv Downloaded cryptography Downloaded virtualenv Downloaded pygments Installed 43 packages in 19ms 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/4188/docs/release-notes/4126.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4055.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4141.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4178.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4184.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4188.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/3953.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4081.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4052.breaking.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4037.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4132.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4081.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4010.chore.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4013.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4191.chore.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4147.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/3983.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4142.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4143.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4199.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4192.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4112.fix.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4100.docs.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4039.breaking.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4036.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4079.docs.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/3999.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4017.feat.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4062.perf.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/3984.breaking.md /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/release-notes/4076.feat.md Done! [rtd-command-info] start-time: 2026-07-07T14:35:46.099877Z, end-time: 2026-07-07T14:37:28.974722Z, duration: 102, 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 Matplotlib is building the font cache; this may take a moment. making output directory... done myst v5.1.0: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'colon_fence', 'html_admonition', 'html_image', 'dollarmath', 'deflist', 'amsmath'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=3, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, strikethrough_single_tilde=False, colon_fence_exact_match=False, suppress_warnings=[], highlight_code_blocks=True) myst-nb v1.4.0: NbParserConfig(custom_formats={}, metadata_key='mystnb', cell_metadata_key='mystnb', kernel_rgx_aliases={}, eval_name_regex='^[a-zA-Z_][a-zA-Z0-9_]*$', execution_mode='cache', execution_cache_path='', execution_excludepatterns=['tutorials/*', 'tutorials/*/*', 'tutorials/*/*/*', 'how-to/*', 'how-to/*/*', 'how-to/*/*/*'], execution_timeout=30, execution_in_temp=False, execution_allow_errors=False, execution_raise_on_error=False, execution_show_tb=True, merge_streams=True, render_plugin='default', remove_code_source=False, remove_code_outputs=False, scroll_outputs=False, code_prompt_show='Show code cell {type}', code_prompt_hide='Hide code cell {type}', number_source_lines=False, output_stderr='remove', render_text_lexer='myst-ansi', render_error_lexer='ipythontb', render_image_options={}, render_figure_options={}, render_markdown_format='commonmark', output_folder='build', append_css=True, metadata_to_fm=False) Using jupyter-cache at: /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/_build/.jupyter_cache loading intersphinx inventory 'anndata' from https://anndata.scverse.org/en/latest/objects.inv ... loading intersphinx inventory 'bbknn' from https://bbknn.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'cuml' from https://docs.rapids.ai/api/cuml/stable/objects.inv ... loading intersphinx inventory 'cycler' from https://matplotlib.org/cycler/objects.inv ... loading intersphinx inventory 'dask' from https://docs.dask.org/en/stable/objects.inv ... loading intersphinx inventory 'dask_ml' from https://ml.dask.org/objects.inv ... loading intersphinx inventory 'decoupler' from https://decoupler.readthedocs.io/en/stable/objects.inv ... loading intersphinx inventory 'fast_array_utils' from https://fast-array-utils.scverse.org/en/stable/objects.inv ... loading intersphinx inventory 'h5py' from https://docs.h5py.org/en/stable/objects.inv ... loading intersphinx inventory 'holoviews' from https://holoviews.org/objects.inv ... loading intersphinx inventory 'hv_anndata' from https://hv-anndata.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'zarr' from https://zarr.readthedocs.io/en/stable/objects.inv ... loading intersphinx inventory 'ipython' from https://ipython.readthedocs.io/en/stable/objects.inv ... loading intersphinx inventory 'igraph' from https://python.igraph.org/en/stable/api/objects.inv ... loading intersphinx inventory 'leidenalg' from https://leidenalg.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'louvain' from https://louvain-igraph.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'matplotlib' from https://matplotlib.org/stable/objects.inv ... loading intersphinx inventory 'networkx' from https://networkx.org/documentation/stable/objects.inv ... loading intersphinx inventory 'numpy' from https://numpy.org/doc/stable/objects.inv ... loading intersphinx inventory 'pandas' from https://pandas.pydata.org/pandas-docs/stable/objects.inv ... loading intersphinx inventory 'pydeseq2' from https://pydeseq2.readthedocs.io/en/stable/objects.inv ... loading intersphinx inventory 'pynndescent' from https://pynndescent.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'pytest' from https://docs.pytest.org/en/latest/objects.inv ... loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ... loading intersphinx inventory 'rapids_singlecell' from https://rapids-singlecell.readthedocs.io/en/latest/objects.inv ... loading intersphinx inventory 'scipy' from https://docs.scipy.org/doc/scipy/objects.inv ... loading intersphinx inventory 'seaborn' from https://seaborn.pydata.org/objects.inv ... loading intersphinx inventory 'session_info2' from https://session-info2.readthedocs.io/en/stable/objects.inv ... loading intersphinx inventory 'squidpy' from https://squidpy.readthedocs.io/en/stable/objects.inv ... loading intersphinx inventory 'sklearn' from https://scikit-learn.org/stable/objects.inv ... [autosummary] generating autosummary for: api/classes.md, api/datasets.md, api/deprecated.md, api/experimental.md, api/get.md, api/index.md, api/io.md, api/metrics.md, api/plotting.md, api/preprocessing.md, ..., tutorials/experimental/dask.ipynb, tutorials/experimental/index.md, tutorials/experimental/pearson_residuals.ipynb, tutorials/index.md, tutorials/plotting/advanced.ipynb, tutorials/plotting/core.ipynb, tutorials/plotting/index.md, tutorials/trajectories/index.md, tutorials/trajectories/paga-paul15.ipynb, usage-principles.md [autosummary] generating autosummary for: /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.MatrixPlot.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.StackedViolin.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.correlation_matrix.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.diffmap.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.dpt_groups_pseudotime.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.dpt_timeseries.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.draw_graph.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.embedding.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/scanpy.pl.embedding_density.rst, ..., /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.louvain.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.marker_gene_overlap.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.paga.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.rank_genes_groups.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.score_genes.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.score_genes_cell_cycle.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.sim.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.tsne.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.tl.umap.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.write.rst [autosummary] generating autosummary for: /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_COLORMAP.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_COLOR_LEGEND_TITLE.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_COLOR_ON.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_EDGECOLOR.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_EDGELW.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_MAX.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_MIN.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_LARGEST_DOT.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_LEGENDS_WIDTH.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/api/generated/classes/scanpy.pl.DotPlot.DEFAULT_PLOT_X_PADDING.rst, ..., /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Preset.scale.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Preset.score_genes.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Preset.tsne.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Preset.umap.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Verbosity.debug.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Verbosity.error.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Verbosity.hint.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Verbosity.info.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Verbosity.level.rst, /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/generated/scanpy.Verbosity.warning.rst checking bibtex cache... out of date parsing bibtex file /home/docs/checkouts/readthedocs.org/user_builds/icb-scanpy/checkouts/4188/docs/references.bib... parsed 81 entries building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 51 source files that are out of date updating environment: [new config] 266 added, 0 changed, 0 removed /home/docs/.asdf/installs/python/3.13.14/lib/python3.13/importlib/__init__.py:88: ZarrUserWarning: pytest not installed, skipping test suite return _bootstrap._gcd_import(name[level:], package, level) /home/docs/.asdf/installs/python/3.13.14/lib/python3.13/importlib/__init__.py:88: ZarrUserWarning: pytest not installed, skipping test suite return _bootstrap._gcd_import(name[level:], package, level) reading sources... [ 0%] api/classes reading sources... [ 1%] api/datasets reading sources... [ 1%] api/deprecated reading sources... [ 2%] api/experimental reading sources... [ 2%] api/generated/classes/scanpy.pl.DotPlot reading sources... [ 2%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_COLORMAP reading sources... [ 3%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_COLOR_LEGEND_TITLE reading sources... [ 3%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_COLOR_ON reading sources... [ 3%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_EDGECOLOR reading sources... [ 4%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_EDGELW reading sources... [ 4%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_MAX reading sources... [ 5%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_DOT_MIN reading sources... [ 5%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_LARGEST_DOT reading sources... [ 5%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_LEGENDS_WIDTH reading sources... [ 6%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_PLOT_X_PADDING reading sources... [ 6%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_PLOT_Y_PADDING reading sources... [ 6%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_SAVE_PREFIX reading sources... [ 7%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_SIZE_EXPONENT reading sources... [ 7%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_SIZE_LEGEND_TITLE reading sources... [ 8%] api/generated/classes/scanpy.pl.DotPlot.DEFAULT_SMALLEST_DOT reading sources... [ 8%] api/generated/classes/scanpy.pl.DotPlot.legend reading sources... [ 8%] api/generated/classes/scanpy.pl.DotPlot.style reading sources... [ 9%] api/generated/classes/scanpy.pl.MatrixPlot /tmp/tmp6itsgz3g/api/generated/classes/scanpy.pl.MatrixPlot-exec-1.ipynb: Executing notebook using local CWD [mystnb] /tmp/tmp6itsgz3g/api/generated/classes/scanpy.pl.MatrixPlot-exec-1.ipynb: Executed notebook in 10.13 seconds [mystnb] /tmp/tmp6itsgz3g/api/generated/classes/scanpy.pl.MatrixPlot-exec-1.ipynb: Cached executed notebook: ID=1 [mystnb] reading sources... [ 9%] api/generated/classes/scanpy.pl.MatrixPlot.DEFAULT_COLORMAP reading sources... [ 9%] api/generated/classes/scanpy.pl.MatrixPlot.DEFAULT_COLOR_LEGEND_TITLE reading sources... [ 10%] api/generated/classes/scanpy.pl.MatrixPlot.DEFAULT_EDGE_COLOR reading sources... [ 10%] api/generated/classes/scanpy.pl.MatrixPlot.DEFAULT_EDGE_LW reading sources... [ 11%] api/generated/classes/scanpy.pl.MatrixPlot.DEFAULT_SAVE_PREFIX reading sources... [ 11%] api/generated/classes/scanpy.pl.MatrixPlot.style /tmp/tmp6zrvsm8f/api/generated/classes/scanpy.pl.MatrixPlot.style-exec-1.ipynb: Executing notebook using local CWD [mystnb] /tmp/tmp6zrvsm8f/api/generated/classes/scanpy.pl.MatrixPlot.style-exec-1.ipynb: Executed notebook in 0.66 seconds [mystnb] /tmp/tmp6zrvsm8f/api/generated/classes/scanpy.pl.MatrixPlot.style-exec-1.ipynb: Cached executed notebook: ID=2 [mystnb] reading sources... [ 11%] api/generated/classes/scanpy.pl.StackedViolin reading sources... [ 12%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_COLORMAP reading sources... [ 12%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_COLOR_LEGEND_TITLE reading sources... [ 12%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_CUT reading sources... [ 13%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_DENSITY_NORM reading sources... [ 13%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_INNER reading sources... [ 14%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_JITTER reading sources... [ 14%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_JITTER_SIZE reading sources... [ 14%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_LINE_WIDTH reading sources... [ 15%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_PLOT_X_PADDING reading sources... [ 15%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_PLOT_YTICKLABELS reading sources... [ 15%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_PLOT_Y_PADDING reading sources... [ 16%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_ROW_PALETTE reading sources... [ 16%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_SAVE_PREFIX reading sources... [ 17%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_STRIPPLOT reading sources... [ 17%] api/generated/classes/scanpy.pl.StackedViolin.DEFAULT_YLIM reading sources... [ 17%] api/generated/classes/scanpy.pl.StackedViolin.style reading sources... [ 18%] api/generated/scanpy.pl.correlation_matrix /tmp/tmp3txksfnd/api/generated/scanpy.pl.correlation_matrix-exec-1.ipynb: Executing notebook using local CWD [mystnb] /tmp/tmp3txksfnd/api/generated/scanpy.pl.correlation_matrix-exec-1.ipynb: Executed notebook in 0.63 seconds [mystnb] /tmp/tmp3txksfnd/api/generated/scanpy.pl.correlation_matrix-exec-1.ipynb: Cached executed notebook: ID=3 [mystnb] reading sources... [ 18%] api/generated/scanpy.pl.diffmap /tmp/tmps_7m__q1/api/generated/scanpy.pl.diffmap-exec-1.ipynb: Executing notebook using local CWD [mystnb] 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 ============= reading sources... [ 18%] api/generated/scanpy.pl.correlation_matrix /tmp/tmp3txksfnd/api/generated/scanpy.pl.correlation_matrix-exec-1.ipynb: Executing notebook using local CWD [mystnb] /tmp/tmp3txksfnd/api/generated/scanpy.pl.correlation_matrix-exec-1.ipynb: Executed notebook in 0.63 seconds [mystnb] /tmp/tmp3txksfnd/api/generated/scanpy.pl.correlation_matrix-exec-1.ipynb: Cached executed notebook: ID=3 [mystnb] reading sources... [ 18%] api/generated/scanpy.pl.diffmap /tmp/tmps_7m__q1/api/generated/scanpy.pl.diffmap-exec-1.ipynb: Executing notebook using local CWD [mystnb] Loaded Extensions ================= * sphinx.ext.mathjax (9.1.0) * alabaster (1.0.0) * sphinxcontrib.applehelp (2.0.0) * sphinxcontrib.devhelp (2.0.0) * sphinxcontrib.htmlhelp (2.1.0) * sphinxcontrib.serializinghtml (2.0.0) * sphinxcontrib.qthelp (2.0.0) * myst_nb (1.4.0) * sphinx_copybutton (0.5.2) * sphinx.ext.autodoc (9.1.0) * sphinx.ext.intersphinx (9.1.0) * sphinx.ext.doctest (9.1.0) * sphinx.ext.coverage (9.1.0) * sphinx.ext.napoleon (9.1.0) * sphinx.ext.autosummary (9.1.0) * sphinx_exec_jupyter.holoviews (0.3.1) * sphinx_exec_jupyter (0.3.1) * sphinxcontrib.bibtex (2.7.0) * sphinxcontrib.katex (0.9.11) * sphinx_autodoc_typehints (3.12.1) * git_ref (unknown version) * scanpydoc.definition_list_typed_field (0.17.3) * scanpydoc.elegant_typehints (0.17.3) * scanpydoc.rtd_github_links (0.17.3) * scanpydoc.theme (unknown version) * scanpydoc.release_notes (0.17.3) * scanpydoc (0.17.3) * scverse_misc.sphinx_ext (0.1.1) * sphinx.ext.linkcode (9.1.0) * sphinx_design (0.7.0) * sphinx_issues (6.0.0) * sphinxext.opengraph (0.13.0) * param_police (unknown version) * canonical_tutorial (unknown version) * array_support (unknown version) * autosummary_skip_inherited (unknown version) * debug_docstrings (unknown version) * function_images (unknown version) * autosummary_skip_deprecated (unknown version) * myst_ignore_mime_types (unknown version) * returns_prose_wrap (1) * sphinx_book_theme (unknown version) * pydata_sphinx_theme (unknown version) Traceback ========= Traceback (most recent call last): File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/_kernel_mgr/__init__.py", line 166, in _send_cmd return json.loads(out) ~~~~~~~~~~^^^^^ File "/home/docs/.asdf/installs/python/3.13.14/lib/python3.13/json/__init__.py", line 352, in loads return _default_decoder.decode(s) ~~~~~~~~~~~~~~~~~~~~~~~^^^ File "/home/docs/.asdf/installs/python/3.13.14/lib/python3.13/json/decoder.py", line 345, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.asdf/installs/python/3.13.14/lib/python3.13/json/decoder.py", line 363, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 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/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/cmd/build.py", line 432, in build_main app.build(args.force_all, args.filenames) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/application.py", line 442, in build self.builder.build_update() ~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 381, in build_update self.build( ~~~~~~~~~~^ to_build, ^^^^^^^^^ ...<2 lines>... method='update', ^^^^^^^^^^^^^^^^ ) ^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 409, in build updated_docnames = set(self.read()) ~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 525, in read self._read_serial(docnames) ~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 590, in _read_serial self.read_doc(docname) ~~~~~~~~~~~~~^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/builders/__init__.py", line 653, in read_doc doctree = _parse_str_to_doctree( content, ...<6 lines>... transforms=self._registry.get_transforms(), ) File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/util/docutils.py", line 906, in _parse_str_to_doctree transformer.apply_transforms() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx/transforms/__init__.py", line 95, in apply_transforms super().apply_transforms() ~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/docutils/transforms/__init__.py", line 193, in apply_transforms transform.apply(**kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/_resolve.py", line 41, in apply all_results = execute_cells( all_cells, self.document, kernel_name=self.config.exec_jupyter_kernel ) File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/common.py", line 38, in execute_cells parser.parse(notebook_json, document) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/myst_nb/sphinx_.py", line 156, in parse with create_client( ~~~~~~~~~~~~~^ notebook, document_path, nb_config, logger, nb_reader.read_fmt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) as nb_client: ^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/myst_nb/core/execute/base.py", line 80, in __enter__ self.start_client() ~~~~~~~~~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/myst_nb/core/execute/cache.py", line 73, in start_client result = single_nb_execution( self.notebook, ...<3 lines>... meta_override=True, # TODO still support this? ) File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution executenb( ~~~~~~~~~^ nb, ^^^ ...<4 lines>... **kwargs, ^^^^^^^^^ ) ^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/nbclient/client.py", line 1323, in execute return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_core/utils/__init__.py", line 165, in wrapped return loop.run_until_complete(inner) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^ File "/home/docs/.asdf/installs/python/3.13.14/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete return future.result() ~~~~~~~~~~~~~^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/nbclient/client.py", line 693, in async_execute async with self.async_setup_kernel(**kwargs): ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/home/docs/.asdf/installs/python/3.13.14/lib/python3.13/contextlib.py", line 214, in __aenter__ return await anext(self.gen) ^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/nbclient/client.py", line 648, in async_setup_kernel await self.async_start_new_kernel(**kwargs) File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/nbclient/client.py", line 550, in async_start_new_kernel await ensure_async(self.km.start_kernel(extra_arguments=self.extra_arguments, **kwargs)) File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_core/utils/__init__.py", line 214, in ensure_async result = await obj ^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_client/manager.py", line 116, in wrapper raise e File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_client/manager.py", line 107, in wrapper out = await method(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_client/manager.py", line 527, in _async_start_kernel await self._async_launch_kernel(kernel_cmd, **kw) File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/jupyter_client/manager.py", line 431, in _async_launch_kernel connection_info = await self.provisioner.launch_kernel(kernel_cmd, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/_kernel_mgr/__init__.py", line 279, in launch_kernel self.pid = await self.server.fork(kernel_argv, self.log_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/_kernel_mgr/__init__.py", line 112, in wrapper return await method(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/_kernel_mgr/__init__.py", line 135, in fork resp = await self._send_cmd(ForkCmd(cmd="fork", argv=cmd, log=log_path)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/sphinx_exec_jupyter/_kernel_mgr/__init__.py", line 175, in _send_cmd raise RuntimeError(msg) from e RuntimeError: Failed to parse response from fork server: Stdout: Stderr: WARNING:param.notebook_extension: plotly could not be imported, ensure plotly is installed. WARNING:param.notebook_extension: Holoviews plotly extension could not be imported, it raised the following exception: ModuleNotFoundError('No module named 'plotly'') Traceback (most recent call last): File "", line 13, in hv.extension(backend) ~~~~~~~~~~~~^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/holoviews/util/__init__.py", line 716, in __new__ return super().__new__(cls, *backends, **kwargs) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/pyviz_comms/__init__.py", line 65, in __new__ return param.ParameterizedFunction.__new__(cls, *args, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/param/parameterized.py", line 6335, in __new__ return inst.__call__(*args, **params) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/holoviews/ipython/__init__.py", line 93, in __call__ super().__call__(*args, **params) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/home/docs/.local/share/hatch/env/virtual/scanpy/TCvYOmNh/docs/lib/python3.13/site-packages/holoviews/util/__init__.py", line 769, in __call__ raise ImportError("None of the backends could be imported") ImportError: None of the backends could be imported The full traceback has been saved in: /tmp/sphinx-err-yayx3arf.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.