# tablescope

`tablescope` is a Marimo-oriented lazy table viewer. It accepts a dataframe-like
object that Narwhals can normalize, keeps sort and aggregation work pushed down
to the underlying engine, and renders a Solid + TanStack data grid via
`anywidget`.

## Install

```bash
pip install tablescope
```

## Status

This is a first pass focused on:

- lazy row paging with backend pushdown
- arbitrary fraction jumps through the dataset
- per-column profile stats
- value counts for enum-like columns
- keyboard navigation in the grid

## Usage

```python
import marimo as mo
import polars as pl
import tablescope

lf = pl.scan_parquet("data.parquet")
viewer = tablescope.view(lf, page_size=100)
viewer
```

## Release

Use the `justfile` to build and validate the package artifacts before
uploading them to PyPI.

```bash
just check-release
just publish
```

## Frontend build

The frontend bundle is generated from `frontend/src` and inlined into
`src/tablescope/_frontend.py`.

```bash
npm install
npm run build
```

## Python workflow

```bash
just sync
just test
```
