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.1.0.tar.gz (22.6 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.1.0-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dataview_tui-0.1.0.tar.gz
  • Upload date:
  • Size: 22.6 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.1.0.tar.gz
Algorithm Hash digest
SHA256 ac60aab1f92f306a852e392b0921fab1e66622a8eea9ba4284ccb12e19ae4235
MD5 a19a370b94bdfc06c29639fc97e22d19
BLAKE2b-256 c54b2ac306683057ef4b0a0cce06a4d2f31ef15f05fb09d54930265f472605ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for dataview_tui-0.1.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: dataview_tui-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.6 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3748be5a5c940d46727935b6ce2da9ee94848a4f5db958de403c4cb7d51231f1
MD5 0beac029ab47a54bf5fce3589a398796
BLAKE2b-256 3b889a7fa098c12e3037abe42a9ae43d3d357da00b40a0a4ae3c4e5f73d66b91

See more details on using hashes here.

Provenance

The following attestation bundles were made for dataview_tui-0.1.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