ai-parrot-visualizations 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ai_parrot_visualizations-0.1.0/PKG-INFO +123 -0
- ai_parrot_visualizations-0.1.0/README.md +67 -0
- ai_parrot_visualizations-0.1.0/pyproject.toml +70 -0
- ai_parrot_visualizations-0.1.0/setup.cfg +4 -0
- ai_parrot_visualizations-0.1.0/src/ai_parrot_visualizations.egg-info/PKG-INFO +123 -0
- ai_parrot_visualizations-0.1.0/src/ai_parrot_visualizations.egg-info/SOURCES.txt +36 -0
- ai_parrot_visualizations-0.1.0/src/ai_parrot_visualizations.egg-info/dependency_links.txt +1 -0
- ai_parrot_visualizations-0.1.0/src/ai_parrot_visualizations.egg-info/requires.txt +50 -0
- ai_parrot_visualizations-0.1.0/src/ai_parrot_visualizations.egg-info/top_level.txt +1 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/altair.py +368 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/application.py +122 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/assets/__init__.py +1 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/assets/echarts.min.js +45 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/bokeh.py +356 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/card.py +424 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/chart.py +453 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/d3.py +255 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/echarts.py +354 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/generators/__init__.py +0 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/generators/abstract.py +61 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/generators/panel.py +145 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/generators/streamlit.py +86 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/generators/terminal.py +63 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/holoviews.py +310 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/infographic.py +207 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/infographic_html.py +1576 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/jinja2.py +46 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/map.py +944 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/markdown.py +214 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/matplotlib.py +237 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/mixins/__init__.py +0 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/mixins/emaps.py +855 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/plotly.py +356 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/seaborn.py +310 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/slack.py +54 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/template_report.py +138 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/version.py +11 -0
- ai_parrot_visualizations-0.1.0/src/parrot/outputs/formats/whatsapp.py +54 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-parrot-visualizations
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Visualization renderers for AI-Parrot outputs
|
|
5
|
+
Author-email: Jesus Lara <jesuslara@phenobarbital.info>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/phenobarbital/ai-parrot
|
|
8
|
+
Project-URL: Source, https://github.com/phenobarbital/ai-parrot
|
|
9
|
+
Keywords: ai,visualization,charts,infographic,renderers
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Framework :: AsyncIO
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
Requires-Dist: ai-parrot>=0.24.56
|
|
23
|
+
Provides-Extra: matplotlib
|
|
24
|
+
Requires-Dist: matplotlib>=3.7; extra == "matplotlib"
|
|
25
|
+
Provides-Extra: seaborn
|
|
26
|
+
Requires-Dist: seaborn>=0.13; extra == "seaborn"
|
|
27
|
+
Requires-Dist: matplotlib>=3.7; extra == "seaborn"
|
|
28
|
+
Provides-Extra: plotly
|
|
29
|
+
Requires-Dist: plotly>=5.0; extra == "plotly"
|
|
30
|
+
Provides-Extra: altair
|
|
31
|
+
Requires-Dist: altair>=5.0; extra == "altair"
|
|
32
|
+
Provides-Extra: bokeh
|
|
33
|
+
Requires-Dist: bokeh>=3.0; extra == "bokeh"
|
|
34
|
+
Requires-Dist: pandas-bokeh>=0.5; extra == "bokeh"
|
|
35
|
+
Provides-Extra: holoviews
|
|
36
|
+
Requires-Dist: holoviews>=1.18; extra == "holoviews"
|
|
37
|
+
Provides-Extra: echarts
|
|
38
|
+
Provides-Extra: d3
|
|
39
|
+
Provides-Extra: map
|
|
40
|
+
Requires-Dist: folium>=0.14; extra == "map"
|
|
41
|
+
Provides-Extra: infographic
|
|
42
|
+
Requires-Dist: cairosvg; extra == "infographic"
|
|
43
|
+
Requires-Dist: svglib; extra == "infographic"
|
|
44
|
+
Requires-Dist: reportlab; extra == "infographic"
|
|
45
|
+
Provides-Extra: jinja2
|
|
46
|
+
Requires-Dist: jinja2>=3.0; extra == "jinja2"
|
|
47
|
+
Provides-Extra: streamlit
|
|
48
|
+
Requires-Dist: streamlit>=1.30; extra == "streamlit"
|
|
49
|
+
Provides-Extra: panel
|
|
50
|
+
Requires-Dist: panel>=1.0; extra == "panel"
|
|
51
|
+
Provides-Extra: messaging
|
|
52
|
+
Provides-Extra: charts
|
|
53
|
+
Requires-Dist: ai-parrot-visualizations[altair,bokeh,d3,echarts,holoviews,matplotlib,plotly,seaborn]; extra == "charts"
|
|
54
|
+
Provides-Extra: all
|
|
55
|
+
Requires-Dist: ai-parrot-visualizations[charts,infographic,jinja2,map,messaging,panel,streamlit]; extra == "all"
|
|
56
|
+
|
|
57
|
+
# ai-parrot-visualizations
|
|
58
|
+
|
|
59
|
+
Visualization renderer backends for the [AI-Parrot](https://github.com/phenobarbital/ai-parrot) framework.
|
|
60
|
+
|
|
61
|
+
Provides heavy visualization renderers (matplotlib, seaborn, plotly, altair, bokeh,
|
|
62
|
+
holoviews, echarts, d3, folium, infographic) as a separate installable package,
|
|
63
|
+
keeping the core `ai-parrot` package lightweight.
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Install all renderers
|
|
69
|
+
pip install "ai-parrot-visualizations[all]"
|
|
70
|
+
|
|
71
|
+
# Install specific renderer groups
|
|
72
|
+
pip install "ai-parrot-visualizations[matplotlib,seaborn]"
|
|
73
|
+
pip install "ai-parrot-visualizations[plotly,altair]"
|
|
74
|
+
pip install "ai-parrot-visualizations[charts]" # all chart renderers
|
|
75
|
+
pip install "ai-parrot-visualizations[infographic]" # infographic renderers
|
|
76
|
+
pip install "ai-parrot-visualizations[messaging]" # card/slack/whatsapp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Usage
|
|
80
|
+
|
|
81
|
+
Import paths are unchanged — the PEP 420 namespace merging makes satellite
|
|
82
|
+
renderers transparent to the consumer:
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from parrot.outputs.formats import get_renderer
|
|
86
|
+
from parrot.models.outputs import OutputMode
|
|
87
|
+
|
|
88
|
+
# Works the same whether renderer is in core or satellite
|
|
89
|
+
renderer_cls = get_renderer(OutputMode.MATPLOTLIB)
|
|
90
|
+
result = renderer_cls.render(data)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Available Extras
|
|
94
|
+
|
|
95
|
+
| Extra | Renderers | Dependencies |
|
|
96
|
+
|-------|-----------|--------------|
|
|
97
|
+
| `matplotlib` | MatplotlibRenderer | matplotlib>=3.7 |
|
|
98
|
+
| `seaborn` | SeabornRenderer | seaborn>=0.13, matplotlib>=3.7 |
|
|
99
|
+
| `plotly` | PlotlyRenderer | plotly>=5.0 |
|
|
100
|
+
| `altair` | AltairRenderer | altair>=5.0 |
|
|
101
|
+
| `bokeh` | BokehRenderer | bokeh>=3.0, pandas-bokeh>=0.5 |
|
|
102
|
+
| `holoviews` | HoloviewsRenderer | holoviews>=1.18 |
|
|
103
|
+
| `echarts` | EChartsRenderer | (JS-based, no Python deps) |
|
|
104
|
+
| `d3` | D3Renderer | (JS-based, no Python deps) |
|
|
105
|
+
| `map` | MapRenderer | folium>=0.14 |
|
|
106
|
+
| `infographic` | InfographicRenderer, InfographicHTMLRenderer | cairosvg, svglib, reportlab |
|
|
107
|
+
| `jinja2` | Jinja2Renderer, TemplateReportRenderer | jinja2>=3.0 |
|
|
108
|
+
| `streamlit` | StreamlitGenerator | streamlit>=1.30 |
|
|
109
|
+
| `panel` | PanelGenerator | panel>=1.0 |
|
|
110
|
+
| `messaging` | CardRenderer, SlackRenderer, WhatsAppRenderer | (no heavy deps) |
|
|
111
|
+
| `charts` | All chart renderers | (all chart deps above) |
|
|
112
|
+
| `all` | Everything | (all deps above) |
|
|
113
|
+
|
|
114
|
+
## Architecture
|
|
115
|
+
|
|
116
|
+
This package uses **PEP 420 implicit namespace packages** to contribute to the
|
|
117
|
+
`parrot.outputs.formats` namespace without requiring entry-points. When both
|
|
118
|
+
`ai-parrot` and `ai-parrot-visualizations` are installed, Python merges their
|
|
119
|
+
`parrot/outputs/formats/` directories via `extend_path()`.
|
|
120
|
+
|
|
121
|
+
## License
|
|
122
|
+
|
|
123
|
+
MIT — see the [LICENSE](https://github.com/phenobarbital/ai-parrot/blob/main/LICENSE) file.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# ai-parrot-visualizations
|
|
2
|
+
|
|
3
|
+
Visualization renderer backends for the [AI-Parrot](https://github.com/phenobarbital/ai-parrot) framework.
|
|
4
|
+
|
|
5
|
+
Provides heavy visualization renderers (matplotlib, seaborn, plotly, altair, bokeh,
|
|
6
|
+
holoviews, echarts, d3, folium, infographic) as a separate installable package,
|
|
7
|
+
keeping the core `ai-parrot` package lightweight.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Install all renderers
|
|
13
|
+
pip install "ai-parrot-visualizations[all]"
|
|
14
|
+
|
|
15
|
+
# Install specific renderer groups
|
|
16
|
+
pip install "ai-parrot-visualizations[matplotlib,seaborn]"
|
|
17
|
+
pip install "ai-parrot-visualizations[plotly,altair]"
|
|
18
|
+
pip install "ai-parrot-visualizations[charts]" # all chart renderers
|
|
19
|
+
pip install "ai-parrot-visualizations[infographic]" # infographic renderers
|
|
20
|
+
pip install "ai-parrot-visualizations[messaging]" # card/slack/whatsapp
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
Import paths are unchanged — the PEP 420 namespace merging makes satellite
|
|
26
|
+
renderers transparent to the consumer:
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
from parrot.outputs.formats import get_renderer
|
|
30
|
+
from parrot.models.outputs import OutputMode
|
|
31
|
+
|
|
32
|
+
# Works the same whether renderer is in core or satellite
|
|
33
|
+
renderer_cls = get_renderer(OutputMode.MATPLOTLIB)
|
|
34
|
+
result = renderer_cls.render(data)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Available Extras
|
|
38
|
+
|
|
39
|
+
| Extra | Renderers | Dependencies |
|
|
40
|
+
|-------|-----------|--------------|
|
|
41
|
+
| `matplotlib` | MatplotlibRenderer | matplotlib>=3.7 |
|
|
42
|
+
| `seaborn` | SeabornRenderer | seaborn>=0.13, matplotlib>=3.7 |
|
|
43
|
+
| `plotly` | PlotlyRenderer | plotly>=5.0 |
|
|
44
|
+
| `altair` | AltairRenderer | altair>=5.0 |
|
|
45
|
+
| `bokeh` | BokehRenderer | bokeh>=3.0, pandas-bokeh>=0.5 |
|
|
46
|
+
| `holoviews` | HoloviewsRenderer | holoviews>=1.18 |
|
|
47
|
+
| `echarts` | EChartsRenderer | (JS-based, no Python deps) |
|
|
48
|
+
| `d3` | D3Renderer | (JS-based, no Python deps) |
|
|
49
|
+
| `map` | MapRenderer | folium>=0.14 |
|
|
50
|
+
| `infographic` | InfographicRenderer, InfographicHTMLRenderer | cairosvg, svglib, reportlab |
|
|
51
|
+
| `jinja2` | Jinja2Renderer, TemplateReportRenderer | jinja2>=3.0 |
|
|
52
|
+
| `streamlit` | StreamlitGenerator | streamlit>=1.30 |
|
|
53
|
+
| `panel` | PanelGenerator | panel>=1.0 |
|
|
54
|
+
| `messaging` | CardRenderer, SlackRenderer, WhatsAppRenderer | (no heavy deps) |
|
|
55
|
+
| `charts` | All chart renderers | (all chart deps above) |
|
|
56
|
+
| `all` | Everything | (all deps above) |
|
|
57
|
+
|
|
58
|
+
## Architecture
|
|
59
|
+
|
|
60
|
+
This package uses **PEP 420 implicit namespace packages** to contribute to the
|
|
61
|
+
`parrot.outputs.formats` namespace without requiring entry-points. When both
|
|
62
|
+
`ai-parrot` and `ai-parrot-visualizations` are installed, Python merges their
|
|
63
|
+
`parrot/outputs/formats/` directories via `extend_path()`.
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
|
|
67
|
+
MIT — see the [LICENSE](https://github.com/phenobarbital/ai-parrot/blob/main/LICENSE) file.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=67.6.1", "wheel>=0.44.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ai-parrot-visualizations"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Visualization renderers for AI-Parrot outputs"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [
|
|
13
|
+
{name = "Jesus Lara", email = "jesuslara@phenobarbital.info"}
|
|
14
|
+
]
|
|
15
|
+
keywords = ["ai", "visualization", "charts", "infographic", "renderers"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 4 - Beta",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Operating System :: POSIX :: Linux",
|
|
20
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
21
|
+
"Programming Language :: Python :: 3.11",
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
25
|
+
"Framework :: AsyncIO",
|
|
26
|
+
"Typing :: Typed",
|
|
27
|
+
]
|
|
28
|
+
dependencies = [
|
|
29
|
+
"ai-parrot>=0.24.56",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
matplotlib = ["matplotlib>=3.7"]
|
|
34
|
+
seaborn = ["seaborn>=0.13", "matplotlib>=3.7"]
|
|
35
|
+
plotly = ["plotly>=5.0"]
|
|
36
|
+
altair = ["altair>=5.0"]
|
|
37
|
+
bokeh = ["bokeh>=3.0", "pandas-bokeh>=0.5"]
|
|
38
|
+
holoviews = ["holoviews>=1.18"]
|
|
39
|
+
echarts = [] # JS-based — ECharts bundled as static asset (assets/echarts.min.js); no Python deps
|
|
40
|
+
d3 = [] # JS-based — D3.js loaded via CDN at render time; no Python deps
|
|
41
|
+
map = ["folium>=0.14"]
|
|
42
|
+
infographic = ["cairosvg", "svglib", "reportlab"]
|
|
43
|
+
jinja2 = ["jinja2>=3.0"]
|
|
44
|
+
streamlit = ["streamlit>=1.30"]
|
|
45
|
+
panel = ["panel>=1.0"]
|
|
46
|
+
messaging = [] # card/slack/whatsapp renderers — no heavy Python dependencies
|
|
47
|
+
charts = [
|
|
48
|
+
"ai-parrot-visualizations[matplotlib,seaborn,plotly,altair,bokeh,holoviews,echarts,d3]",
|
|
49
|
+
]
|
|
50
|
+
all = [
|
|
51
|
+
"ai-parrot-visualizations[charts,map,infographic,jinja2,streamlit,panel,messaging]",
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
[project.urls]
|
|
55
|
+
Homepage = "https://github.com/phenobarbital/ai-parrot"
|
|
56
|
+
Source = "https://github.com/phenobarbital/ai-parrot"
|
|
57
|
+
|
|
58
|
+
[tool.setuptools.dynamic]
|
|
59
|
+
version = {attr = "parrot.outputs.formats.version.__version__"}
|
|
60
|
+
|
|
61
|
+
[tool.setuptools.packages.find]
|
|
62
|
+
where = ["src"]
|
|
63
|
+
include = ["parrot*"]
|
|
64
|
+
namespaces = true
|
|
65
|
+
|
|
66
|
+
[tool.setuptools.package-data]
|
|
67
|
+
"parrot.outputs.formats.assets" = ["*.js"]
|
|
68
|
+
|
|
69
|
+
[tool.uv.sources]
|
|
70
|
+
ai-parrot = { workspace = true }
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-parrot-visualizations
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Visualization renderers for AI-Parrot outputs
|
|
5
|
+
Author-email: Jesus Lara <jesuslara@phenobarbital.info>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/phenobarbital/ai-parrot
|
|
8
|
+
Project-URL: Source, https://github.com/phenobarbital/ai-parrot
|
|
9
|
+
Keywords: ai,visualization,charts,infographic,renderers
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Framework :: AsyncIO
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
Requires-Dist: ai-parrot>=0.24.56
|
|
23
|
+
Provides-Extra: matplotlib
|
|
24
|
+
Requires-Dist: matplotlib>=3.7; extra == "matplotlib"
|
|
25
|
+
Provides-Extra: seaborn
|
|
26
|
+
Requires-Dist: seaborn>=0.13; extra == "seaborn"
|
|
27
|
+
Requires-Dist: matplotlib>=3.7; extra == "seaborn"
|
|
28
|
+
Provides-Extra: plotly
|
|
29
|
+
Requires-Dist: plotly>=5.0; extra == "plotly"
|
|
30
|
+
Provides-Extra: altair
|
|
31
|
+
Requires-Dist: altair>=5.0; extra == "altair"
|
|
32
|
+
Provides-Extra: bokeh
|
|
33
|
+
Requires-Dist: bokeh>=3.0; extra == "bokeh"
|
|
34
|
+
Requires-Dist: pandas-bokeh>=0.5; extra == "bokeh"
|
|
35
|
+
Provides-Extra: holoviews
|
|
36
|
+
Requires-Dist: holoviews>=1.18; extra == "holoviews"
|
|
37
|
+
Provides-Extra: echarts
|
|
38
|
+
Provides-Extra: d3
|
|
39
|
+
Provides-Extra: map
|
|
40
|
+
Requires-Dist: folium>=0.14; extra == "map"
|
|
41
|
+
Provides-Extra: infographic
|
|
42
|
+
Requires-Dist: cairosvg; extra == "infographic"
|
|
43
|
+
Requires-Dist: svglib; extra == "infographic"
|
|
44
|
+
Requires-Dist: reportlab; extra == "infographic"
|
|
45
|
+
Provides-Extra: jinja2
|
|
46
|
+
Requires-Dist: jinja2>=3.0; extra == "jinja2"
|
|
47
|
+
Provides-Extra: streamlit
|
|
48
|
+
Requires-Dist: streamlit>=1.30; extra == "streamlit"
|
|
49
|
+
Provides-Extra: panel
|
|
50
|
+
Requires-Dist: panel>=1.0; extra == "panel"
|
|
51
|
+
Provides-Extra: messaging
|
|
52
|
+
Provides-Extra: charts
|
|
53
|
+
Requires-Dist: ai-parrot-visualizations[altair,bokeh,d3,echarts,holoviews,matplotlib,plotly,seaborn]; extra == "charts"
|
|
54
|
+
Provides-Extra: all
|
|
55
|
+
Requires-Dist: ai-parrot-visualizations[charts,infographic,jinja2,map,messaging,panel,streamlit]; extra == "all"
|
|
56
|
+
|
|
57
|
+
# ai-parrot-visualizations
|
|
58
|
+
|
|
59
|
+
Visualization renderer backends for the [AI-Parrot](https://github.com/phenobarbital/ai-parrot) framework.
|
|
60
|
+
|
|
61
|
+
Provides heavy visualization renderers (matplotlib, seaborn, plotly, altair, bokeh,
|
|
62
|
+
holoviews, echarts, d3, folium, infographic) as a separate installable package,
|
|
63
|
+
keeping the core `ai-parrot` package lightweight.
|
|
64
|
+
|
|
65
|
+
## Installation
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Install all renderers
|
|
69
|
+
pip install "ai-parrot-visualizations[all]"
|
|
70
|
+
|
|
71
|
+
# Install specific renderer groups
|
|
72
|
+
pip install "ai-parrot-visualizations[matplotlib,seaborn]"
|
|
73
|
+
pip install "ai-parrot-visualizations[plotly,altair]"
|
|
74
|
+
pip install "ai-parrot-visualizations[charts]" # all chart renderers
|
|
75
|
+
pip install "ai-parrot-visualizations[infographic]" # infographic renderers
|
|
76
|
+
pip install "ai-parrot-visualizations[messaging]" # card/slack/whatsapp
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Usage
|
|
80
|
+
|
|
81
|
+
Import paths are unchanged — the PEP 420 namespace merging makes satellite
|
|
82
|
+
renderers transparent to the consumer:
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from parrot.outputs.formats import get_renderer
|
|
86
|
+
from parrot.models.outputs import OutputMode
|
|
87
|
+
|
|
88
|
+
# Works the same whether renderer is in core or satellite
|
|
89
|
+
renderer_cls = get_renderer(OutputMode.MATPLOTLIB)
|
|
90
|
+
result = renderer_cls.render(data)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Available Extras
|
|
94
|
+
|
|
95
|
+
| Extra | Renderers | Dependencies |
|
|
96
|
+
|-------|-----------|--------------|
|
|
97
|
+
| `matplotlib` | MatplotlibRenderer | matplotlib>=3.7 |
|
|
98
|
+
| `seaborn` | SeabornRenderer | seaborn>=0.13, matplotlib>=3.7 |
|
|
99
|
+
| `plotly` | PlotlyRenderer | plotly>=5.0 |
|
|
100
|
+
| `altair` | AltairRenderer | altair>=5.0 |
|
|
101
|
+
| `bokeh` | BokehRenderer | bokeh>=3.0, pandas-bokeh>=0.5 |
|
|
102
|
+
| `holoviews` | HoloviewsRenderer | holoviews>=1.18 |
|
|
103
|
+
| `echarts` | EChartsRenderer | (JS-based, no Python deps) |
|
|
104
|
+
| `d3` | D3Renderer | (JS-based, no Python deps) |
|
|
105
|
+
| `map` | MapRenderer | folium>=0.14 |
|
|
106
|
+
| `infographic` | InfographicRenderer, InfographicHTMLRenderer | cairosvg, svglib, reportlab |
|
|
107
|
+
| `jinja2` | Jinja2Renderer, TemplateReportRenderer | jinja2>=3.0 |
|
|
108
|
+
| `streamlit` | StreamlitGenerator | streamlit>=1.30 |
|
|
109
|
+
| `panel` | PanelGenerator | panel>=1.0 |
|
|
110
|
+
| `messaging` | CardRenderer, SlackRenderer, WhatsAppRenderer | (no heavy deps) |
|
|
111
|
+
| `charts` | All chart renderers | (all chart deps above) |
|
|
112
|
+
| `all` | Everything | (all deps above) |
|
|
113
|
+
|
|
114
|
+
## Architecture
|
|
115
|
+
|
|
116
|
+
This package uses **PEP 420 implicit namespace packages** to contribute to the
|
|
117
|
+
`parrot.outputs.formats` namespace without requiring entry-points. When both
|
|
118
|
+
`ai-parrot` and `ai-parrot-visualizations` are installed, Python merges their
|
|
119
|
+
`parrot/outputs/formats/` directories via `extend_path()`.
|
|
120
|
+
|
|
121
|
+
## License
|
|
122
|
+
|
|
123
|
+
MIT — see the [LICENSE](https://github.com/phenobarbital/ai-parrot/blob/main/LICENSE) file.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
src/ai_parrot_visualizations.egg-info/PKG-INFO
|
|
4
|
+
src/ai_parrot_visualizations.egg-info/SOURCES.txt
|
|
5
|
+
src/ai_parrot_visualizations.egg-info/dependency_links.txt
|
|
6
|
+
src/ai_parrot_visualizations.egg-info/requires.txt
|
|
7
|
+
src/ai_parrot_visualizations.egg-info/top_level.txt
|
|
8
|
+
src/parrot/outputs/formats/altair.py
|
|
9
|
+
src/parrot/outputs/formats/application.py
|
|
10
|
+
src/parrot/outputs/formats/bokeh.py
|
|
11
|
+
src/parrot/outputs/formats/card.py
|
|
12
|
+
src/parrot/outputs/formats/chart.py
|
|
13
|
+
src/parrot/outputs/formats/d3.py
|
|
14
|
+
src/parrot/outputs/formats/echarts.py
|
|
15
|
+
src/parrot/outputs/formats/holoviews.py
|
|
16
|
+
src/parrot/outputs/formats/infographic.py
|
|
17
|
+
src/parrot/outputs/formats/infographic_html.py
|
|
18
|
+
src/parrot/outputs/formats/jinja2.py
|
|
19
|
+
src/parrot/outputs/formats/map.py
|
|
20
|
+
src/parrot/outputs/formats/markdown.py
|
|
21
|
+
src/parrot/outputs/formats/matplotlib.py
|
|
22
|
+
src/parrot/outputs/formats/plotly.py
|
|
23
|
+
src/parrot/outputs/formats/seaborn.py
|
|
24
|
+
src/parrot/outputs/formats/slack.py
|
|
25
|
+
src/parrot/outputs/formats/template_report.py
|
|
26
|
+
src/parrot/outputs/formats/version.py
|
|
27
|
+
src/parrot/outputs/formats/whatsapp.py
|
|
28
|
+
src/parrot/outputs/formats/assets/__init__.py
|
|
29
|
+
src/parrot/outputs/formats/assets/echarts.min.js
|
|
30
|
+
src/parrot/outputs/formats/generators/__init__.py
|
|
31
|
+
src/parrot/outputs/formats/generators/abstract.py
|
|
32
|
+
src/parrot/outputs/formats/generators/panel.py
|
|
33
|
+
src/parrot/outputs/formats/generators/streamlit.py
|
|
34
|
+
src/parrot/outputs/formats/generators/terminal.py
|
|
35
|
+
src/parrot/outputs/formats/mixins/__init__.py
|
|
36
|
+
src/parrot/outputs/formats/mixins/emaps.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
ai-parrot>=0.24.56
|
|
2
|
+
|
|
3
|
+
[all]
|
|
4
|
+
ai-parrot-visualizations[charts,infographic,jinja2,map,messaging,panel,streamlit]
|
|
5
|
+
|
|
6
|
+
[altair]
|
|
7
|
+
altair>=5.0
|
|
8
|
+
|
|
9
|
+
[bokeh]
|
|
10
|
+
bokeh>=3.0
|
|
11
|
+
pandas-bokeh>=0.5
|
|
12
|
+
|
|
13
|
+
[charts]
|
|
14
|
+
ai-parrot-visualizations[altair,bokeh,d3,echarts,holoviews,matplotlib,plotly,seaborn]
|
|
15
|
+
|
|
16
|
+
[d3]
|
|
17
|
+
|
|
18
|
+
[echarts]
|
|
19
|
+
|
|
20
|
+
[holoviews]
|
|
21
|
+
holoviews>=1.18
|
|
22
|
+
|
|
23
|
+
[infographic]
|
|
24
|
+
cairosvg
|
|
25
|
+
svglib
|
|
26
|
+
reportlab
|
|
27
|
+
|
|
28
|
+
[jinja2]
|
|
29
|
+
jinja2>=3.0
|
|
30
|
+
|
|
31
|
+
[map]
|
|
32
|
+
folium>=0.14
|
|
33
|
+
|
|
34
|
+
[matplotlib]
|
|
35
|
+
matplotlib>=3.7
|
|
36
|
+
|
|
37
|
+
[messaging]
|
|
38
|
+
|
|
39
|
+
[panel]
|
|
40
|
+
panel>=1.0
|
|
41
|
+
|
|
42
|
+
[plotly]
|
|
43
|
+
plotly>=5.0
|
|
44
|
+
|
|
45
|
+
[seaborn]
|
|
46
|
+
seaborn>=0.13
|
|
47
|
+
matplotlib>=3.7
|
|
48
|
+
|
|
49
|
+
[streamlit]
|
|
50
|
+
streamlit>=1.30
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
parrot
|