Adding colours to Python simplified into a single class
Project description
Pypi | Read the Docs | Github Pages
Installation
pip install object-colors
Setup
from object_colors import Color c = Color()
Usage
- key-values
- Match effects with effect and colors with text and background
keys = ["text", "effect", "background"] values = { "colors": ["black", "red", "green", "yellow", "blue", "purple", "cyan", "white"] "effects": ['none', "bold", 'bright', "underline", "negative"] }
For most versatile usage simply instantiate the class with the string argument “colors”
This will populate the instance with a subclass for every key in the “colors” object
>>> from object_colors import Color >>> c = Color("colors") >>> print(c.__dict__) { 'text': 7, 'effect': 0, 'background': 0, 'black': <object_colors.Color object at 0x7f3302cf4b10>, 'red': <object_colors.Color object at 0x7f3303aa5d10>, 'green': <object_colors.Color object at 0x7f33037a7710>, 'yellow': <object_colors.Color object at 0x7f3302bd4710>, 'blue': <object_colors.Color object at 0x7f3302bd4d50>, 'purple': <object_colors.Color object at 0x7f3302ce0910>, 'cyan': <object_colors.Color object at 0x7f33037ddc10>, 'white': <object_colors.Color object at 0x7f33005e4c10>, 'bold': <object_colors.Color object at 0x7f3303b09a90> }
This can be further enhanced with the Color.bold object, initialized when bold has not been activated
>>> c.red.print("not bold") >>> c.red.bold.print("bold")
All colors, effects and objects can be manipulated however the user pleases, provided a keyword is not used outside its purpose
Methods
- set()
- Set values with keyword arguments
>>> c.set(text="red", effect="bold", background="blue") >>> c.set("red", "bold", "blue") >>> c.set(114) >>> print(c.__dict__)
{'text': 1, 'effect': 1, 'background': 4}
Set a new class with a keyword (any key) followed by a dict value
>>> c.set( red={"text": "red"}, bold_red={"text": "red", "effect": "bold"}, yellow={"text": "yellow"} ) >>> c.yellow.set(effect="bold") >>> print(c.__dict__)
{ 'text': 1, 'effect': 1, 'background': 4, 'red': <object_colors.Color object at 0x0000020C10D06080>, 'bold_red': <object_colors.Color object at 0x0000020C10D066D8>, 'yellow': <object_colors.Color object at 0x0000020C10D06B00> }
>>> print(c.yellow.__dict__)
{'text': 3, 'effect': 1, 'background': 0}
- get()
- Store values for multicolored printing
>>> bullet = c.red.get("[!] ") >>> warning = c.yellow("Warning") >>> print(bullet + warning)
returns a string or a tuple
>>> a, b, c = c.red.get("a", "b", "c")
- print()
- Instance includes enhanced print() function for color output
>>> c.print("no color print") >>> c.red.print("red print", flush=True) >>> c.yellow.print("yellow print", end="")
- pop()
- Remove unused attributes
>>> c.pop("bold_red") >>> print(c.__dict__)
{ 'text': 1, 'effect': 1, 'background': 4, 'red': <object_colors.Color object at 0x0000020C10D06080>, 'yellow': <object_colors.Color object at 0x0000020C10D06B00> }
Or create new instances
>>> red = c.pop("red") >>> print(c.__dict__)
{ 'text': 1, 'effect': 1, 'background': 4, 'yellow': <object_colors.Color object at 0x0000020C10D06B00> }
>>> print(red.__dict__)
{'text': 1, 'effect': 0, 'background': 0}
>>> red.print() >>> red.get() >>> red.set()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size object_colors-1.0.6-py3-none-any.whl (6.9 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size object-colors-1.0.6.tar.gz (6.0 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for object_colors-1.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5644fcea70cc0ae3d8c3fe42ebb5d166993c37b9ef2f0fa1a2236ca34cbe1fd5 |
|
MD5 | 67b690f445ba1b2b2d6a9c7039ca957e |
|
BLAKE2-256 | 16898b4484cabc630269d4120a1487727a66ea81956066c8b0d7705d5afdf736 |