Extend Rich with the ability to parse CSS color names and 3-digit hex colors.
Project description
rich-color-ext
rich-color-ext extends the great rich library to be able to parse 3-digit hex colors (ie. #09F) and CSS color names (ie. rebeccapurple).
Installation
uv (recommended)
# via uv directly
uv add rich-color-ext
or
# or via pip through uv
uv pip add rich-color-ext
pip
pip install rich-color-ext
Usage
To make use of rich-color-ext all you need to do is import and install it at the start of your program:
from rich_color_ext import install
from rich.console import Console
install() # Patch Rich's Color.parse method
console = Console(width=64)
console.print(
Panel(
"This is the [b #00ff99]rich_color_ext[/b #00ff99] \
example for printing CSS named colors ([bold rebeccapurple]\
rebeccapurple[/bold rebeccapurple]), 3-digit hex \
colors ([bold #f0f]#f0f[/bold #f0f]), and [b #99ff00]\
rich.color_triplet.ColorTriplet[/b #99ff00] & [b #00ff00]\
rich.color.Color[/b #00ff00] instances.",
padding=(1,2)
),
justify="center"
)
Packaging with PyInstaller
When bundling the project with PyInstaller you must include the JSON resource colors.json so it is available at runtime inside the bundle. There are two simple ways to do this.
-
Pass the file with the command-line option
--add-data:-
macOS / Linux (colon separator):
pyinstaller --onefile --add-data "src/rich_color_ext/colors.json:rich_color_ext" your_entry_script.py
-
Windows (semicolon separator):
pyinstaller --onefile --add-data "src\\rich_color_ext\\colors.json;rich_color_ext" your_entry_script.py
-
-
Add the file to the spec file's
Analysis.dataslist. Example snippet to paste into your.specfile:a = Analysis( ['your_entry_script.py'], pathex=[], binaries=[], datas=[('src/rich_color_ext/colors.json', 'rich_color_ext')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=None, )
Helper script
A small helper script is provided to build with PyInstaller and automatically choose the correct data separator for your platform. By default it builds the example src/rich_color_ext/cli.py entry script but you can pass any entry script as the first argument.
Usage:
./scripts/pyinstaller_build.sh [path/to/your_entry_script.py] # src/rich_color_ext/cli.py
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 rich_color_ext-0.1.7.tar.gz.
File metadata
- Download URL: rich_color_ext-0.1.7.tar.gz
- Upload date:
- Size: 30.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
923db958f013e911f6abb6a4df4519ab9ecdaa9d07b49a5361a221c31e36c564
|
|
| MD5 |
d60b7f82b36037264b69bd489a46349b
|
|
| BLAKE2b-256 |
66701269f813b777d94643a064dc3373686f98ff7db1dd03f9bca45425afbbbb
|
File details
Details for the file rich_color_ext-0.1.7-py3-none-any.whl.
File metadata
- Download URL: rich_color_ext-0.1.7-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
147c545229bc85f1d5004b1ed7948595d5103f28b3e0de802c9a9b7f375758b4
|
|
| MD5 |
a71d7ce18b053dd1414645bfd7de42ea
|
|
| BLAKE2b-256 |
751cd9df49b6e35216cf1924e0562278de514a7a936c9fb411ad3afac2a8a5bb
|