Universal Python documentation generator with 40+ Sphinx extensions pre-configured. Zero-configuration setup for beautiful, professional documentation.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pydevelop_docs-1.0.1.tar.gz.
File metadata
- Download URL: pydevelop_docs-1.0.1.tar.gz
- Upload date:
- Size: 173.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ac484634b493d3ba4115408becfd825e9f45acc1cd1c77ff5f311cbe10051fc
|
|
| MD5 |
62f305738bdd67a8dc31e90421ab317c
|
|
| BLAKE2b-256 |
47f3caf87bbd7b7169343a3ed7a1b4736e2b5b5ab49185643602638dae09d388
|
File details
Details for the file pydevelop_docs-1.0.1-py3-none-any.whl.
File metadata
- Download URL: pydevelop_docs-1.0.1-py3-none-any.whl
- Upload date:
- Size: 212.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca457e4844f0cf4a0fba8ac18ae6e3df50fdce06ddb25f44468669cef5042f51
|
|
| MD5 |
6b601053445b060e1dd3a74b95dda620
|
|
| BLAKE2b-256 |
99cd366053985e3686760fe61eba4095e05611dad4634f0bfb4964f105dd1b0b
|