bored-charts
Build easy, minimal, PDF-able data reports with markdown and python.
The idea is you do your analysis in Python, as you normally would, and dumping your figures into a nice report written in markdown is now super low-effort: you decorate the function to generate the figure (that you already wrote when doing your analysis) and it becomes available to bored-charts so you can present your findings clearly.
Minimal example
Install bored-charts and uvicorn:
pip install bored-charts uvicorn
Create your app
# main.py
from pathlib import Path
import plotly.express as px
import plotly.graph_objects as go
from boredcharts import FigureRouter, boredcharts
figures = FigureRouter()
@figures.chart("population")
async def population(country: str) -> go.Figure:
df = px.data.gapminder().query(f"country=='{country}'")
fig = px.bar(df, x="year", y="pop")
return fig
app = boredcharts(pages=Path(__file__).parent, figures=figures)
Write a markdown report
<!-- populations.md -->
## Populations
USA's population has been growing linearly for the last 70 years:
{{ figure("population", country="United States") }}
Run your app
uvicorn main:app --reload
🎉Now you can view your reports at http://localhost:8000!
Going further
A more full project structure might look like this (see the full example here):
my-reports
├── analysis <-- do your analysis and define your figures
│ ├── __init__.py
│ ├── figures.py
│ └── ...
├── pages <-- write your markdown reports
│ ├── example.md
│ └── ...
├── app.py <-- spin up the bored-charts app
├── pyproject.toml
└── README.md
Supported charting libraries
Extensibility
The bored-charts app is just a FastAPI (ASGI) app, so you can integrate it into your existing projects or extend it as needed with existing solutions (e.g., adding authentication).
Roadmap
See the Github repo
Release files for bored-charts 0.13.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bored_charts-0.13.1.tar.gz | 161.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bored_charts-0.13.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 327.0 kB
Release files / bored_charts-0.13.1.tar.gz
| Download URL | bored_charts-0.13.1.tar.gz |
|---|---|
| Size | 161.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e129458a7f68fcd10dd5e9b498e9484db45c6c18d1084c879d27f5dce3d77bbb
|
|
BLAKE2b-256 checksum How to use checksums |
ae2fdbf3690fdc4e3f41074224b3db3a6ef9035086b14255dc1a8e297c6645fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.0 CPython/3.12.5
|
Release files / bored_charts-0.13.1-py3-none-any.whl
| Download URL | bored_charts-0.13.1-py3-none-any.whl |
|---|---|
| Size | 165.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
585c8daadd12ca8c5809a7f88fa1cc1b4cf0039231d7b6d398b969ed2a10e6f8
|
|
BLAKE2b-256 checksum How to use checksums |
ba06e640404ff9b452a06a0d1691900e0c41365fac3c41c982f2b9d6ac647ded
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.1.0 CPython/3.12.5
|