- 0.2.0:
- Added read-only SQLite/DuckDB input support via
{url}#{table_name}, including remote SQLite/DuckDB files that are materialized locally before querying with Polars. - Added
tab-cli[all]to install all optional integrations. - Renamed the
tab viewCLI flag from--max-cell-lento--max-cell-lengthto match themax_cell_lengthconfig key. - Optimized cloud partition-glob expansion for fsspec-backed object stores so common patterns like
date=2026-01-*/*avoid very slowglob(...)calls.
- Added read-only SQLite/DuckDB input support via
- 0.1.9:
- Fixed
tab viewto render cell contents verbatim instead of interpreting bracketed text like[red]...[/red]as Rich markup.
- Fixed
- 0.1.8:
- Improved
tab viewperformance for partitioned directories by reading only as many early partitions as needed for an unfiltered preview. - Added glob-pattern support for multi-file inputs such as
s3://.../date=*/*.parquet. - Speed up Parquet row counting in summaries by reading footer metadata instead of scanning file contents.
- Fixed S3 Polars
storage_optionsto avoid nestedclient_kwargsvalues that could break native reads. - Added
default_num_view_rowsconfig so the defaulttab viewpreview size can be customized. - Added
log_levelconfig so the CLI log level can default from~/.config/tab/config.jsonwhen--log-levelis omitted. - Added
max_cell_lengthconfig sotab viewcan default to truncating long cell values without passing--max-cell-lengthevery time. - Added
num_remote_workersconfig to parallelize remote per-partition summary row counting. - Validated config file value types instead of silently accepting invalid JSON types.
- Fixed the developer
Makefiletargets to point atsrc/tab_cli. - Tightened multi-file summary validation to reject inconsistent schemas, not just mismatched column counts.
tab catnow rejects mixed input formats with a clear error instead of reusing the first reader implicitly.- Cleaned up package metadata and repository hygiene issues including version drift and
uv.lockignore rules.
- Improved
- 0.1.7:
- Optional dependency groups are now named
tab-cli[s3|gs|az], in accordance with the protocol name.
- Optional dependency groups are now named
- 0.1.6:
- Fixed bug in pyarrow loading of Parquet files.
- Added global config file support: settings can be persisted in
~/.config/tab/config.json. Config file values serve as defaults that CLI flags override.
- 0.1.5:
- Added stdin support: use
-as the file path to read from stdin (e.g.cat data.csv | tab view -i csv -). Requires-i/--input-formatsince format cannot be inferred. Works withview,schema,summary,convert, andcat. - Added row-wise JMESPath queries via
--jmespath/--jponview,convert, andcat. Object results become columns; non-object results go into avaluecolumn.--sqland--jpare mutually exclusive. - Implemented
--jpwithLazyFrame.map_batches(...)so row reshaping stays batch-oriented instead of materializing the full transformed dataset up front.
- Added stdin support: use
- 0.1.4:
- Removed
tab sqlsubcommand; SQL is now a--sqloption ontab view,tab convert, andtab cat. - Automatic PyArrow fallback for Parquet files that fail to read with Polars' native reader.
- Removed
- 0.1.3:
- Separate
tab viewfromtab cat:tab viewdoes not convert formats,tab catdoes. - Added
--max-cell-lengthoption totab viewto truncate long cell contents.
- Separate
- 0.1.2:
- Bugfix on reading directories.
- 0.1.1:
- Better credential handling for Azure Blob Storage and Google Cloud Storage.
- 0.1.0: Initial release