Metadata-Version: 2.4
Name: chartbook
Version: 0.0.13
Summary: A tool for generating chart documentation websites
Project-URL: Documentation, https://backofficedev.github.io/chartbook
Project-URL: Issues, https://github.com/backofficedev/chartbook/issues
Project-URL: Source, https://github.com/backofficedev/chartbook
Author-email: Jeremiah Bejarano <Jeremiah.Bejarano@gmail.com>
License-Expression: BSD-3-Clause
License-File: LICENSE.md
Keywords: Analytics,Catalogs,Dashboards,Data
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
Requires-Dist: click>=8.1.7
Requires-Dist: tomli-w>=1.1.0
Requires-Dist: tomli>=2.2.1
Provides-Extra: all
Requires-Dist: ablog>=0.11.11; extra == 'all'
Requires-Dist: cruft; extra == 'all'
Requires-Dist: fredapi>=0.5.0; extra == 'all'
Requires-Dist: jinja2>=3.1.4; extra == 'all'
Requires-Dist: kaleido>=0.2.1; extra == 'all'
Requires-Dist: linkify-it-py>=2.0.3; extra == 'all'
Requires-Dist: markdown-it-py>=3.0.0; extra == 'all'
Requires-Dist: matplotlib>=3.7.0; extra == 'all'
Requires-Dist: myst-nb>=1.1.2; extra == 'all'
Requires-Dist: myst-parser>=2.0.0; extra == 'all'
Requires-Dist: packaging; extra == 'all'
Requires-Dist: pandas>=2.1.4; extra == 'all'
Requires-Dist: plotly>=5.24.0; extra == 'all'
Requires-Dist: pluggy>=1.3.0; extra == 'all'
Requires-Dist: polars>=1.9.0; extra == 'all'
Requires-Dist: pyarrow; extra == 'all'
Requires-Dist: pydata-sphinx-theme>=0.15.4; extra == 'all'
Requires-Dist: python-decouple>=3.8; extra == 'all'
Requires-Dist: sphinx-autodoc2>=0.5.0; extra == 'all'
Requires-Dist: sphinx-book-theme>=1.1.3; extra == 'all'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'all'
Requires-Dist: sphinx-design>=0.6.1; extra == 'all'
Requires-Dist: sphinx-external-toc>=1.0.1; extra == 'all'
Requires-Dist: sphinx<9.0,>=7.2.6; extra == 'all'
Provides-Extra: data
Requires-Dist: packaging; extra == 'data'
Requires-Dist: polars>=1.9.0; extra == 'data'
Requires-Dist: pyarrow; extra == 'data'
Requires-Dist: python-decouple>=3.8; extra == 'data'
Provides-Extra: dev
Requires-Dist: ablog>=0.11.11; extra == 'dev'
Requires-Dist: colorama; extra == 'dev'
Requires-Dist: cruft; extra == 'dev'
Requires-Dist: doit>=0.36.0; extra == 'dev'
Requires-Dist: fredapi>=0.5.0; extra == 'dev'
Requires-Dist: jinja2>=3.1.4; extra == 'dev'
Requires-Dist: jupytext>=1.16.0; extra == 'dev'
Requires-Dist: kaleido>=0.2.1; extra == 'dev'
Requires-Dist: linkify-it-py>=2.0.3; extra == 'dev'
Requires-Dist: markdown-it-py>=3.0.0; extra == 'dev'
Requires-Dist: matplotlib>=3.7.0; extra == 'dev'
Requires-Dist: myst-nb>=1.1.2; extra == 'dev'
Requires-Dist: myst-parser>=2.0.0; extra == 'dev'
Requires-Dist: nbconvert>=7.0.0; extra == 'dev'
Requires-Dist: packaging; extra == 'dev'
Requires-Dist: pandas>=2.1.4; extra == 'dev'
Requires-Dist: plotly>=5.24.0; extra == 'dev'
Requires-Dist: pluggy>=1.3.0; extra == 'dev'
Requires-Dist: polars>=1.9.0; extra == 'dev'
Requires-Dist: pyarrow; extra == 'dev'
Requires-Dist: pydata-sphinx-theme>=0.15.4; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: python-decouple>=3.8; extra == 'dev'
Requires-Dist: sphinx-autodoc2>=0.5.0; extra == 'dev'
Requires-Dist: sphinx-book-theme>=1.1.3; extra == 'dev'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'dev'
Requires-Dist: sphinx-design>=0.6.1; extra == 'dev'
Requires-Dist: sphinx-external-toc>=1.0.1; extra == 'dev'
Requires-Dist: sphinx<9.0,>=7.2.6; extra == 'dev'
Provides-Extra: plotting
Requires-Dist: fredapi>=0.5.0; extra == 'plotting'
Requires-Dist: kaleido>=0.2.1; extra == 'plotting'
Requires-Dist: matplotlib>=3.7.0; extra == 'plotting'
Requires-Dist: plotly>=5.24.0; extra == 'plotting'
Requires-Dist: pluggy>=1.3.0; extra == 'plotting'
Provides-Extra: sphinx
Requires-Dist: ablog>=0.11.11; extra == 'sphinx'
Requires-Dist: jinja2>=3.1.4; extra == 'sphinx'
Requires-Dist: linkify-it-py>=2.0.3; extra == 'sphinx'
Requires-Dist: markdown-it-py>=3.0.0; extra == 'sphinx'
Requires-Dist: myst-nb>=1.1.2; extra == 'sphinx'
Requires-Dist: myst-parser>=2.0.0; extra == 'sphinx'
Requires-Dist: pandas>=2.1.4; extra == 'sphinx'
Requires-Dist: pydata-sphinx-theme>=0.15.4; extra == 'sphinx'
Requires-Dist: sphinx-autodoc2>=0.5.0; extra == 'sphinx'
Requires-Dist: sphinx-book-theme>=1.1.3; extra == 'sphinx'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'sphinx'
Requires-Dist: sphinx-design>=0.6.1; extra == 'sphinx'
Requires-Dist: sphinx-external-toc>=1.0.1; extra == 'sphinx'
Requires-Dist: sphinx<9.0,>=7.2.6; extra == 'sphinx'
Description-Content-Type: text/markdown

# ChartBook

A developer platform for data science teams.

[![PyPI - Version](https://img.shields.io/badge/PyPI-v0.0.13-blue?logo=pypi)](https://pypi.org/project/chartbook)
[![PyPI - Python Version](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python)](https://pypi.org/project/chartbook)
[![GitHub Stars](https://img.shields.io/github/stars/backofficedev/chartbook?style=flat&logo=github)](https://github.com/backofficedev/chartbook)
[![Documentation](https://img.shields.io/badge/docs-backofficedev.github.io%2Fchartbook-blue)](https://backofficedev.github.io/chartbook/)

Discover, document, and share data science work across your organization. ChartBook provides a centralized catalog for data pipelines, charts, and documentation—making it easy to find, understand, and reuse analytics work.

## Terminology

ChartBook supports two project types:

- **Pipeline** — A single analytics pipeline with its own charts, dataframes, and documentation
- **Catalog** — A collection of multiple pipelines aggregated into a unified documentation site

See the [Concepts](https://backofficedev.github.io/chartbook/user-guide/concepts.html) page for the full terminology including ChartBooks and ChartHub.

## Features

- **Pipeline Catalog** — Organize and discover data pipelines across your team
- **Documentation Generation** — Build searchable documentation websites from your analytics work
- **Data Governance** — Track data sources, licenses, and access permissions
- **Programmatic Data Access** — Load pipeline outputs directly into pandas or polars
- **Multi-Pipeline Catalogs** — Aggregate multiple pipelines into a single documentation site

## Installation

**Recommended:**

```bash
pip install "chartbook[all]"
```

This gives you everything: data loading, plotting utilities, and the CLI for building documentation.

**Minimal install** (data loading only):

```bash
pip install "chartbook[data]"
```

**Development:**

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

## Quick Start

### Load data from a pipeline

```python
from chartbook import data

df = data.load(pipeline="fred_charts", dataframe="interest_rates")
```

### Build documentation

```bash
chartbook build
```

### Browse your catalog

```bash
# List all pipelines, dataframes, and charts
chartbook ls

# List dataframes only
chartbook ls dataframes

# Get path to a dataframe's parquet file
chartbook data get-path --pipeline fred_charts --dataframe interest_rates
```

See the [documentation](https://backofficedev.github.io/chartbook) for configuration options and detailed guides.

## Documentation

Full documentation is available at [backofficedev.github.io/chartbook](https://backofficedev.github.io/chartbook).

- [Getting Started](https://backofficedev.github.io/chartbook/getting-started.html)
- [Configuration Reference](https://backofficedev.github.io/chartbook/configuration.html)
- [CLI Reference](https://backofficedev.github.io/chartbook/cli-reference.html)

## Contributing

Contributions are welcome. See [CONTRIBUTING](https://backofficedev.github.io/chartbook/contributing.html) for guidelines.

## License

Modified BSD License