Metadata-Version: 2.4
Name: dx
Version: 2.1.3a202605021740
Summary: nteract/dx — efficient display and blob-store uploads from Python kernels
Author-email: Kyle Kelley <rgbkrk@gmail.com>
License-Expression: BSD-3-Clause
Requires-Python: >=3.10
Provides-Extra: pandas
Requires-Dist: pandas>=2.0; extra == 'pandas'
Requires-Dist: pyarrow>=14; extra == 'pandas'
Provides-Extra: polars
Requires-Dist: polars>=0.20; extra == 'polars'
Description-Content-Type: text/markdown

# dx

**Smart DataFrame display for Jupyter, built for [nteract](https://nteract.io).**

`dx` upgrades how pandas and polars DataFrames render in a notebook. Instead of serializing megabytes of HTML into your output cells, dx hands the data to nteract's content-addressed blob store and renders it through a fast Arrow/parquet grid. Your `.ipynb` stays tiny, the cell stays snappy, and AI agents reading the notebook get a compact per-column summary — dtypes, ranges, distinct/top values, null counts — instead of raw bytes.

## Install

```bash
# pandas
pip install --pre "dx[pandas]"

# polars
pip install --pre "dx[polars]"

# both
pip install --pre "dx[pandas,polars]"
```

Python 3.10+. Only pre-release wheels are being published while the library surface settles — the stable channel is frozen. See [#2217](https://github.com/nteract/desktop/issues/2217). Most nteract users don't install `dx` directly: the kernel launcher calls `dx.install()` during bootstrap, so DataFrames render through the blob store inside the nteract desktop app automatically.

## Use

```python
import dx
dx.install()

import pandas as pd
df = pd.read_parquet("large-dataset.parquet")
df  # rendered via nteract's sift grid — no base64 in your .ipynb
```

That's it. `dx.install()` is idempotent and automatically called by nteract's kernel bootstrap, so most nteract users never touch it directly. Calling it yourself is fine when you want the behavior in an environment nteract didn't configure for you (a standalone kernel, a test harness, etc.).

## What you get

- **Fast rendering.** Large DataFrames stream through the blob store; the `.ipynb` payload stays small.
- **AI-friendly summaries.** Every DataFrame ships a `text/llm+plain` column summary — dtypes, numeric ranges, string distinct/top values, null counts — so agents reason about the shape without materializing the whole table.
- **Visualization integration.** [Altair](https://altair-viz.github.io) and [Plotly](https://plotly.com/python/) are automatically switched to their nteract renderers for interactive output that works inside nteract's isolated iframe sandbox.
- **Narwhals-aware.** [narwhals](https://narwhals-dev.github.io/narwhals/)-wrapped DataFrames are unwrapped via `.to_native()` and dispatched through the pandas/polars path.
- **Safe outside nteract.** When no nteract runtime is reachable, `dx.install()` is a no-op. `import dx` is safe from plain Python, vanilla Jupyter, scripts, CI.

## Links

- Homepage: <https://nteract.io>
- Source & issues: <https://github.com/nteract/desktop>
- License: BSD-3-Clause
