colorpad 1.4.4
Simple library for color and formatting to terminal
Keywords: color,colour,paint,ansi,terminal,linux,python

Very simple Python library for color and formatting in terminal.
Collection of color codes and names for 256 color terminal setups.
The following is a list of 256 colors for Xterm, containing an example
of the displayed color, Xterm Name, Xterm Number and HEX.

.. image:: https://gitlab.com/dslackw/images/raw/master/colored/logo.png
    :target: https://gitlab.com/dslackw/colored

`[CHANGELOG] <https://gitlab.com/dslackw/colored/blob/master/CHANGES.md>`_

Video Demo
----------

.. image:: https://gitlab.com/dslackw/images/raw/master/colored/video.png
    :target: https://asciinema.org/a/bgxm6KisSvPkPwMsYLyBBJjth

The following colors works with most terminals and terminals emulators.
ANSI/VT100 escape sequences can be used in every programming languages.

Attributes:

.. code-block:: bash

    +-----+------------------+
    |Code | Description      |
    +-----+------------------+
    |  1  | bold             |
    |  2  | dim              |
    |  4  | underlined       |
    |  5  | blink            |
    |  7  | reverse          |
    |  8  | hidden           |
    |  0  | reset            |
    |  21 | res_bold         |
    |  22 | res_dim          |
    |  24 | res_underlined   |
    |  25 | res_blink        |
    |  27 | res_reverse      |
    |  28 | res_hidden       |
    +------------------------+


256 Foreground and Background Colors - Full Chart:

.. code-block:: bash

    +-----+---------------------+
    |Code | Description         |
    +-----+---------------------+
    | 0   | black               |
    | 1   | red                 |
    | 2   | green               |
    | 3   | yellow              |
    | 4   | blue                |
    | 5   | magenta             |
    | 6   | cyan                |
    | 7   | light_gray          |
    | 8   | dark_gray           |
    | 9   | light_red           |
    | 10  | light_green         |
    | 11  | light_yellow        |
    | 12  | light_blue          |
    | 13  | light_magenta       |
    | 14  | light_cyan          |
    | 15  | white               |
    | 16  | grey_0              |
    | 17  | navy_blue           |
    | 18  | dark_blue           |
    | 19  | blue_3a             |
    | 20  | blue_3b             |
    | 21  | blue_1              |
    | 22  | dark_green          |
    | 23  | deep_sky_blue_4a    |
    | 24  | deep_sky_blue_4b    |
    | 25  | deep_sky_blue_4c    |
    | 26  | dodger_blue_3       |
    | 27  | dodger_blue_2       |
    | 28  | green_4             |
    | 29  | spring_green_4      |
    | 30  | turquoise_4         |
    | 31  | deep_sky_blue_3a    |
    | 32  | deep_sky_blue_3b    |
    | 33  | dodger_blue_1       |
    | 34  | green_3a            |
    | 35  | spring_green_3a     |
    | 36  | dark_cyan           |
    | 37  | light_sea_green     |
    | 38  | deep_sky_blue_2     |
    | 39  | deep_sky_blue_1     |
    | 40  | green_3b            |
    | 41  | spring_green_3b     |
    | 42  | spring_green_2a     |
    | 43  | cyan_3              |
    | 44  | dark_turquoise      |
    | 45  | turquoise_2         |
    | 46  | green_1             |
    | 47  | spring_green_2b     |
    | 48  | spring_green_1      |
    | 49  | medium_spring_green |
    | 50  | cyan_2              |
    | 51  | cyan_1              |
    | 52  | dark_red_1          |
    | 53  | deep_pink_4a        |
    | 54  | purple_4a           |
    | 55  | purple_4b           |
    | 56  | purple_3            |
    | 57  | blue_violet         |
    | 58  | orange_4a           |
    | 59  | grey_37             |
    | 60  | medium_purple_4     |
    | 61  | slate_blue_3a       |
    | 62  | slate_blue_3b       |
    | 63  | royal_blue_1        |
    | 64  | chartreuse_4        |
    | 65  | dark_sea_green_4a   |
    | 66  | pale_turquoise_4    |
    | 67  | steel_blue          |
    | 68  | steel_blue_3        |
    | 69  | cornflower_blue     |
    | 70  | chartreuse_3a       |
    | 71  | dark_sea_green_4b   |
    | 72  | cadet_blue_2        |
    | 73  | cadet_blue_1        |
    | 74  | sky_blue_3          |
    | 75  | steel_blue_1a       |
    | 76  | chartreuse_3b       |
    | 77  | pale_green_3a       |
    | 78  | sea_green_3         |
    | 79  | aquamarine_3        |
    | 80  | medium_turquoise    |
    | 81  | steel_blue_1b       |
    | 82  | chartreuse_2a       |
    | 83  | sea_green_2         |
    | 84  | sea_green_1a        |
    | 85  | sea_green_1b        |
    | 86  | aquamarine_1a       |
    | 87  | dark_slate_gray_2   |
    | 88  | dark_red_2          |
    | 89  | deep_pink_4b        |
    | 90  | dark_magenta_1      |
    | 91  | dark_magenta_2      |
    | 92  | dark_violet_1a      |
    | 93  | purple_1a           |
    | 94  | orange_4b           |
    | 95  | light_pink_4        |
    | 96  | plum_4              |
    | 97  | medium_purple_3a    |
    | 98  | medium_purple_3b    |
    | 99  | slate_blue_1        |
    | 100 | yellow_4a           |
    | 101 | wheat_4             |
    | 102 | grey_53             |
    | 103 | light_slate_grey    |
    | 104 | medium_purple       |
    | 105 | light_slate_blue    |
    | 106 | yellow_4b           |
    | 107 | dark_olive_green_3a |
    | 108 | dark_green_sea      |
    | 109 | light_sky_blue_3a   |
    | 110 | light_sky_blue_3b   |
    | 111 | sky_blue_2          |
    | 112 | chartreuse_2b       |
    | 113 | dark_olive_green_3b |
    | 114 | pale_green_3b       |
    | 115 | dark_sea_green_3a   |
    | 116 | dark_slate_gray_3   |
    | 117 | sky_blue_1          |
    | 118 | chartreuse_1        |
    | 119 | light_green_2       |
    | 120 | light_green_3       |
    | 121 | pale_green_1a       |
    | 122 | aquamarine_1b       |
    | 123 | dark_slate_gray_1   |
    | 124 | red_3a              |
    | 125 | deep_pink_4c        |
    | 126 | medium_violet_red   |
    | 127 | magenta_3a          |
    | 128 | dark_violet_1b      |
    | 129 | purple_1b           |
    | 130 | dark_orange_3a      |
    | 131 | indian_red_1a       |
    | 132 | hot_pink_3a         |
    | 133 | medium_orchid_3     |
    | 134 | medium_orchid       |
    | 135 | medium_purple_2a    |
    | 136 | dark_goldenrod      |
    | 137 | light_salmon_3a     |
    | 138 | rosy_brown          |
    | 139 | grey_63             |
    | 140 | medium_purple_2b    |
    | 141 | medium_purple_1     |
    | 142 | gold_3a             |
    | 143 | dark_khaki          |
    | 144 | navajo_white_3      |
    | 145 | grey_69             |
    | 146 | light_steel_blue_3  |
    | 147 | light_steel_blue    |
    | 148 | yellow_3a           |
    | 149 | dark_olive_green_3  |
    | 150 | dark_sea_green_3b   |
    | 151 | dark_sea_green_2    |
    | 152 | light_cyan_3        |
    | 153 | light_sky_blue_1    |
    | 154 | green_yellow        |
    | 155 | dark_olive_green_2  |
    | 156 | pale_green_1b       |
    | 157 | dark_sea_green_5b   |
    | 158 | dark_sea_green_5a   |
    | 159 | pale_turquoise_1    |
    | 160 | red_3b              |
    | 161 | deep_pink_3a        |
    | 162 | deep_pink_3b        |
    | 163 | magenta_3b          |
    | 164 | magenta_3c          |
    | 165 | magenta_2a          |
    | 166 | dark_orange_3b      |
    | 167 | indian_red_1b       |
    | 168 | hot_pink_3b         |
    | 169 | hot_pink_2          |
    | 170 | orchid              |
    | 171 | medium_orchid_1a    |
    | 172 | orange_3            |
    | 173 | light_salmon_3b     |
    | 174 | light_pink_3        |
    | 175 | pink_3              |
    | 176 | plum_3              |
    | 177 | violet              |
    | 178 | gold_3b             |
    | 179 | light_goldenrod_3   |
    | 180 | tan                 |
    | 181 | misty_rose_3        |
    | 182 | thistle_3           |
    | 183 | plum_2              |
    | 184 | yellow_3b           |
    | 185 | khaki_3             |
    | 186 | light_goldenrod_2a  |
    | 187 | light_yellow_3      |
    | 188 | grey_84             |
    | 189 | light_steel_blue_1  |
    | 190 | yellow_2            |
    | 191 | dark_olive_green_1a |
    | 192 | dark_olive_green_1b |
    | 193 | dark_sea_green_1    |
    | 194 | honeydew_2          |
    | 195 | light_cyan_1        |
    | 196 | red_1               |
    | 197 | deep_pink_2         |
    | 198 | deep_pink_1a        |
    | 199 | deep_pink_1b        |
    | 200 | magenta_2b          |
    | 201 | magenta_1           |
    | 202 | orange_red_1        |
    | 203 | indian_red_1c       |
    | 204 | indian_red_1d       |
    | 205 | hot_pink_1a         |
    | 206 | hot_pink_1b         |
    | 207 | medium_orchid_1b    |
    | 208 | dark_orange         |
    | 209 | salmon_1            |
    | 210 | light_coral         |
    | 211 | pale_violet_red_1   |
    | 212 | orchid_2            |
    | 213 | orchid_1            |
    | 214 | orange_1            |
    | 215 | sandy_brown         |
    | 216 | light_salmon_1      |
    | 217 | light_pink_1        |
    | 218 | pink_1              |
    | 219 | plum_1              |
    | 220 | gold_1              |
    | 221 | light_goldenrod_2b  |
    | 222 | light_goldenrod_2c  |
    | 223 | navajo_white_1      |
    | 224 | misty_rose1         |
    | 225 | thistle_1           |
    | 226 | yellow_1            |
    | 227 | light_goldenrod_1   |
    | 228 | khaki_1             |
    | 229 | wheat_1             |
    | 230 | cornsilk_1          |
    | 231 | grey_100            |
    | 232 | grey_3              |
    | 233 | grey_7              |
    | 234 | grey_11             |
    | 235 | grey_15             |
    | 236 | grey_19             |
    | 237 | grey_23             |
    | 238 | grey_27             |
    | 239 | grey_30             |
    | 240 | grey_35             |
    | 241 | grey_39             |
    | 242 | grey_42             |
    | 243 | grey_46             |
    | 244 | grey_50             |
    | 245 | grey_54             |
    | 246 | grey_58             |
    | 247 | grey_62             |
    | 248 | grey_66             |
    | 249 | grey_70             |
    | 250 | grey_74             |
    | 251 | grey_78             |
    | 252 | grey_82             |
    | 253 | grey_85             |
    | 254 | grey_89             |
    | 255 | grey_93             |
    | 256 | default             |
    +-----+---------------------+

256 Colors Foreground (text):

.. image:: https://gitlab.com/dslackw/images/raw/master/colored/256_colors_fg.png
    :alt: 256 fg colors

256 Colors Background:

.. image:: https://gitlab.com/dslackw/images/raw/master/colored/256_colors_bg.png
    :alt: 256 bg colors


Installation
------------

.. code-block:: bash

    $ pip install colorpad --upgrade

    uninstall

    $ pip uninstall colorpad


Dependencies
------------

None, only Python programming language.

Usage Examples
--------------

How to use the module in your own python code:

.. code-block:: bash

    >>> from colorpad import fg, bg, attr
    >>>
    >>> print(f'{fg(1)} Hello World !!! {attr(0)}')
     Hello World !!!
    >>>
    >>> print(f'{fg(1)}{bg(15)} Hello World !!! {attr(0)}')
     Hello World !!!

Use description:

.. code-block:: bash

    >>> print(f'{fg("white")}{bg("yellow")} Hello World !!! {attr("reset")}')
     Hello World !!!
    >>>
    >>> print(f'{fg("orchid")}{attr("bold")} Hello World !!! {attr("reset")}')
     Hello World !!!
    >>>
    >>> color = bg('indian_red_1a') + fg('white')
    >>> reset = attr('reset')
    >>> print(color + 'Hello World !!!' + reset)
    Hello World !!!

Or use HEX code:

.. code-block:: bash

    >>> color = fg('#C0C0C0') + bg('#00005f')
    >>> res = attr('reset')
    >>> print(color + "Hello World !!!" + res)
    Hello World !!!

Or the convenient `stylize(text, *styles)` wrapper to save some keystrokes:

.. code-block:: bash

    >>> import colorpad
    >>> from colorpad import stylize
    >>> print(stylize("This is green.", colorpad.fg("green")))
    This is green.
    >>> print("This is not.")
    This is not.
    >>> angry = colorpad.fg("red") + colorpad.attr("bold")
    >>> print(stylize("This is angry text.", angry))
    This is angry text.
    >>> print(stylize("This is VERY angry text.", angry, colorpad.attr("underlined")))
    This is VERY angry text.
    >>> print("But this is not.")
    But this is not.

Or the variant `stylize_interactive(text, *styles)` for readline-friendliness:

.. code-block:: bash

    >>> import colorpad, sys
    >>> from colorpad import stylize_interactive, fg
    >>> sys.ps1 = stylize_interactive("myPrompt: ", fg('red'))
    myPrompt:

Use directly like `colorama <https://pypi.python.org/pypi/colorama>`_ but with more colors:

.. code-block:: bash

    >>> from colorpad import fore, back, style
    >>>
    >>> print(fore.LIGHT_BLUE + back.RED + style.BOLD + "Hello World !!!" + style.RESET)

Import colorpad module:

.. code-block:: bash

   >>> import colorpad
   >>>
   >>> colorpad.fg(1)
   '\x1b[38;5;1m'
   >>>
   >>> colorpad.fg(257)
   Traceback (most recent call last):
     File "<input>", line 1, in <module>
     File "/usr/lib64/python2.7/site-packages/colorpad/colorpad.py", line 381, in fg
       return colorpad(color).foreground()
     File "/usr/lib64/python2.7/site-packages/colorpad/colorpad.py", line 350, in foreground
       color = self.reserve_paint[str(self.color)]
   KeyError: '257'
   >>>
   >>> colorpad.bg(30)
   '\x1b[48;5;30m'
   >>>
   >>> colorpad.fore.BLUE
   '\x1b[38;5;4m'

    etc.


Screenshot:

.. image:: https://gitlab.com/dslackw/images/raw/master/colored/screenshot-2.png
    :alt: example