Pixel KPI
Create beautiful pixel-art dashboards for your KPIs! Connect to Notion, GitHub, or PyPi and display your data on Pixoo devices or other displays.
Features
- 🎨 Pixel-art style components (text, charts, progress bars, etc.)
- 🔌 Connect to multiple data sources:
- GitHub stars statistics
- Notion sprint progress
- PyPi download counts
- ... (more to come)
- 📺 Multiple display options:
- Divoom Pixoo devices
- Terminal output
- Matplotlib visualization
- ... (more to come)
Quick Start
- Install the package:
pip install pixel_kpi
- Create a simple PyPi Download dashboard:
from pixel_kpi.displays.matplotlib_display import MatplotlibDisplay
from pixel_kpi.connectors.pypi_connector import PyPiConnector
from pixel_kpi.views.package_download_view import PackageDownloadView
# Create display
display = MatplotlibDisplay(
display_name="MatplotlibDisplay",
display_id=0,
width=64,
height=64
)
# Set up PyPi connector
pypi_connector = PyPiConnector()
# Create and run view
view = PackageDownloadView(display=display, connector=pypi_connector, processor=None, refresh_rate=60*15, main_color=(80, 255, 255), package_name=args.package_name)
view.run()
Examples
Check out the example scripts in the examples folder:
github_star_stats.py- Display GitHub repository starsnotion_sprint.py- Show Notion sprint progresspypi_downloads.py- Track PyPi package downloadsnotion_github_rotate.py- Rotate between multiple views
Example usage:
python examples/pypi_downloads.py --display_type matplot --package_name pi_optimal
python examples/github_star_stats.py \
--display_type matplot \
--github_api_key "xxx" \
--github_repo "owner/repo"
python examples/notion_sprint.py \
--display_type terminal \
--notion_api_key "your_notion_api_key" \
--notion_database_id "your_database_id" \
--refresh_rate 900
Learn More
Browse the Jupyter notebooks in notebooks to:
- See component examples and usage
- Learn how to create custom views
- Explore different display options
- Understand the data pipeline
Contributing
Setup
Here's how to get started:
- Fork & clone
- Setup dev environment:
poetry install
- Create feature branch:
git checkout -b feature/name
Structure
Here is the project structure:
📦 pixel_kpi
┣ 📂 pixel_kpi/ # Core package
┃ ┣ 📂 components/ # UI elements
┃ ┣ 📂 connectors/ # Data sources
┃ ┣ 📂 displays/ # Output targets
┃ ┣ 📂 processors/ # Data transforms
┃ ┗ 📂 views/ # Dashboards
┣ 📂 examples/ # Sample scripts
┗ 📂 notebooks/ # Tutorials
Core Concepts
- Components: Pixel-art UI elements (text, charts, progress bars, etc.)
- Connectors: Data sources (GitHub, Notion, PyPi, etc.)
- Displays: Output targets (Pixoo, terminal, Matplotlib, etc.)
- Processors: Data transforms (aggregations, filters, etc.)
- Views: Dashboards that combine components, connectors, displays, and processors
License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Release files for pixel_kpi 0.1.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 | |
|---|---|---|---|
| pixel_kpi-0.1.1.tar.gz | 23.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pixel_kpi-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.4 kB
Release files / pixel_kpi-0.1.1.tar.gz
| Download URL | pixel_kpi-0.1.1.tar.gz |
|---|---|
| Size | 23.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c2545a905526e0e71d1a7550c8bc9026d83d97baf3e6038fda6528cf556dce1
|
|
BLAKE2b-256 checksum How to use checksums |
ade7c4d10d3cb1f72b2ee77e5aa7f934526ad09712b8da152de54b104b5ec174
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.0.1 CPython/3.10.16 Linux/6.8.0-1020-azure
|
Release files / pixel_kpi-0.1.1-py3-none-any.whl
| Download URL | pixel_kpi-0.1.1-py3-none-any.whl |
|---|---|
| Size | 36.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eeda5bc4a5117bde1ae4f462f03c084fe4d19dd550f45870d995fc780ac52ba9
|
|
BLAKE2b-256 checksum How to use checksums |
f79059d5adfa95b388f6abec9798204c220a5c8c174ac7449c8e277fbf02eab3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.0.1 CPython/3.10.16 Linux/6.8.0-1020-azure
|