Object-oriented library for stylizing terminal output
Project description
Object-oriented library for stylizing terminal output
Installation
$ pip install object-colors
Usage
Import the Color object from object_colors
>>> from object_colors import Color
Args can be provided as strings or as indices corresponding to their index in an ANSI escape sequence
>>> Color(effect="bold", fore="red", back="green")
Color(effect=1, fore=1, back=2, objects())
The following would yield the same result
>>> Color(effect=1, fore=1, back=2)
Color(effect=1, fore=1, back=2, objects())
The above options are part of the below mapping
>>> for i, c in enumerate(Color.colors):
... print(i, c)
0 black
1 red
2 green
3 yellow
4 blue
5 magenta
6 cyan
7 white
>>> for i, e in enumerate(Color.effects):
... print(i, e)
0 none
1 bold
2 dim
3 italic
4 underline
5 blink
6 blinking
7 negative
8 empty
9 strikethrough
To configure the current object either effect, fore, or back can be provided
They must be an int, str, or None type
>>> c = Color()
>>> c.set(effect="bold", fore="red", back="red")
>>> c
Color(effect=1, fore=1, back=1, objects())
Create new objects with by providing a dict object with any keyword argument
Use set to set multiple parameters
>>> c = Color()
>>> c.set(bold_green=dict(effect="bold", fore="green"))
>>> c
Color(effect=None, fore=None, back=None, objects(bold_green))
Return str or tuple using get
>>> c = Color()
>>> c.set(red=dict(fore="red"))
>>> c.set(yellow=dict(fore="yellow"))
>>> f"{c.red.get('*')} {c.yellow.get('Warning')}"
'\x1b[31m*\x1b[0;0m \x1b[33mWarning\x1b[0;0m'
>>> c = Color()
>>> c.set(red=dict(fore="red"))
>>> xyz = c.red.get("x", "y", "z")
>>> xyz
('\x1b[31mx\x1b[0;0m', '\x1b[31my\x1b[0;0m', '\x1b[31mz\x1b[0;0m')
>>> x, y, z = xyz
>>> f"{x} {y} {z}"
'\x1b[31mx\x1b[0;0m \x1b[31my\x1b[0;0m \x1b[31mz\x1b[0;0m'
Print the result using print
>>> c = Color(effect="bold", fore="cyan")
>>> # doctest strips ansi codes from print
>>> c.print("bold cyan") # '\x1b[1;36mbold cyan\x1b[0;0m'
bold cyan
Load all effect, fore, or back elements using populate()
>>> c = Color()
>>> c.populate("fore")
>>> c
Color(effect=None, fore=None, back=None, objects(black, red, green, yellow, blue, magenta, cyan, white))
>>> c = Color()
>>> c.set(red=dict(fore="red"))
>>> c.red.populate("effect")
>>> c.red
Color(effect=None, fore=1, back=None, objects(none, bold, dim, italic, underline, blink, blinking, negative, empty, strikethrough))
>>> # doctest strips ansi codes from print
>>> c.red.strikethrough.print("strikethrough red") # '\x1b[9;31mstrikethrough red\x1b[0;0m'
strikethrough red
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
File details
Details for the file object_colors-2.3.1.tar.gz
.
File metadata
- Download URL: object_colors-2.3.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.8.13 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05edbd30bb3adc8257c804162df0acb05191d3237786e528801f4aba048205b9 |
|
MD5 | 7e72d2daf3f4ad65d415514948bcb4b0 |
|
BLAKE2b-256 | a36abab560526a8749cf62c4c8d4f83c62358a8c46786966eb19af30329145bc |
File details
Details for the file object_colors-2.3.1-py3-none-any.whl
.
File metadata
- Download URL: object_colors-2.3.1-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.8.13 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | be4484add2dcc380a3bef6f19684a96b2a0a578285453fa2a44b9e37949d4f84 |
|
MD5 | 2e05b4aafb8c06da5683c42829fb860d |
|
BLAKE2b-256 | 051608bb4bf77b7c5f1ce9fe2111cefedb7afa9f7fa5a4327a1a9e82db15c342 |