palettes
Pure-Python, zero-dependency color palette toolkit
palettes provides pre-computed, display-ready and integer-indexed color lookup tables for any Python environment. It has zero dependencies on any other PyDevices library or external package, running identically on MicroPython, CircuitPython, CPython (desktop/server), and PyScript (Web).
Universal Color Tooling
While palettes integrates seamlessly with PyDevices displays, it is a standalone utility useful for any Python project needing easy-to-access named and indexed palettes, including:
- Embedded & Hardware: RGB565 displays, addressable LEDs / NeoPixels, status indicators.
- Terminal & CLI Tools: ANSI terminal formatting, logs, status alerts.
- Data & Charts: Consistent categorical and sequential color mapping.
- Theme Engines: Swappable UI color palettes with human-readable color names.
Palette Types & Previews
1. Color Wheel ("wheel")
Generates a smooth, continuous HSV-based color spectrum. Ideal for color pickers, circular progress rings, and continuous gradient animations:
from palettes import get_palette
# 360-step full saturation color wheel (16-bit RGB565)
wheel = get_palette(name="wheel", length=360, saturation=1.0, color_depth=16)
color = wheel[180] # get color at hue angle 180°
2. Material Design ("material_design")
A curated collection of modern UI colors based on Google's Material Design palette:
material = get_palette(name="material_design", color_depth=16)
primary_color = material[0]
color_name = material.color_name(0) # e.g., "Red 500"
3. Color Cube ("cube")
A structured 3D RGB color cube mapped into a discrete indexed palette. Excellent for retro imaging and color-space mapping:
cube = get_palette(name="cube", size=5, color_depth=16)
4. Named Windows-16 ("default")
The classic 16 standard system colors:
win16 = get_palette(name="default", color_depth=16)
navy = win16[1] # Black, Navy, Blue, Green, Teal, Lime, Cyan, etc.
Quick Start: Painting on a Display
import board_config
from palettes import get_palette
display_drv = board_config.display_drv
palette = get_palette(name="wheel", length=display_drv.width, color_depth=16)
# Draw a full-width color spectrum band
for x in range(display_drv.width):
display_drv.fill_rect(x, 0, 1, 40, palette[x])
display_drv.show()
Installation
import mip
mip.install("palettes", index="https://PyDevices.github.io/mip")
pip install -i https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ pydevices-palettes
Full options: docs/index.md.
Links & Demos
- Documentation
- Source Code
- PyScript Live Demos (
palettes_demo.py) - Related: pydevices, pdwidgets, pydevices-examples
License
MIT — see LICENSE.
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 pydevices_palettes-0.0.12.tar.gz.
File metadata
- Download URL: pydevices_palettes-0.0.12.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad48627cfbfa2a507531af76becd25c54d37d3a674d82674dd37fc5a4cbee6e7
|
|
| MD5 |
41efb86b4e16d44567acd4dcd817cf91
|
|
| BLAKE2b-256 |
e6854015fffbbbcac233065f9303709e38e959b494e9f5bb6b91bc06ef920fb7
|
File details
Details for the file pydevices_palettes-0.0.12-py3-none-any.whl.
File metadata
- Download URL: pydevices_palettes-0.0.12-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ad9c0639fc578273057cf26e7db78930d8afe67014fd5c71d96218a57d3fe9
|
|
| MD5 |
a04be72231855fa2d5c9832036f7c0db
|
|
| BLAKE2b-256 |
7c954c16c0269a870ab296333837cc72ec0aba9fb2d2d60c370b86298ce8eacb
|