Sheen:
Pythonic cross-platform colored terminal text [support 16/256 colors]
Let color be your new dimension to integrate more imagination.
<div align=center></div>
Quick Learn
Come to try the code below, in your IDLE
```{.sourceCode .python}
from sheen import Str
Str.red(ârender font color with lowercaseâ) Str.RED(ârender background color with uppercaseâ) Str.Underline(ârender style with capitalâ)
Str.red.BLUE(âjoint rendering with dotâ) Str.BLUE.red(âyes! itâs free, no order restrainâ) Str.cyan.LIGHTBLUE.Underline(âesay to lean, ease to useâ)
Str.red(âYou can use it like builtin âstrââ).split(â â) text = Str.lightcyan.Twinkle(âLet us integrate more imaginationâ) text.replace(âLet usâ, Str.lightred(âpip install sheen, toâ)) Str.LIGHTWHITE(â@!$#!&&simplify for human! i am sheen!#@$#%^&â).title().strip(â!@#$%^&â) ```
Simple is better than complex. flat is better than nested. Readability counts. </br>-- excerpt from the zen of python
Str Type Supported:
black | red | green | yellow |
lightblack | lightred | lightgreen | lightyellow |
blue | magenta | cyan | white |
lightblue | lightmagenta | lightcyan | lightwhite |
BLACK | RED | GREEN | YELLOW |
BLUE | MAGENTA | CYAN | WHITE |
LIGHTBLACK | LIGHTRED | LIGHTGREEN | LIGHTYELLOW |
LIGHTBLUE | LIGHTMAGENTA | LIGHTCYAN | LIGHTWHITE |
Bold | Italic | Underline | Twinkle |
Installation
To install sheen, simply use pip:
```{.sourceCode .bash} $ pip install sheen $ python -m sheen
**If it's successfully installed, it will be as shown below.**
<div align=center><img src="https://raw.githubusercontent.com/EchoShoot/Sheen/master/docs/Tutor.gif"></div>
<p align="right">It's a simple way to get tutorial, you don't need to come here every time
<br>when you forget the usage of sheen</p>
Learn More
---
### How to display with 256 colors
> Your can choose the color that your like with 'Color' type
```{.sourceCode .python}
>>> from sheen import Str, Color
>>> Color.palette() # Reference color code
>>>
>>> Color.rgb(222)('render font color with rgb')
>>> Color.RGB(123)('render background color with RGB')
>>>
>>> Color.rgb([255,200,190])('render font color with rgb')
>>> Color.RGB([150,120,250])('render background color with RGB')
>>>
>>> DIYcolor = Color.rgb(222) | Color.RGB(123) | Str.Underline
>>> DIYcolor("It's my color style")
>>>
>>> text = Str.Underline('Use slice to modification color')
>>> text[:] = Color.rgb(222)
>>> text[-3:-5] = Color.RGB(123)
>>> text
<div align=center></div>
It's said that 256 colors can be valid in the terminal
but maybe invalid in the IDE
How to config Multicolored logging
Sheen has been build-in scheme, which can prints different colored logs based on log level:
<div align=center></div>
As you can see, sheen only takes 5 lines to complete
the configuration of the Multicolored logging
You can design âFormatterâ, to get color scheme which belong to yourself
import logging
from sheen import Str, ColoredHandler
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handle = ColoredHandler()
handle.setFormatter({
logging.DEBUG: logging.Formatter(fmt=str(Str.blue('%(asctime)s - %(levelname)s | %(message)s')), datefmt='%Y-%m-%d'),
logging.INFO: Str.magenta('%(asctime)s - %(levelname)s | %(message)s'),
})
logger.addHandler(handle)
logger.debug('debug')
logger.info('info')
logger.warning('warning')
logger.error('error')
logger.critical('critical')
Take it easy, it will be use after rendered as 'str' type
without affecting the logging output speed
### How to get the best performance
> Sheen was born for convenience, when you want the fastest, there is a way.
```{.sourceCode .python}
>>> from sheen import Str, Color
>>> str(Str.cyan.BLUE('... content ...'))
'\x1b[36;44m... content ...\x1b[0m'
>>>
```
<div align=center></div>
Don't forget to 'import sheen', It's necessary on windows.
-- Windows 10 is default closed ANSI Escape Code </p>
FAQ
---
- :speech_balloon: Why not support python2.7
> Python 2.7 will retire in 2020 https://pythonclock.org/,
> Many libraries already or will to give up compatibility 2.7,
> such as NumPy, Pandas, Ipython, Matplotlib ...
- :speech_balloon: Why not support version below Windows 10
> Windows support _ANSI Escape Code_ start with win10,
> this gives the possibility to use ANSI to display colors for sheen.
> the version below Windows 10 will retire in future, just like python2.7
- :speech_balloon: How to get the best running performance
> Render to _ANSI Escape Code_, and then copy it into your code, no faster than this.
> but in most cases you needn't to do this