Files
Alberto Schiabel e7bb45f449 fix(py): normalize generated SDK doc examples (#3689)
This PR:
- normalizes Python SDK reference examples generated from source
docstrings
- rewrites the `Triggers.parse()` docstring so the generated
Flask/FastAPI examples are copy-pasteable
- strips nested Markdown fences before wrapping generated examples in
MDX code fences
- regenerates `docs/content/reference/sdk-reference/python/`
- adds regression coverage for the `Triggers.parse()` generated example
and fenced example normalization
- does not include a changeset because this only changes docs
generation, generated docs, and tests

## Verification

- `cd python && .venv/bin/python -m pytest tests/test_generate_docs.py
-q`
- `cd python && .venv/bin/ruff check --config config/ruff.toml
composio/core/models/triggers.py scripts/generate-docs.py
tests/test_generate_docs.py`
- `cd python && .venv/bin/ruff format --check --config config/ruff.toml
composio/core/models/triggers.py scripts/generate-docs.py
tests/test_generate_docs.py`
- `cd python && .venv/bin/python scripts/generate-docs.py`
- `cd docs && bun install --frozen-lockfile`
- `cd docs && bun run types:check`
2026-06-26 15:12:15 +04:00
..
2025-09-27 13:35:40 +05:30
2025-07-03 18:07:01 -07:00

SDK Documentation Generator

Generates MDX reference docs from Python source using griffe.

Usage

cd python
uv run --with griffe python scripts/generate-docs.py

How it works

  1. griffe extracts docstrings from composio/**/*.py → structured data
  2. generate-docs.py transforms data → MDX files
  3. Output written to docs/content/reference/sdk-reference/python/

Configuration

  • Expected classes: EXPECTED_CLASSES dict maps class name → Composio property
  • Modules to search: CLASS_MODULES list
  • Decorators: DECORATORS_TO_DOCUMENT list

CI

.github/workflows/generate-sdk-docs.yml triggers on changes to python/composio/** and opens a PR with updated docs.