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
lanceextra. - 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
dataandt. - CLI entry points:
dviewanddataview.
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>=12textual>=0.40fastavro>=1.9duckdb>=0.9tree-sitter>=0.25tree-sitter-sql>=0.3.11
Optional:
pylance>=0.20via thelanceextra
Development:
pytestpytest-asyncioruff
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac60aab1f92f306a852e392b0921fab1e66622a8eea9ba4284ccb12e19ae4235
|
|
| MD5 |
a19a370b94bdfc06c29639fc97e22d19
|
|
| BLAKE2b-256 |
c54b2ac306683057ef4b0a0cce06a4d2f31ef15f05fb09d54930265f472605ab
|
Provenance
The following attestation bundles were made for dataview_tui-0.1.0.tar.gz:
Publisher:
release.yml on lyne7-sc/dataview-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataview_tui-0.1.0.tar.gz -
Subject digest:
ac60aab1f92f306a852e392b0921fab1e66622a8eea9ba4284ccb12e19ae4235 - Sigstore transparency entry: 1429985762
- Sigstore integration time:
-
Permalink:
lyne7-sc/dataview-tui@94ca4e2501f8fd8dbe03cd411a469d5e72a34724 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/lyne7-sc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@94ca4e2501f8fd8dbe03cd411a469d5e72a34724 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3748be5a5c940d46727935b6ce2da9ee94848a4f5db958de403c4cb7d51231f1
|
|
| MD5 |
0beac029ab47a54bf5fce3589a398796
|
|
| BLAKE2b-256 |
3b889a7fa098c12e3037abe42a9ae43d3d357da00b40a0a4ae3c4e5f73d66b91
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataview_tui-0.1.0-py3-none-any.whl -
Subject digest:
3748be5a5c940d46727935b6ce2da9ee94848a4f5db958de403c4cb7d51231f1 - Sigstore transparency entry: 1429985766
- Sigstore integration time:
-
Permalink:
lyne7-sc/dataview-tui@94ca4e2501f8fd8dbe03cd411a469d5e72a34724 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/lyne7-sc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@94ca4e2501f8fd8dbe03cd411a469d5e72a34724 -
Trigger Event:
release
-
Statement type: