Skip to main content

Keyboard-driven TUI for browsing columnar data files.

Project description

dataview-tui

dataview-tui is a keyboard-driven terminal UI for inspecting columnar data files. The command line entry point is dview.

The project supports Parquet, ORC, Avro, and optional Lance datasets. It is built for quickly moving between schema, data preview, metadata, and SQL query views without leaving the terminal.

Features

  • Textual-based terminal application with a project-specific dark theme.
  • Automatic format detection by extension and magic bytes.
  • PyArrow-backed Parquet and ORC readers.
  • fastavro-backed Avro reader.
  • Optional Lance reader via the lance extra.
  • Schema, Data, Metadata, and SQL sidebar views.
  • Schema tree entries include field type and nullable state.
  • Metadata view includes file info, row groups/fragments/blocks, and per-column details.
  • DuckDB SQL engine exposing the opened file as data and t.
  • CLI entry points: dview and dataview.

Installation

pipx install dataview-tui
dview --version

For Lance datasets:

pipx install "dataview-tui[lance]"

To update an existing install:

pipx upgrade dataview-tui

To install the current main branch from source:

pipx install git+https://github.com/lyne7-sc/dataview-tui.git

Quick Start

Open supported files or datasets:

dview path/to/file.parquet
dview path/to/file.orc
dview path/to/file.avro
dview path/to/dataset.lance

Choose an initial tab:

dview path/to/file.parquet --tab data

Keyboard

Key Action
q Quit
1 / 2 / 3 Show Schema / Data / Metadata tab
] / [ Next page / previous page
Ctrl+F Filter columns by regex
/ Search cell contents
n / Shift+N Next / previous match
Enter Show full current cell value
s Toggle SQL sidebar
Ctrl+Enter / Ctrl+J / F5 Run SQL

SQL

The SQL engine exposes the opened file as DuckDB views named data and t:

SELECT * FROM data LIMIT 20;
SELECT count(*) FROM t;

Query results are capped by the engine to keep the terminal responsive.

Terminal Setup

The app cannot force a terminal font. For a clearer table and SQL experience, use a monospaced font with readable punctuation and digits, such as JetBrains Mono or Maple Mono.

Development

Install dependencies and run checks:

uv sync --extra dev
uv run pytest -q
uv run ruff check .
uv build

Project layout:

src/dataview/
  app.py
  cli.py
  readers/
  widgets/
tests/

Publishing

Releases are built by GitHub Actions when a GitHub Release is published. PyPI publishing uses PyPI Trusted Publishing, so the PyPI project must be configured with this repository and .github/workflows/release.yml before publishing a release.

Dependencies

Runtime:

  • pyarrow>=12
  • textual>=0.40
  • fastavro>=1.9
  • duckdb>=0.9
  • tree-sitter>=0.25
  • tree-sitter-sql>=0.3.11

Optional:

  • pylance>=0.20 via the lance extra

Development:

  • pytest
  • pytest-asyncio
  • ruff

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dataview_tui-0.2.0.tar.gz (29.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dataview_tui-0.2.0-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

Details for the file dataview_tui-0.2.0.tar.gz.

File metadata

  • Download URL: dataview_tui-0.2.0.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dataview_tui-0.2.0.tar.gz
Algorithm Hash digest
SHA256 29b5ef3a33cbbb89753233b3bb2227301b30efeec90528089b20954092a6d723
MD5 bfdc49293c5c9e6bc2a887ba9eae2cb1
BLAKE2b-256 95cc7f09d9994805f1bf589ebcc7209609cfc73eebaf0e986cf19976711256fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for dataview_tui-0.2.0.tar.gz:

Publisher: release.yml on lyne7-sc/dataview-tui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dataview_tui-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dataview_tui-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dataview_tui-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 932922dcb43db589ea97329b1b6bdb209b36c527694ceea75d8e6fd2c5d05f63
MD5 85c389a216b773e8ab887ff9f3cd8a91
BLAKE2b-256 38517149760d6e48c8898b589e9165baee34a26e1cb40e9158b7318936d292d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for dataview_tui-0.2.0-py3-none-any.whl:

Publisher: release.yml on lyne7-sc/dataview-tui

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page