pydevelop-docs
Universal Python documentation generator with 40+ Sphinx extensions pre-configured. Zero-configuration setup for beautiful, professional documentation.
pydevelop-docs is the docs build system used by the Haive monorepo. It bundles 40+ Sphinx extensions, custom CSS/JS, AutoAPI configuration, and a CLI for one-command documentation builds. Designed for monorepos, but works for any Python project.
Why pydevelop-docs?
Setting up Sphinx for a real project is painful. You need to:
- Pick the right extensions (and there are hundreds)
- Configure AutoAPI to organize docs hierarchically (not flat)
- Wire up theme, CSS, JS, dark mode
- Handle Pydantic models, type hints, mermaid diagrams, code highlighting
- Make it work for monorepos with cross-package linking
- Build all packages in dependency order
pydevelop-docs gives you all of this with one command:
pydevelop-docs build --clean
Features
🚀 Zero-config build
- 40+ Sphinx extensions pre-configured
- Furo theme with dark mode
- AutoAPI hierarchical organization (
autoapi_own_page_level = "module") - Pre-built CSS for code visibility, navigation, dark mode
📦 Monorepo support
- Build all packages in dependency order
- Master documentation hub with cross-package linking
- Per-package builds for individual development
🎨 Beautiful defaults
- Furo theme (purple/violet, dark mode)
- Mermaid + PlantUML diagrams
- Interactive tooltips (sphinx-tippy)
- Code copybutton
- Inline tabs
- AutoAPI hierarchical layout
🔧 Pydantic support
- Auto-detects Pydantic models
- Renders with
autodoc-pydantic - Field validation, default values, examples
🧪 Visual testing
- Playwright screenshot tools
- Light + dark theme captures
- Issue detection (white-on-white, missing nav, etc.)
Extension List (40+)
| Category | Extensions |
|---|---|
| Core | autodoc, napoleon, viewcode, intersphinx, todo, coverage, mathjax |
| API Docs | autoapi, sphinx_autodoc_typehints, autodoc_pydantic |
| Enhanced Docs | myst_parser, copybutton, togglebutton, design, tabs, inline_tabs |
| Diagramming | mermaid, plantuml, blockdiag, seqdiag, graphviz |
| Code | codeautolink, exec_code, runpython |
| UI | tippy, favicon, sphinxemoji |
| Utilities | sitemap, last_updated_by_git, opengraph, reredirects, treeview, enum_tools, sphinx_toolbox |
Installation
pip install pydevelop-docs
Quick Start
For a single Python project
cd your-project/
# Initialize Sphinx config
poetry run pydevelop-docs init
# Build
poetry run pydevelop-docs build --clean
# Serve locally
cd docs/build && python -m http.server 8000
For a monorepo
cd your-monorepo/
# Build all packages with dependency-aware ordering
poetry run pydevelop-docs build-all --clean
# Or use the enhanced builder with monitoring
poetry run pydevelop-docs rebuild-haive --debug --save-log
CLI Commands
# Initialize a new docs setup
pydevelop-docs init
# Build single package
pydevelop-docs build [--clean] [--ignore-warnings]
# Build all packages in monorepo
pydevelop-docs build-all [--clean]
# Enhanced rebuild with monitoring (best for large projects)
pydevelop-docs rebuild-haive --debug --save-log
# Watch mode for development
pydevelop-docs watch
Configuration
Default config
# docs/source/conf.py
from pydevelop_docs.config import get_haive_config
config = get_haive_config(package_name="my-package")
globals().update(config)
Customize
# docs/source/conf.py
from pydevelop_docs.config import get_haive_config
config = get_haive_config(
package_name="my-package",
project="My Project",
author="My Name",
extensions_extra=["my_custom_extension"],
)
globals().update(config)
Visual Testing
# Build and serve
poetry run sphinx-build -b html docs/source docs/build
python -m http.server 8003 --directory docs/build
# Take screenshots (light + dark, all major pages)
poetry run python scripts/debug/comprehensive_screenshot.py 8003
# Specific page
poetry run python scripts/debug/screenshot_specific.py \
"http://localhost:8003/autoapi/index.html" \
"autoapi_test"
Used By
- Haive AI Agent Framework — 8 sub-packages, 1000+ pages of generated docs
License
MIT © pr1m8
Release files for pydevelop-docs 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydevelop_docs-1.0.1.tar.gz | 173.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydevelop_docs-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 385.6 kB
Release files / pydevelop_docs-1.0.1.tar.gz
| Download URL | pydevelop_docs-1.0.1.tar.gz |
|---|---|
| Size | 173.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9ac484634b493d3ba4115408becfd825e9f45acc1cd1c77ff5f311cbe10051fc
|
|
BLAKE2b-256 checksum How to use checksums |
47f3caf87bbd7b7169343a3ed7a1b4736e2b5b5ab49185643602638dae09d388
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / pydevelop_docs-1.0.1-py3-none-any.whl
| Download URL | pydevelop_docs-1.0.1-py3-none-any.whl |
|---|---|
| Size | 212.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ca457e4844f0cf4a0fba8ac18ae6e3df50fdce06ddb25f44468669cef5042f51
|
|
BLAKE2b-256 checksum How to use checksums |
99cd366053985e3686760fe61eba4095e05611dad4634f0bfb4964f105dd1b0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|