Metadata-Version: 2.4
Name: ai-parrot-visualizations
Version: 0.1.0
Summary: Visualization renderers for AI-Parrot outputs
Author-email: Jesus Lara <jesuslara@phenobarbital.info>
License-Expression: MIT
Project-URL: Homepage, https://github.com/phenobarbital/ai-parrot
Project-URL: Source, https://github.com/phenobarbital/ai-parrot
Keywords: ai,visualization,charts,infographic,renderers
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Framework :: AsyncIO
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: ai-parrot>=0.24.56
Provides-Extra: matplotlib
Requires-Dist: matplotlib>=3.7; extra == "matplotlib"
Provides-Extra: seaborn
Requires-Dist: seaborn>=0.13; extra == "seaborn"
Requires-Dist: matplotlib>=3.7; extra == "seaborn"
Provides-Extra: plotly
Requires-Dist: plotly>=5.0; extra == "plotly"
Provides-Extra: altair
Requires-Dist: altair>=5.0; extra == "altair"
Provides-Extra: bokeh
Requires-Dist: bokeh>=3.0; extra == "bokeh"
Requires-Dist: pandas-bokeh>=0.5; extra == "bokeh"
Provides-Extra: holoviews
Requires-Dist: holoviews>=1.18; extra == "holoviews"
Provides-Extra: echarts
Provides-Extra: d3
Provides-Extra: map
Requires-Dist: folium>=0.14; extra == "map"
Provides-Extra: infographic
Requires-Dist: cairosvg; extra == "infographic"
Requires-Dist: svglib; extra == "infographic"
Requires-Dist: reportlab; extra == "infographic"
Provides-Extra: jinja2
Requires-Dist: jinja2>=3.0; extra == "jinja2"
Provides-Extra: streamlit
Requires-Dist: streamlit>=1.30; extra == "streamlit"
Provides-Extra: panel
Requires-Dist: panel>=1.0; extra == "panel"
Provides-Extra: messaging
Provides-Extra: charts
Requires-Dist: ai-parrot-visualizations[altair,bokeh,d3,echarts,holoviews,matplotlib,plotly,seaborn]; extra == "charts"
Provides-Extra: all
Requires-Dist: ai-parrot-visualizations[charts,infographic,jinja2,map,messaging,panel,streamlit]; extra == "all"

# ai-parrot-visualizations

Visualization renderer backends for the [AI-Parrot](https://github.com/phenobarbital/ai-parrot) framework.

Provides heavy visualization renderers (matplotlib, seaborn, plotly, altair, bokeh,
holoviews, echarts, d3, folium, infographic) as a separate installable package,
keeping the core `ai-parrot` package lightweight.

## Installation

```bash
# Install all renderers
pip install "ai-parrot-visualizations[all]"

# Install specific renderer groups
pip install "ai-parrot-visualizations[matplotlib,seaborn]"
pip install "ai-parrot-visualizations[plotly,altair]"
pip install "ai-parrot-visualizations[charts]"      # all chart renderers
pip install "ai-parrot-visualizations[infographic]"  # infographic renderers
pip install "ai-parrot-visualizations[messaging]"    # card/slack/whatsapp
```

## Usage

Import paths are unchanged — the PEP 420 namespace merging makes satellite
renderers transparent to the consumer:

```python
from parrot.outputs.formats import get_renderer
from parrot.models.outputs import OutputMode

# Works the same whether renderer is in core or satellite
renderer_cls = get_renderer(OutputMode.MATPLOTLIB)
result = renderer_cls.render(data)
```

## Available Extras

| Extra | Renderers | Dependencies |
|-------|-----------|--------------|
| `matplotlib` | MatplotlibRenderer | matplotlib>=3.7 |
| `seaborn` | SeabornRenderer | seaborn>=0.13, matplotlib>=3.7 |
| `plotly` | PlotlyRenderer | plotly>=5.0 |
| `altair` | AltairRenderer | altair>=5.0 |
| `bokeh` | BokehRenderer | bokeh>=3.0, pandas-bokeh>=0.5 |
| `holoviews` | HoloviewsRenderer | holoviews>=1.18 |
| `echarts` | EChartsRenderer | (JS-based, no Python deps) |
| `d3` | D3Renderer | (JS-based, no Python deps) |
| `map` | MapRenderer | folium>=0.14 |
| `infographic` | InfographicRenderer, InfographicHTMLRenderer | cairosvg, svglib, reportlab |
| `jinja2` | Jinja2Renderer, TemplateReportRenderer | jinja2>=3.0 |
| `streamlit` | StreamlitGenerator | streamlit>=1.30 |
| `panel` | PanelGenerator | panel>=1.0 |
| `messaging` | CardRenderer, SlackRenderer, WhatsAppRenderer | (no heavy deps) |
| `charts` | All chart renderers | (all chart deps above) |
| `all` | Everything | (all deps above) |

## Architecture

This package uses **PEP 420 implicit namespace packages** to contribute to the
`parrot.outputs.formats` namespace without requiring entry-points. When both
`ai-parrot` and `ai-parrot-visualizations` are installed, Python merges their
`parrot/outputs/formats/` directories via `extend_path()`.

## License

MIT — see the [LICENSE](https://github.com/phenobarbital/ai-parrot/blob/main/LICENSE) file.
