scverse_doc.registry.intersphinx#

scverse_doc.registry.intersphinx(*extra: str, external: bool = True, core: bool = True) ChainMap[str, tuple[str, None]]#

Build an intersphinx_mapping for this package.

Deliberately not “every scverse package by default”: each entry is an inventory fetched on every build, and all 100+ of them would make a cold docs build slow and give it 100+ chances to fail on someone else’s outage. The default is the handful of packages that almost every scverse docs build actually links to, and anything else is opted into by name.

Parameters:
  • extra – Additional registry package names to include, e.g. intersphinx("scanpy", "muon"). Unknown names raise, so a typo or a renamed package fails the build instead of silently dropping links.

  • external – Whether to include the non-scverse inventories (Python, NumPy, SciPy, pandas, Matplotlib).

  • core – Whether to include the core packages that publish an inventory.

Returns:

  • A mapping ready to assign to intersphinx_mapping.

  • Its registry-derived half is resolved on first access, not here –

  • a conf.py calls this before the extension is loaded,

  • so Raises below applies to that first access rather than to this call.

Raises:
  • KeyError – If a name in extra is not in the registry.

  • ValueError – If a name in extra is registered but publishes no objects.inv to link against.

Examples

>>> mapping = intersphinx("scanpy")
>>> mapping["scanpy"]
('https://scanpy.scverse.org/...', None)