Install & Compatibility
Where this runs
tested against v0.3.7 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.940 runs
installs and imports cleanly · install 0.0s · import 0.000s · 107.3MB
glibcpy 3.10–3.940 runs
installs and imports cleanly · install 6.3s · import 0.000s · 108MB
110MB installed
● package 110MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
setup
✓ from exhale import setup
✗ from exhale import generate
cleanup_files
✓ from exhale import cleanup_files
environment_ready
✓ from exhale import environment_ready
To quickly integrate Exhale, first run `sphinx-quickstart` in your documentation directory. Then, modify your `conf.py` to include `breathe` and `exhale` in your extensions. Configure `breathe_projects`, `breathe_default_project`, and the `exhale_args` dictionary. Ensure Doxygen XML output is correctly configured. Finally, link the generated API root file (`api/library_root.rst` by default) into your main `index.rst` using a `toctree` directive.
import os
import sys
# Add these to your conf.py after `extensions` list and other configurations
# Assuming your Doxygen XML output is in `_build/doxyoutput/xml` relative to docs/conf.py
# and your C++ source is in `../include` relative to docs/
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.autosummary',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
'sphinx.ext.viewcode',
'breathe',
'exhale'
]
# Breathe configuration
breathe_projects = {"My Project": "_build/doxyoutput/xml"}
breathe_default_project = "My Project"
# Exhale configuration
exhale_args = {
"doxygenIndexXMLPath": "_build/doxyoutput/xml/index.xml",
"containmentFolder": "./api",
"rootFileName": "library_root.rst",
"rootFileTitle": "Library API",
"doxygenStripFromPath": "..",
"createTreeView": True,
"exhaleExecutesDoxygen": True,
"exhaleDoxygenStdin": "INPUT = ../../include"
}
# Tell sphinx what the primary language being documented is.
primary_domain = 'cpp'
# Tell sphinx what the pygments highlight language should be.
highlight_language = 'cpp'
# If you choose to execute Doxygen separately, remove 'exhaleExecutesDoxygen' and 'exhaleDoxygenStdin'
# and ensure Doxygen output is generated before Sphinx build.
# Add 'api/library_root' to a toctree directive in your index.rst, e.g.:
#
# .. toctree::
# :maxdepth: 2
# :caption: Contents:
#
# api/library_root
Upgrade
Version history
0.3.7latest on PyPI · released Jan 21, 2024
Audit
Dependencies
sphinxrequiredRequired Python package; Exhale is a Sphinx extension.
breatherequiredRequired Python package for parsing Doxygen XML into Sphinx directives.
doxygenrequiredRequired external C++ documentation tool to generate XML input for Exhale.
beautifulsoup4requiredPython dependency for parsing generated Doxygen XML documentation.
lxmlrequiredPython dependency for parsing generated Doxygen XML documentation.
sixrequiredPython dependency, historically for Python 2/3 compatibility, though Exhale 0.3.x requires Python 3.8+.