Metadata-Version: 2.4
Name: chartbook
Version: 0.0.2
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
Provides-Extra: all
Requires-Dist: ablog>=0.11.11; 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>=7.2.6; extra == 'all'
Requires-Dist: tomli-w>=1.1.0; extra == 'all'
Requires-Dist: tomli>=2.2.1; 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'
Requires-Dist: tomli-w>=1.1.0; extra == 'data'
Requires-Dist: tomli>=2.2.1; extra == 'data'
Provides-Extra: dev
Requires-Dist: ablog>=0.11.11; extra == 'dev'
Requires-Dist: colorama; 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-datareader>=0.10.0; 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: setuptools; 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>=7.2.6; extra == 'dev'
Requires-Dist: tomli-w>=1.1.0; extra == 'dev'
Requires-Dist: tomli>=2.2.1; 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>=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.2-blue?logo=pypi)](https://pypi.org/project/chartbook)
[![PyPI - Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13-blue?logo=python)](https://pypi.org/project/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_id="EX", dataframe_id="repo_public")
```

### Build documentation

```bash
chartbook build
```

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