Skip to content

v0.2.0 — Notebook Linter

Choose a tag to compare

@igerber igerber released this 29 Mar 20:43
· 14 commits to main since this release

What's New

Notebook Linter (nbaide lint)

The first tool that scores Jupyter notebooks for AI agent readability.

nbaide lint notebook.ipynb              # Score 0-100 with issue report
nbaide lint notebook.ipynb --fix        # Auto-fix: 56/100 → 80/100 in one command
nbaide lint notebook.ipynb --check      # CI integration (non-zero exit if low score)

10 rules across 4 categories:

  • AIR001-005: Output size, error tracebacks, stream noise, redundant images
  • AID001: Wide DataFrames
  • AIM001: Charts missing titles
  • AIN001-003: Notebook structure, execution state, nbaide metadata

6 of 10 rules are auto-fixable. --fix strips oversized outputs (keeping structured metadata), removes error tracebacks, cleans stream noise, and injects nbaide.install().

Plotly Support

Full plotly figure formatter: scatter, bar, histogram, heatmap, pie, box, violin traces with adaptive data sampling and trend detection.

numpy Support

ndarray formatter with shape, dtype, global stats, per-column stats for 2D arrays, and adaptive data sampling.

Plugin System

nbaide.register(MyType, format_func) — register custom type formatters with minimal ceremony. Late registration works after install().

CLI Read Command

nbaide read notebook.ipynb --cell 7 --type dataframe — extract structured data from any cell's outputs.

Full Changelog

  • 253 tests (up from 75 in v0.1.0)
  • 4 formatters: pandas, matplotlib, numpy, plotly
  • 3 CLI commands: manifest, read, lint
  • Plugin system with late registration
  • Shared trend detection and adaptive sampling utilities
  • CI test workflow across Python 3.10-3.13