table3
Paged, theme-aware tables in notebook output, the way R notebooks print a data frame. It is the shared table display of tidy3, tidy3a and stats3, released on its own so each can show tables without depending on the others. It needs only polars.
import polars as pl
import table3
penguins = pl.read_csv(
"https://raw.githubusercontent.com/allisonhorst/palmerpenguins/main/inst/extdata/penguins.csv",
null_values="NA",
)
table3.show(penguins); # ten rows a page, every row up to n=1000
table3.show(penguins, page_size=25); # bigger pages
table3.show(penguins, pages=False, height=300); # one box that scrolls
table3.show(penguins, digits=4); # four significant digits
Column names and types sit in the header, missing values show as null,
floats print as polars' text preview prints them (or to digits=
significant digits, or digits="full"), and long values are cut with the
full value on hover. Wide tables show as many columns as fit, with
arrows to the rest. The table follows the notebook's light or dark theme in
VS Code, JupyterLab and SolveIt.
Explore
table3.view(penguins) opens a data explorer, as R's View() does: one
grid of up to 10,000 rows with a search box, headers that sort on a click,
and a filter under each column (from–to for numbers and dates, "contains"
for text, a pick-list for columns of few values).
table3.view(penguins);
table3.view(penguins, n=50_000, height=600); # more rows, a taller grid
In SolveIt, which sends every cell's code and output to its AI, view()
hides its cell from the AI (the red eye), so the explorer's rows don't fill
the model's context; the cell's code is hidden with them. view(hide=False)
keeps a cell visible, and table3.autohide(False) stops hiding for the
session.
show() and view() return what they were given, so they can sit in the
middle of a pipe.
As a cell's last line the notebook also prints that value; end the line with
; to hide it.
Your own frames
A package makes its frames print this way by returning table3.html(self)
from _repr_html_. An object with a __table3__ method shows without table3
importing its package:
def __table3__(self, n):
return first_n_rows_as_polars, total_rows_or_None, "caption or None"
def _repr_html_(self):
return table3.html(self, n=100)
More
docs/design.md records the design and what each package
adds, and docs/explorer.md the explorer's. table3 was
first released as view3 0.1 and 0.2, where show() was view(); its
versions continue from them, and view() is now the explorer.
Metadata
Release files for table3 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| table3-0.6.0.tar.gz | 38.8 kB | With provenance | Details for table3-0.6.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| table3-0.6.0-py3-none-any.whl | Python 3 | none | any | Details for table3-0.6.0-py3-none-any.whl |
Total release size: 61.9 kB
Release files / table3-0.6.0.tar.gz
| Download URL | table3-0.6.0.tar.gz |
|---|---|
| Size | 38.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa0663746af3546ad293eabe79c0b3bb85836cc5a8568e764db683c6a5a8a030
|
|
BLAKE2b-256 checksum How to use checksums |
3a11159682e8f4af39f17f8e25f4571e9b7a9204b80f71061a7eafb5181a314b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / table3-0.6.0-py3-none-any.whl
| Download URL | table3-0.6.0-py3-none-any.whl |
|---|---|
| Size | 23.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb03fc357c243a7be332e51b340e1dfe37048b2c17486cd2c831b670adf4826b
|
|
BLAKE2b-256 checksum How to use checksums |
ee2572570206e529bda7ce624bf6434021cc83ec85d0a96ba947200bdc5fa272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for table3 0.6.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for table3-0.6.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.