Releases: runsascoded/juq
Releases · runsascoded/juq
v0.7.0
What's New
juq nb command group
New unified command group for notebook transformations:
juq nb fmt- format/filter notebook fieldsjuq nb run- run notebook with papermill (alias forjuq papermill run)juq nb clean- clean papermill metadata (alias forjuq papermill clean)
Field filtering in juq nb fmt
Filter notebook fields with short flags:
-s/-Ssources-o/-Ooutputs-a/-Aattachments-i/-Icell IDs-m/-Mcell metadata-c/-Cexecution counts-b/-Bnotebook metadata
Lowercase = keep only, uppercase = drop.
juq nb fmt -s file.ipynb # sources only
juq nb fmt -s -o file.ipynb # sources + outputs
juq nb fmt -O file.ipynb # drop outputs
juq nb fmt -w -S file.ipynb # in-place, drop sourcesBuild system
Switched to hatchling + hatch-vcs for dynamic versioning from git tags.
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
Breaking Changes
write_nb()now infers indent/trailing-newline from existing file - When writing notebooks, formatting is automatically preserved from the original file unless explicitly specified
New Features
juq fmtcommand - Normalize notebook JSON formatting (indent, trailing newline) without other changeswrite_nb()function - Standalone function for writing notebooks with automatic format inference, useful for programmatic notebook manipulation
Bug Fixes
- Fix
-o/--out-pathoption - The-oflag was being silently ignored due to a Click parameter name collision with the positionalOUT_PATHargument. Both now work correctly.
Improvements
- Preserve cell IDs by default -
juq papermill runandjuq papermill cleannow keep cell IDs by default (-I/--keep-ids), reducing git diff noise. Use-D/--drop-idsto restore old behavior. - Tests now run on all Python versions - Removed Python 3.11.13-specific xfail markers by normalizing notebook comparisons (Python version, ANSI codes, cell IDs)
Full Changelog: v0.5.2...v0.6.0
v0.5.2
What's Changed
- Add nbformat dependency, convert to uv by @ryan-williams in #1
- Convert to uv, add nbformat dependency, v0.5.2 by @ryan-williams in #2
Full Changelog: v0.5.1...v0.5.2