A lightweight, easy-to-use Python library for enhanced terminal output, combining string-friendly color styling with one-step ANSI image rendering.
Project description
About
cobra-color is a lightweight, easy-to-use Python library for enhanced terminal output, combining string-friendly color styling with one-step ANSI image rendering.
- Python: 3.9+
Features
- 🚀 Strong compatibility with native Python strings: Keep familiar
strworkflows while preserving color/style through operations like concatenation and transformations. - 🚀 Full terminal rendering toolkit: Supports both styled text output and image-to-ANSI conversion across multiple modes (such as ascii, half-color, and gray).
- 🚀 Lightweight and developer-friendly: Minimal core dependencies, optional render extras, and safe_print support for tqdm/rich-friendly console output.
Installation
Install from PyPI
This installs the core package with minimal dependencies.
pip install cobra-color
Install with Optional Dependencies
cobra.render module support.
pip install cobra-color[render]
Quick Start
-
Render a text in the terminal:
from cobra_color import cstr, safe_print c_text_1 = cstr("Hello World!", fg="r", styles=["bold"]) # Print directly from the terminal print(c_text_1) c_text_2 = cstr("Hello World!", fg=(255, 255, 255), styles=["udl", "bold"]) # Alternatively, you can use safe_print() to automatically support progress bar modes like tqdm and rich. safe_print(c_text_2) # Merge `c_text_1` and `c_text_2` while preserving their colors and style formatting. c_text_3 = c_text_1 + c_text_2 # You can continue to use str's proprietary functions and keep the existing colors and styles. c_text_1.upper()
-
Render an image in the terminal:
from cobra_color.render import imgfile_to_ansi, safe_print # ASCII art safe_print(imgfile_to_ansi("example.jpg", width=80, mode="ascii")) # Half-block color (recommended for truecolor terminals) imgfile_to_ansi("example.jpg", width=80, mode="half-color", display=True)
-
Render some text with fonts in the terminal:
from cobra_color.draw import fonttext_to_ansi, FontName, safe_print # Borderless grayscale font safe_print(fonttext_to_ansi( "Hello World!", font=FontName.LLDISCO, mode="half-gray", trim_border=True ))
Image Modes
ascii: monochrome ASCII using a density charset.color: colorized character fill.half-color: half-block characters with color (higher density, good visual quality).gray: grayscale characters.half-gray: half-block grayscale.
Tip: For best results, use a TrueColor-capable terminal and a monospaced font.
Requirements
- Python >= 3.9
- (Optional)
Pillow>= 9.0, < 11.0 - (Optional)
NumPy>= 1.21, < 2.0
License
See LICENSE in the repository.
Links
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 cobra_color-1.3.13.tar.gz.
File metadata
- Download URL: cobra_color-1.3.13.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18e0491949664fa2891b149b373baf2ee7519add7bd036dfc3b43064336d4dc4
|
|
| MD5 |
a381b43acc1377761a8183800ae84801
|
|
| BLAKE2b-256 |
e1abd5b99b44a1981f15643fdc36bb7f7e2e56c558ac7ab9a76337a594949733
|
File details
Details for the file cobra_color-1.3.13-py3-none-any.whl.
File metadata
- Download URL: cobra_color-1.3.13-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f10dfd659fb6bee3a997673e12110159b44398e8309b686693176fb62782113c
|
|
| MD5 |
02841a7a95d5fb31f955b7e60ceeba2f
|
|
| BLAKE2b-256 |
c227d91516e50902286ec87235435d4268891ad68d5fe8ba04d99e9a98b374cc
|