Metadata-Version: 2.1
Name: reactable
Version: 0.1.1
Summary: Interactive tables for Python.
Author-email: Michael Chow <michael.chow@posit.co>
Project-URL: homepage, https://github.com/machow/reactable-py
Project-URL: documentation, https://machow.github.io/reactable-py
Keywords: tables
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Healthcare Industry
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: htmltools
Requires-Dist: databackend
Requires-Dist: ipyreact
Requires-Dist: IPython
Requires-Dist: importlib-metadata
Requires-Dist: importlib-resources
Requires-Dist: palmerpenguins
Requires-Dist: typing_extensions>=3.10.0.0
Provides-Extra: all
Requires-Dist: reactable[dev]; extra == "all"
Provides-Extra: extra
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: jupyter; extra == "dev"
Requires-Dist: quartodoc>=0.7.1; python_version >= "3.9" and extra == "dev"
Requires-Dist: faicons; extra == "dev"
Requires-Dist: griffe==0.38.1; extra == "dev"
Requires-Dist: great-tables; extra == "dev"
Requires-Dist: mizani; extra == "dev"
Requires-Dist: pandas; extra == "dev"
Requires-Dist: polars; extra == "dev"
Requires-Dist: pre-commit==2.15.0; extra == "dev"
Requires-Dist: pyarrow; extra == "dev"
Requires-Dist: pyright>=1.1.244; extra == "dev"
Requires-Dist: pytest>=3; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: syrupy; extra == "dev"
Requires-Dist: plotly; extra == "dev"

# reactable-py

reactable generates interactive tables in Python.
It's a port of the R package [reactable](https://github.com/glin/reactable) by [@glin](https://github.com/glin).

See these handy documentation pages:

- [📚 User guide](https://machow.github.io/reactable-py/get-started)
- [🧩 Examples](https://machow.github.io/reactable-py/demos/)

## Features

- **controls**: sorting, filtering, and pagination.
- **structure**: grouping, aggregating, expanding rows.
- **format**: represent numbers, dates, currencies.
- **style**: conditional styling for headers, cell values, and more.

## Installing

```bash
pip install reactable
```

## Basic use

Use with jupyter notebooks or quarto documents (.qmd) to display tables.

```python
from reactable import Reactable, embed_css
from reactable.data import sleep

embed_css()

Reactable(sleep)
```

![reactable example table using the sleep dataset](https://machow.github.io/reactable-py/assets/sleep-table.png)

## Learn more

**Essentials**

- [Code basics](https://machow.github.io/reactable-py/get-started/code-structure.html)
- [Displaying tables](https://machow.github.io/reactable-py/get-started/display-export.html)

**Controls**

- [Sorting](https://machow.github.io/reactable-py/get-started/controls-sorting.html)
- [Filtering](https://machow.github.io/reactable-py/get-started/controls-filtering.html)
- [Searching](https://machow.github.io/reactable-py/get-started/controls-searching.html)
- [Pagination](https://machow.github.io/reactable-py/get-started/controls-pagination.html)
- [Column resizing](https://machow.github.io/reactable-py/get-started/controls-resizing.html)
- [Cell click actions](https://machow.github.io/reactable-py/get-started/controls-click-actions.html)

**Structure**

- [Column headers](https://machow.github.io/reactable-py/get-started/structure-headers.html)
- [Row groups and aggregation](https://machow.github.io/reactable-py/get-started/structure-grouping.html)
- [Expandable details](https://machow.github.io/reactable-py/get-started/structure-details.html)
- [Footers](https://machow.github.io/reactable-py/get-started/structure-footers.html)
- [Rownames](https://machow.github.io/reactable-py/get-started/structure-rownames.html)

**Format**

- [Column formatting](https://machow.github.io/reactable-py/get-started/format-columns.html)
- [Column aggregated cells](https://machow.github.io/reactable-py/get-started/format-aggregated.html)
- [Rendering cells](https://machow.github.io/reactable-py/get-started/format-cell.html)
- [Rendering header and footer](https://machow.github.io/reactable-py/get-started/format-header-footer.html)
- [Rendering details](https://machow.github.io/reactable-py/get-started/format-details.html)

**Style**

- [Table styling](https://machow.github.io/reactable-py/get-started/style-table.html)
- [Conditional styling (python)](https://machow.github.io/reactable-py/get-started/style-conditional.html)
- [Custom sort indicators](https://machow.github.io/reactable-py/get-started/style-custom-sort-indicators.html)
- [Theming](https://machow.github.io/reactable-py/get-started/style-theming.html)

**Extra**

- [Javascript formatters](https://machow.github.io/reactable-py/get-started/format-custom-rendering.html)
- [Javascript styling](https://machow.github.io/reactable-py/get-started/style-conditional-js.html)
- [Javascript filters](https://machow.github.io/reactable-py/get-started/extra-advanced-filters.html)
- [Using reactable with htmltools](https://machow.github.io/reactable-py/get-started/extra-htmltools.html)
