Skip to content

Generate Quarto Markdown for Python API #306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 215 commits into from
Mar 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
7664a2d
Add initial Quarto docs assets from experimental branch
nrichers Jan 23, 2025
35c4b37
Save point
nrichers Jan 24, 2025
4a00912
Save point
nrichers Jan 24, 2025
8f6aa8b
Add API tree script
nrichers Jan 24, 2025
11e4db3
Save point
nrichers Jan 24, 2025
7e2daaf
Save point
nrichers Jan 24, 2025
60eb716
Save point before switching to Griffe API
nrichers Jan 26, 2025
c549bee
Save point before splitting QMD template
nrichers Jan 26, 2025
b61de9d
Merge branch 'nrichers/sc-4660/python-api-with-quarto' of github.com:…
nrichers Jan 26, 2025
f20dbee
Interim commit with mostly working reimplementation of template
nrichers Jan 27, 2025
0ff8294
Re-add more content, fix markup issues, and create sidebar template
nrichers Jan 27, 2025
eb8bd9a
Save point
nrichers Jan 27, 2025
c728bcf
Partially fix nested sidebar entries
nrichers Jan 27, 2025
52cfcc1
Save point
nrichers Jan 27, 2025
8bf70ea
Save ppoint docstring parsing
nrichers Jan 27, 2025
a0f8436
Save point before error message fixes
nrichers Jan 27, 2025
031306a
Save point
nrichers Jan 27, 2025
83931b9
Save point
nrichers Jan 27, 2025
d2afcf7
Save point
nrichers Jan 27, 2025
876a053
Save point
nrichers Jan 27, 2025
49604b4
Save point for errors
nrichers Jan 27, 2025
3619456
Save point before switching to vm_models
nrichers Jan 27, 2025
b67c020
Another save point
nrichers Jan 27, 2025
5e945be
Got vm_models working
nrichers Jan 27, 2025
0b89d1b
Save point with docstring issues
nrichers Jan 28, 2025
c13c5e3
Save point with partial sidebar fixes
nrichers Jan 28, 2025
0c55372
Save point with partial sidebar fixes
nrichers Jan 28, 2025
618efe6
Sidebar fragment contains correct file embeds
nrichers Jan 28, 2025
19c25f4
Got sidebar working
nrichers Jan 29, 2025
b3bd81c
Save point
nrichers Jan 29, 2025
0951779
Save point
nrichers Jan 29, 2025
4588368
Save point with first complete sidebar
nrichers Jan 30, 2025
5f7559e
Save point with first complete sidebar
nrichers Jan 30, 2025
f1efb98
Sidebar works
nrichers Jan 30, 2025
f620893
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Jan 30, 2025
f523ec8
Add root-level classes
nrichers Jan 30, 2025
1878dbe
Undo save point
nrichers Jan 30, 2025
68ab754
Sidebar fixes complete
nrichers Jan 30, 2025
0730e47
Add codeblock template comments
nrichers Jan 31, 2025
838a135
Markup fixes
nrichers Jan 31, 2025
4ddbdac
Fix sidebar regression
nrichers Jan 31, 2025
14f9ec6
Fix sidebar regression
nrichers Jan 31, 2025
7129470
Undo stray commit
nrichers Jan 31, 2025
c2d2f9c
Save point
nrichers Jan 31, 2025
0d788e5
Save point
nrichers Jan 31, 2025
89c6c4b
Save point
nrichers Jan 31, 2025
eb84a06
Likely safe save point
nrichers Feb 1, 2025
db05cca
Halfway through switching to better signatures
nrichers Feb 1, 2025
fbe9941
Halfway through switching to better signatures
nrichers Feb 1, 2025
8a0cca5
Continue to improve snignature blocks and remove duplication
nrichers Feb 2, 2025
ede3cf6
Remove dead code
nrichers Feb 2, 2025
b35a72d
More signatures fine-tuning
nrichers Feb 2, 2025
7406204
More signatures fine-tuning
nrichers Feb 2, 2025
1f2d24b
Save point for return annotations
nrichers Feb 3, 2025
5140934
Save point with most return annotations fixed but still getting NoneN…
nrichers Feb 3, 2025
863007d
Save point with most return annotations fixed but still getting NoneN…
nrichers Feb 3, 2025
2dba7c1
Fix docstrings
nrichers Feb 3, 2025
3d91dea
Fix docstrings
nrichers Feb 3, 2025
cb66108
Fixed docstring defaults when set to None
nrichers Feb 3, 2025
0a7fe1c
Save point for type annotations rework
nrichers Feb 5, 2025
ec84f2f
Undo new processing functions in script
nrichers Feb 5, 2025
38b504f
Fix docstring regression
nrichers Feb 5, 2025
e947204
Fix docstrings in Python API
nrichers Feb 5, 2025
b63c4ef
Fix Python API docstring
nrichers Feb 5, 2025
f9c3611
Fix Python API docstring
nrichers Feb 5, 2025
72951a0
Save point while fixing some docstrings
nrichers Feb 5, 2025
9883d1d
Fixed short and long description regression
nrichers Feb 5, 2025
7e02ac8
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Feb 6, 2025
352ec37
Minor content update
nrichers Feb 8, 2025
59c0121
Fix type class annotations
nrichers Feb 9, 2025
9d29514
Fix type class annotations
nrichers Feb 9, 2025
89a7045
Save point types fine-tuning
nrichers Feb 9, 2025
5c7aea6
Save point types fine-tuning
nrichers Feb 10, 2025
f33043e
Add missing default to docstring and fix grammar
nrichers Feb 10, 2025
f1b1443
Fix default handling in docstrings, fix class for type keywords
nrichers Feb 10, 2025
2cd783f
Fix default handling in docstrings, fix class for type keywords
nrichers Feb 10, 2025
40f1168
Fix default handling in docstrings, fix class for type keywords
nrichers Feb 10, 2025
2d74a7c
Fix wording
nrichers Feb 10, 2025
f744522
Output class methods on single line and append colon for classes and …
nrichers Feb 10, 2025
4001362
Output class methods on single line and append colon for classes and …
nrichers Feb 10, 2025
9a76661
Remove colons for return annotations
nrichers Feb 10, 2025
e33ecb7
Remove colons for return annotations
nrichers Feb 10, 2025
1ba2fc6
Fix variadic and positional parameters
nrichers Feb 12, 2025
5515e2d
Save point
nrichers Feb 12, 2025
b1730a4
Fix single line vs multiline signatures regression
nrichers Feb 12, 2025
300dd81
Reapply fix for ExprList
nrichers Feb 12, 2025
8ad52bc
Save point
nrichers Feb 12, 2025
fa42eb3
Save point with debug comments in types.jinja2
nrichers Feb 19, 2025
0100faf
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Feb 19, 2025
8bb20c7
Fixed final raw JSON output for Expr* types
nrichers Feb 20, 2025
cf3dcc8
Save point before descending into experimental darkness
nrichers Feb 21, 2025
e75ce77
Minor type fix
nrichers Feb 21, 2025
a571db7
Interim save point
nrichers Feb 21, 2025
f530eb2
Fixed ExprAttribute rendering for inherited members
nrichers Feb 21, 2025
20f4be1
Remove debug statements
nrichers Feb 21, 2025
6fff53b
Save point for class names in signatures for inherited members
nrichers Feb 21, 2025
869d5ad
Fix class for constructors that have multiple parameters
nrichers Feb 21, 2025
a503405
Fix raw JSON issue with ExprCall
nrichers Feb 21, 2025
ab0485a
Generalize Expr* type handling further
nrichers Feb 21, 2025
6e1544b
Better decorator formatting when >1 decorator
nrichers Feb 21, 2025
281af1d
Add metadata and CSS files
nrichers Feb 21, 2025
51568b7
Fix return annotation None and improve handling of @ in decorators
nrichers Feb 21, 2025
8847951
Fixed display of self in methods
nrichers Feb 21, 2025
1a72190
Fix Python API warnings
nrichers Feb 21, 2025
5da00f0
Save point after fixing Python API, did it work?
nrichers Feb 21, 2025
e6e7804
Switch from reference/ to validmind/ path to avoid breaking links
nrichers Feb 22, 2025
13f0327
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Feb 22, 2025
d1a4eb3
CSS rename, latest version
nrichers Feb 22, 2025
f403c65
Docstring edits
nrichers Feb 22, 2025
9c73ca9
Generate QMD
nrichers Feb 22, 2025
1485050
Fix CSS embed in metadata file
nrichers Feb 22, 2025
bcb5fb0
Fix docstring handling bug with newlines
nrichers Feb 22, 2025
3c01976
Improve alias handling to catch all root-level aliases safely
nrichers Feb 23, 2025
9293f8f
Clarify Torch TensorDataset is supported
nrichers Feb 24, 2025
b5dd363
Remove ToC and sidebar decoration to help with long names
nrichers Feb 24, 2025
9a8ddf2
Add special case for vm_models
nrichers Feb 24, 2025
5dfb9a4
Fix return type annotations
nrichers Feb 25, 2025
63b9bd3
Improve type annotation coverage
nrichers Feb 25, 2025
e86b74d
Fix for missing vm_model classes and methods
nrichers Feb 25, 2025
9dc854d
Fix inherited members info
nrichers Feb 25, 2025
68d3698
Improve formatting for type_info in docstrings
nrichers Feb 25, 2025
8930be1
Fix ordering for class attributes
nrichers Feb 25, 2025
515a5fa
Add special case for cleaning up tests
nrichers Feb 25, 2025
069f2ba
Try to fix code test errors
nrichers Feb 25, 2025
61ebd4d
Fix more code test errors
nrichers Feb 25, 2025
7c1d7bd
Fix yet more code test errors
nrichers Feb 25, 2025
af2a499
Interim save point on better control over ordering
nrichers Feb 26, 2025
70faabd
Remove unused _quarto.yml
nrichers Feb 26, 2025
c835224
Fix return annotation for run_test_suite
nrichers Feb 26, 2025
55a7e15
Fix some return annotations
nrichers Feb 27, 2025
22fd453
Minor punctuation fix
nrichers Feb 27, 2025
e63ed8a
Fix docstring for inspect()
nrichers Feb 27, 2025
17cc0cf
Remove API tree script I used to explain the API docstrings to myself
nrichers Feb 27, 2025
3223c64
Initial README.md draft
nrichers Feb 27, 2025
f7781d6
Move diagram in README.md
nrichers Feb 27, 2025
a420724
Start using template for errors
nrichers Feb 27, 2025
00620c3
Update Quarto source
nrichers Feb 27, 2025
c7d99e1
Save point for better error messages
nrichers Feb 27, 2025
8511994
Better API error handling
nrichers Feb 27, 2025
435ca43
Error message formatting & fixes
nrichers Feb 27, 2025
15f76aa
Interim save point for fixing inherited BaseError content
nrichers Feb 27, 2025
70baed6
Save point with signature and inherited member improvements
nrichers Feb 27, 2025
9528d7d
Save point for error messages
nrichers Feb 27, 2025
1cc49f2
Interim save point for inherited member fixes
nrichers Feb 27, 2025
b9f5c0c
Remove inherited members for errors from test descriptions
nrichers Feb 27, 2025
607c22e
Clean up inherited members
nrichers Feb 27, 2025
80ed22a
Finally fixed the elusive description method for BaseError
nrichers Feb 28, 2025
d75f038
Fix minor formatting issue
nrichers Feb 28, 2025
844ec2e
Remove hardcoding
nrichers Feb 28, 2025
b2ed0af
Save point before chewing out Sonnet
nrichers Feb 28, 2025
a87d5b6
Remove more hardcoded content after a frank discussion with Sonnet
nrichers Feb 28, 2025
7323154
Consolidate signature handling
nrichers Feb 28, 2025
7626997
Improve handling for class param vs params
nrichers Feb 28, 2025
f2c2c29
Improve sidebar
nrichers Feb 28, 2025
dce652b
Hide test suite class info from main page
nrichers Feb 28, 2025
3eab8ea
Improve filtering out non-public functions
nrichers Feb 28, 2025
5dbe54a
Add version number to sidebar & hide ToC for root function topic
nrichers Feb 28, 2025
987f45a
Add workflow for Quarto docs
nrichers Feb 28, 2025
2c171bd
Add test building Quarto docs to python.yaml
nrichers Feb 28, 2025
7cd9860
Ignore docs/** path in workflows
nrichers Feb 28, 2025
8bdc738
Make version in sidebar fancier
nrichers Feb 28, 2025
2863338
Fix missing RawData children in sidebar
nrichers Feb 28, 2025
80ac81a
Simplify inherited member formatting
nrichers Feb 28, 2025
ea11028
Omit inherited members heading when there are none
nrichers Feb 28, 2025
9e9b499
Fix return annotation for pandas.DataFrame
nrichers Feb 28, 2025
095a689
Fix function signatures when async
nrichers Feb 28, 2025
73dd3b4
Handle module-level aliases like describe_test_suite
nrichers Mar 1, 2025
571fed8
Remove debug statement from script
nrichers Mar 1, 2025
bdc6d54
ValidMind CSS tweaks
nrichers Mar 2, 2025
f50a9d3
Update README.md
nrichers Mar 2, 2025
4b8002e
Update mermaid diagram
nrichers Mar 2, 2025
67c1766
Update mermaid diagram, again
nrichers Mar 2, 2025
d1788e7
Update mermaid diagram, take three
nrichers Mar 2, 2025
f051480
Update mermaid diagram, take four
nrichers Mar 2, 2025
15da15f
Update mermaid diagram, take five
nrichers Mar 2, 2025
cc274cf
Update mermaid diagram, take six
nrichers Mar 2, 2025
5b368b1
Edit README.md
nrichers Mar 2, 2025
ef9c4f4
Edit README.md
nrichers Mar 2, 2025
2e23def
Add linter to README.md
nrichers Mar 2, 2025
dd317a7
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Mar 2, 2025
9e53f0e
Readme & CSS tweaks
nrichers Mar 3, 2025
5cf8f48
CSS tweak for codeblocks
nrichers Mar 3, 2025
31238a1
Fix flake8 whitespace error
nrichers Mar 3, 2025
4a399c8
Update Quarto Markdown source
nrichers Mar 4, 2025
d175b57
Add dependencies to pyproject.toml and GitHub workflow
nrichers Mar 4, 2025
311c747
Switch .html links in titles to .qmd
nrichers Mar 5, 2025
3770fd5
Class prefix and function suffix CSS experiment
nrichers Mar 5, 2025
97d4529
More class prefix and function suffix CSS experiments
nrichers Mar 5, 2025
d5654c0
Save point for sidebar fragment generation fixes after CSS experiments
nrichers Mar 5, 2025
becec58
Fix sidebar navigation fragment after CSS changes
nrichers Mar 5, 2025
0812848
Fix headings that link to themselves
nrichers Mar 5, 2025
503c63d
Remove class prefixes from return annotation links
nrichers Mar 5, 2025
00d9079
Improve handling for external types and return annotation linking
nrichers Mar 5, 2025
db03bd5
Enable parameter type linking for internal types
nrichers Mar 5, 2025
f7d409e
Fix case-sensitive external type link
nrichers Mar 5, 2025
0d97eb1
Add HTML to external types
nrichers Mar 5, 2025
b67d32a
Improve TestID handling
nrichers Mar 5, 2025
504c84d
Improve unit metric handling in signatures
nrichers Mar 5, 2025
b221786
Update docs/_metadata.yml
nrichers Mar 6, 2025
9da36e4
Fix decorators macro
nrichers Mar 7, 2025
c2f29b0
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Mar 12, 2025
49680b0
Update poetry.lock
nrichers Mar 12, 2025
b5aa4c0
Fix unit tests, round 1
nrichers Mar 12, 2025
9a06c3a
Fix unit tests, round 2
nrichers Mar 12, 2025
8ad9b64
Fix unit tests, round 3
nrichers Mar 12, 2025
2f844e3
Apply # noqa: C901 to complex tests
nrichers Mar 12, 2025
4f164fe
Fix invalid table format errors
nrichers Mar 12, 2025
c5952c5
Try fixing pandas.io.formats error
nrichers Mar 13, 2025
3720308
Fix TableOutputHandler to address invalid table format errors
nrichers Mar 13, 2025
1a91120
Fix C901 'TableOutputHandler.process' is too complex error
nrichers Mar 13, 2025
25e4858
Refactor test to reduce complexity and undo # noqa: C901
nrichers Mar 13, 2025
b62aba4
Fix annotation warnings in utils.py
nrichers Mar 13, 2025
96e038d
Improve sidebar spacing
nrichers Mar 19, 2025
46048af
Found correct global fix for smart quotes
nrichers Mar 20, 2025
ad22026
Merge branch 'main' of github.com:validmind/validmind-library into nr…
nrichers Mar 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- prod
- release-v1
paths-ignore:
- 'docs/_build/**'
- 'docs/**'

permissions:
contents: read
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/python.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ on:
push:
branches: [main]
paths-ignore:
- 'docs/_build/**'
- 'docs/**'
- 'notebooks/**'
- 'scripts/**'
pull_request:
branches: ['*']
paths-ignore:
- 'docs/_build/**'
- 'docs/**'
- 'notebooks/**'
- 'scripts/**'

Expand Down Expand Up @@ -79,3 +79,7 @@ jobs:
# Tests that we can build the docs
- name: Generate Docs
run: make docs

# Tests that we can build the quarto docs
- name: Generate Quarto Docs
run: make quarto-docs
61 changes: 61 additions & 0 deletions .github/workflows/quarto-docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# This workflow will install Python dependencies and generate
# Quarto documentation using Griffe for API extraction and
# Jinja2 templates for the docs and navigation.
name: Python Library API docs for Quarto

on:
push:
branches:
- main
- release-v1
paths-ignore:
- 'docs/**'
workflow_dispatch:
inputs:
note:
description: 'Provide a description of the changes'
required: true
default: 'Update quarto docs'

permissions:
contents: write

jobs:
quarto-docs:
runs-on:
group: ubuntu-vm-large

steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GH_TOKEN }}

- name: Install poetry
run: pipx install poetry

- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'poetry'

- name: Install Dependencies
run: |
poetry env use python3.11
poetry install -E huggingface -E llm
poetry run pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu
poetry run pip install aequitas fairlearn vl-convert-python
poetry run pip install griffe mdformat docstring_parser

- name: Generate Quarto Docs
run: make quarto-docs

- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
default_author: github_actions
message: 'Generate quarto docs'
add: 'docs/'
remove: 'docs/_build/'
pathspec_error_handling: ignore
push: true
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,6 @@ my_tests/
*.sqlite
*.db
*.db-journal

# Quarto docs
docs/validmind.json
14 changes: 13 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,18 @@ else
poetry run pdoc validmind -d google -t docs/templates --no-show-source --logo https://vmai.s3.us-west-1.amazonaws.com/validmind-logo.svg --favicon https://vmai.s3.us-west-1.amazonaws.com/favicon.ico
endif

quarto-docs:
# Clean old files
rm -f docs/validmind.json
rm -rf docs/validmind
mkdir -p docs/validmind

# Generate API JSON dump
poetry run python -m griffe dump validmind -f -o docs/validmind.json -d google -r -U

# Generate Quarto docs from templates
poetry run python scripts/generate_quarto_docs.py

version:
@:$(call check_defined, tag, new semver version tag to use on pyproject.toml)
@poetry version $(tag)
Expand Down Expand Up @@ -78,7 +90,7 @@ ensure-clean-notebooks:
# Quick target to run all checks
check: copyright format lint test verify-copyright verify-exposed-credentials ensure-clean-notebooks

.PHONY: docs
.PHONY: docs quarto-docs

notebook:
@python notebooks/templates/e2e_template.py
Expand Down
104 changes: 104 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Generating Quarto Markdown for the Python API

This directory includes templates, macros, CSS, and Quarto Markdown output for generating the ValidMind Library (Python API) reference documentation for our docs site.

- `templates/` — Jinja2 templates and macros for generating Quarto Markdown
- `validmind.css` — CSS for Python API reference styling
- `_metadata.yml` — Quarto configuration file
- `_sidebar.yml` — Generated sidebar navigation fragment for Quarto
- `validmind.qmd`, `validmind/` — Generated API documentation matching the codebase and pdoc structure

## Testing locally

To generate Quarto Markdown locally:

```sh
make quarto-docs
```

## How it works

1. Griffe extracts API information from the API codebase and dumps it to a JSON file
2. A Python script extracts API information from the JSON, processes it, and passes it to Jinja2 templates
3. Jinja2 templates and shared macros transform this information into Quarto Markdown files
4. A sidebar navigation fragment is generated based on the output file structure
5. CI/CD integration tests the Quarto docs generation and commits the output
6. Documentation repo: Integrates the Quarto files with the docs site source

```mermaid
flowchart LR
make[make quarto-docs] --> clean[Clean old files]
clean --> mkdir[Create folder structure]
mkdir --> Griffe[Dump API JSON]
Griffe --> processJSON[Process API JSON]

processJSON --> output[Generate QMD files]
processJSON --> nav[Generate _sidebar.yml]

subgraph "Templates"
templates[Jinja2 Templates] --> mod_t[module.qmd.jinja2]
templates --> class_t[class.qmd.jinja2]
templates --> func_t[function.qmd.jinja2]
templates --> sidebar_t[sidebar.qmd.jinja2]
templates --> version_t[version.qmd.jinja2]
templates --> errors_t[errors.qmd.jinja2]
templates --> macros[macros/*.jinja2]
end

templates --> processJSON

output --> test[Integration tests]
nav --> test

subgraph "CI/CD"
test --> commit[Commit generated docs]
end
```

### `Makefile`

- `make quarto-docs` — Generates Quarto Markdown from the Python API
- `make python-docs` — In the documentation repo: Clones this repo, copies the generated Quarto Markdown files over into the docs site source

### GitHub actions

- `.github/integration.yaml` and `.github/python.yaml` — Tests Quarto Markdown generation
- `.github/quarto-docs.yaml` — Generates and commits Quarto Markdown docs

### Jinja2 Templates

Located in `templates/`, these define how Quarto Markdown is output:

- `module.qmd.jinja2` — Documents Python modules, including functions and classes
- `version.qmd.jinja2` — Displays library version information
- `class.qmd.jinja2` — Details class documentation with inheritance and methods
- `function.qmd.jinja2` — Formats functions, parameters, and return values
- `errors.qmd.jinja2` — Documents error classes with sorting
- `sidebar.qmd.jinja2` — Generates navigation structure
- `macros/docstring.jinja2` — Parses and structures Google-style docstrings
- `macros/signatures.jinja2` — Formats function signatures and parameters
- `macros/types.jinja2` — Handles complex type annotations
- `macros/decorators.jinja2` — Documents function and class decorators
- `macros/navigation.jinja2` — Generates page linking

### Python script

Located in `scripts/generate_quarto_docs.py`, handles the Quarto Markdown generation:

- Extracts API data using Griffe.
- Processes data with Jinja2 templates.
- Lints and writes output to `docs/`

#### Features

- **Private/public filtering** — Controls which members are included
- **Root module handling** — Special processing for the `validmind` module
- **Alias resolution** — Maps imported symbols to original definitions
- **Docstring normalization** — Cleans up formatting inconsistencies
- **Inherited members** — Documents inherited methods, especially for error classes
- **Errors module handling** — Sorts and structures error class documentation
- **Class discovery** — Finds and documents classes across modules
- **Test suite handling** — Documents test suites and their aliases
- **VM models handling** — Ensures proper documentation of core model classes
- **Exclusions** — Omits internal utilities and logging helpers
- **Sidebar generation** — Builds hierarchical navigation from module structure
10 changes: 10 additions & 0 deletions docs/_metadata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
format:
html:
grid:
sidebar-width: 450px
margin-width: 450px
page-layout: full
from: markdown-smart
css:
- validmind.css
- /developer/developer.css
Loading