Enforce public API docs inventory

HA
1d ago
+1002-377

Closes #444

Summary

  • Centralize the public API inventory for components, factories, Chart methods, and Selection methods.
  • Remove duplicated hardcoded API lists from tests.
  • Validate that public API methods are documented.
  • Document chart view and selection methods, including Selection.rows().
  • Update make check-docs to run the actual documentation checks while keeping example checks separate.

Validation

  • uv run python scripts/check_public_api.py — passed.
  • uv run python -m pytest -q tests/test_public_api.py tests/test_type_surface.py tests/test_verify_local.py — 111 passed.
  • uv run python scripts/verify_docs_local.py — passed: docs tests 115 passed, 2 skipped, 1 xfailed; API check, quickstart, Ruff, and codespell passed.
  • node js/build.mjs — passed.
  • cargo build --release, cargo test (137 passed), cargo clippy --all-targets -- -D warnings, and python scripts/abi_smoke.py (140 checks) — passed.
  • ruff check ., ruff format --check ., ty check python, workflow verification, Python floor check, git diff --check, and all configured pre-commit hooks — passed.
  • Full Python suite: 4,239 passed, 109 skipped, 9 failed on this Windows host. Three benchmark tests require POSIX fork; two browser-path tests assume POSIX paths; one image test observes Windows CRLF writes; three WebGL presentation checks differ under this Windows Chromium/GPU environment.

Summary by CodeRabbit

  • New Features

    • Added documentation for Selection.rows(limit=None), enabling access to selected rows with optional result limits.
    • Added guidance for controlling chart views, applying and clearing selections, and reading chart state.
  • Documentation

    • Clarified notebook display behavior and requirements for Python callbacks.
    • Improved documentation verification, including quickstart validation, formatting, linting, and spelling checks.
  • Tests

    • Expanded coverage for public API and documentation consistency.
    • Added validation for API exports, component types, and documentation coverage.