Gere dashboards visuais como imagens usando HTML/CSS e Playwright.
Project description
Dashgen
📊 Gere dashboards visuais como imagens (PNG) diretamente do Python com HTML, Tailwind CSS e Chart.js.
✨ O que é?
dashgen é um micro-framework que permite criar dashboards dinâmicos e exportá-los como imagens de alta qualidade.
Ideal para gerar relatórios diários, KPIs, resumos visuais e compartilhar automaticamente via e-mail, WhatsApp, sistemas internos etc.
🛠 Instalação
pip install dashgen
playwright install
🚀 Exemplo Completo
from dashgen import Dashboard
from dashgen.core.layout import Row, Column
# Criar o dashboard com altura automática e tema
db = Dashboard(
title="Relatório de Vendas",
logo_path="logo.png", # Opcional
size=(1080, None), # Altura automática
auto_size=True,
theme={
"primary": "#005f73",
"accent": "#94d2bd",
"bg": "#fefae0",
"text": "#001219"
}
)
# Linha com dois cards lado a lado
db.add(Row(
Column(6).add_card("Receita Acumulada", 8200000, 10000000),
Column(6).add_card("Unidades Vendidas", 320, 400)
))
# Linha com tabela e gráfico de barras
dados = [
{"Nome": "Projeto A", "Meta": "R$ 2M", "Realizado": "R$ 1.6M", "Variação": "-20%"},
{"Nome": "Projeto B", "Meta": "R$ 3M", "Realizado": "R$ 3.1M", "Variação": "+3%"},
]
db.add(Row(
Column(6).add_table("Receita por Empreendimento", dados, ["Nome", "Meta", "Realizado", "Variação"]),
Column(6).add_chart("bar", "Vendas Mensais", [
{"label": "Jan", "value": 120},
{"label": "Fev", "value": 135},
{"label": "Mar", "value": 160},
])
))
# Linha com gráfico de linha
db.add(Row(
Column(12).add_chart("line", "Receita Total (R$)", [
{"label": "Jan", "value": 1200000},
{"label": "Fev", "value": 1450000},
{"label": "Mar", "value": 1600000},
])
))
# Exportar como imagem
db.generate("output_dashboard.png")
🧱 Componentes Disponíveis
📐 Layout
Row(...): agrupa colunas lado a ladoColumn(width=...): define largura (1 a 12 colunas)
📦 Card (KPI)
Column(6).add_card("Título", valor, meta)
Barra de progresso com percentual atingido.
📊 Tabela
Column(6).add_table("Título", data, headers)
data: lista de dicionáriosheaders: nomes das colunas a exibir
📈 Gráfico
Column(6).add_chart("bar", "Título", data)
Column(6).add_chart("line", "Título", data)
data: lista comlabelevalue- Tipos:
"bar","line"
🎨 Tema Personalizado
Você pode customizar as cores do dashboard:
theme = {
"primary": "#005f73", # Barras e títulos
"accent": "#94d2bd", # Detalhes
"bg": "#fefae0", # Fundo da imagem
"text": "#001219" # Cor do texto
}
🧠 Funcionalidades Especiais
auto_size=True: ajusta automaticamente a altura da imagem com base no conteúdo- Suporte a
Tailwindvia CDN - Charts renderizados com
Chart.js - Layout flexível com
RoweColumn
📚 Documentação Técnica
📘 Dashboard
Dashboard(title, logo_path=None, size=(1080, 1080), theme=None, auto_size=False)
| Parâmetro | Tipo | Descrição |
|---|---|---|
title |
str |
Título do dashboard |
logo_path |
str (opcional) |
Caminho para a logo |
size |
(int, int) |
Tamanho da imagem (largura, altura) |
theme |
dict |
Cores personalizadas |
auto_size |
bool |
Ativa ajuste automático de altura |
✅ Dashboard.add(Row(...))
Adiciona um conjunto de colunas à imagem.
✅ Dashboard.generate(path)
Gera e salva a imagem final em path.
📘 Row(...)
Agrupa Columns horizontalmente (até 12 colunas somadas).
📘 Column(width=12)
Define a largura da coluna (de 1 a 12). Dentro dela você pode usar:
.add_card(...).add_table(...).add_chart(...)
✅ Requisitos
- Python 3.7+
playwrightjinja2
Instale tudo com:
pip install dashgen
playwright install
🖼 Exporte dashboards com visual moderno e profissional em segundos.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dashgen-0.1.4.tar.gz.
File metadata
- Download URL: dashgen-0.1.4.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ceb04f40a9df3b2b0d41170617b4d5a76348f574d9be861c20315e4bc2f9297e
|
|
| MD5 |
1d09226d974ff17bd5ab9c6c229782d4
|
|
| BLAKE2b-256 |
e9135065271c680dab87c23c5bb99e65f77f769f26a5c0b3f06a4572acd3b082
|
File details
Details for the file dashgen-0.1.4-py3-none-any.whl.
File metadata
- Download URL: dashgen-0.1.4-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f197e6305ba121bb19d000c59f93d59e0c01611e8e32e264ee6f3c6603e5cbd9
|
|
| MD5 |
82c77f26959e464d998aeb6332788d9b
|
|
| BLAKE2b-256 |
5474df771a9133c641b3f40f2323462aa1f962b5157d079138ef6284fc7ab666
|