Colorize text and data structures in the terminal with ANSI escape codes and themed decorators.
Project description
ColorDoll: Nested ANSI Colorization for Python
ColorDoll is a Python library that provides flexible and powerful ANSI colorization, including nested colorization and theming for complex data structures like dictionaries, lists, and JSON strings.
Features
- Nested Colorization: Handles nested ANSI color codes gracefully, ensuring correct color rendering even with complex formatting.
- Theming: Supports predefined and custom themes for consistent colorization across your output.
- Data Structure Coloring: Colorizes dictionaries, lists, and JSON strings recursively, highlighting keys, values, and different data types.
- Decorator Support: Provides decorators for easily colorizing function outputs and applying themes.
- Customizable Configurations: Allows loading color configurations from JSON files or dictionaries.
Installation
pip install colordoll
Usage
Basic Colorization
from colordoll import default_colorizer, red, blue, green
# Using color functions
print(red("This is red text."))
print(blue("This is blue text."))
# Using the colorize method with foreground and background colors
print(default_colorizer.colorize("Yellow text on a blue background", "yellow", "blue"))
# Handling nested colors correctly
print(default_colorizer.colorize(f"This is {default_colorizer.colorize('red text', 'red')} inside blue text.", "blue"))
Themed Colorization
from colordoll import darktheme, vibranttheme
@darktheme
def get_data():
return {"key1": "value1", "key2": [1, 2, 3], "key3": True}
@vibranttheme
def get_other_data():
return [{"name": "Item 1", "value": 10}, {"name": "Item 2", "value": 20}]
print(get_data())
print(get_other_data())
Custom Themes and Configurations
from colordoll import Colorizer, ColorConfig
# Load a custom color configuration from a JSON file
config = ColorConfig("my_colors.json") # my_colors.json contains your custom color definitions
colorizer = Colorizer(config)
# Create a custom theme
my_theme = {
"key": "bright_magenta",
"string": "cyan",
"number": "yellow",
"bool": "green",
"null": "red",
"other": "blue"
}
# Colorize data using the custom theme
colored_data = colorizer.theme_colorize({"my_key": "my_value", "numbers": [1, 2, 3]}, my_theme)
print(colored_data)
Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues.
License
This project is licensed under the MIT License.
Change Log
0.1 (Initial Release)
- Implemented core colorization functionality.
- Created nested colorization and background colorization abilities. Superpower!
- Introduced theming and decorator support.
- Enabled custom color configurations.
- Included various pre-defined themes.
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 colordoll-0.1.2.tar.gz.
File metadata
- Download URL: colordoll-0.1.2.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f256ec19b0c57da1826c730ea741c2d07c5fc595a504e22ff6336b9a713c4a4a
|
|
| MD5 |
3d23e93102e101c583bccdc7974e09c3
|
|
| BLAKE2b-256 |
fd926a53d2b4bdfad6a268f97e8a8426c5bf1efac8eb280984bb1d79d8ab12d5
|
File details
Details for the file colordoll-0.1.2-py3-none-any.whl.
File metadata
- Download URL: colordoll-0.1.2-py3-none-any.whl
- Upload date:
- Size: 2.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
146b55cf2eed0e6b4983140b1254c19fe9c5a72706381727100926192e8e48ef
|
|
| MD5 |
8120a86958308dee3a3a9a0e381c5978
|
|
| BLAKE2b-256 |
0451ba23da6621ab44dd7ebdc9e13a874ab319b473460df456056c599fd429b7
|