Metadata-Version: 2.4
Name: seeparquet
Version: 0.1.0
Summary: Interactive Parquet browser inspired by seej
Author: Jiaxing Liu
License-Expression: MIT
Project-URL: Homepage, https://github.com/p81sunshine/seeparquet
Project-URL: Repository, https://github.com/p81sunshine/seeparquet.git
Project-URL: Issues, https://github.com/p81sunshine/seeparquet/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Database
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyarrow>=12.0.0
Requires-Dist: seej<0.3,>=0.2.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Dynamic: license-file

# seeparquet

`seeparquet` is an interactive terminal browser for Parquet files. It follows
the navigation and rendering conventions of
[`seej`](https://pypi.org/project/seej/) while using PyArrow to read Parquet
row groups in bounded batches.

## Features

- Browse records with the arrow keys or Enter
- Start at an absolute row index without scanning skipped row groups
- Filter records with safe expressions using the `ex` variable
- Select a subset of columns
- Inspect the Arrow schema and Parquet metadata
- Reuse seej renderers and renderer plugins
- Automatically unpack and render gzip/tar data stored in `task_binary`
- Print a fixed number of rows in non-interactive scripts

## Install

```bash
pip install seeparquet
```

From a source checkout, for development:

```bash
pip install -e '.[dev]'
```

## Usage

```bash
# Interactive browsing
seeparquet data.parquet

# Start at row 1000
seeparquet data.parquet -I 1000

# Read only selected columns
seeparquet data.parquet -C id,messages

# Filter rows; repeat -c to combine expressions with AND
seeparquet data.parquet -c 'ex["status"] == "active"'
seeparquet data.parquet -c 'ex.score >= 0.8' -c 'len(ex.messages) > 2'

# Use a seej renderer for selected fields
seeparquet data.parquet -r messages=messages,conversation

# Inspect metadata and schema
seeparquet data.parquet --schema

# Print three matching rows and exit
seeparquet data.parquet --head 3 -R

# Decode task_binary into metadata.json, instruction.md, and other files
seeparquet tasks.parquet -C path,task_binary

# List seej renderers, including installed plugins
seeparquet --list-renderers
```

## Keyboard shortcuts

- Down, Right, or Enter: next matching row
- Up or Left: previous loaded row
- T: toggle rich/raw rendering
- S: show Parquet schema and metadata
- Q or X: quit

Filtering happens after rows are decoded. Column projection and row-index
skipping are pushed into the Parquet reader.
