Terminal Utilities
******************

Utilities for working with the terminal.

**Module Overview:**

   encoding - provides the ANSI escape sequence for a terminal attribute
   format - wrap text with ANSI for the given colors or attributes

stem.util.term.Color(enum)

stem.util.term.BgColor(enum)

   Foreground or background terminal colors.

   +-------------+---------------+
   | Color       | Description   |
   +=============+===============+
   | **BLACK**   | black color   |
   +-------------+---------------+
   | **BLUE**    | blue color    |
   +-------------+---------------+
   | **CYAN**    | cyan color    |
   +-------------+---------------+
   | **GREEN**   | green color   |
   +-------------+---------------+
   | **MAGENTA** | magenta color |
   +-------------+---------------+
   | **RED**     | red color     |
   +-------------+---------------+
   | **WHITE**   | white color   |
   +-------------+---------------+
   | **YELLOW**  | yellow color  |
   +-------------+---------------+

stem.util.term.Attr(enum)

   Terminal text attributes.

   Changed in version 1.5.0: Added the LINES attribute.

   +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | Attr                | Description                                                                                                                                                                                            |
   +=====================+========================================================================================================================================================================================================+
   | **BOLD**            | heavy typeface                                                                                                                                                                                         |
   +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | **HIGHLIGHT**       | inverted foreground and background                                                                                                                                                                     |
   +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | **UNDERLINE**       | underlined text                                                                                                                                                                                        |
   +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | **READLINE_ESCAPE** | wrap encodings in RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE sequences                                                                                                                            |
   +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
   | **LINES**           | formats lines individually                                                                                                                                                                             |
   +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

stem.util.term.encoding(*attrs)

   Provides the ANSI escape sequence for these terminal color or
   attributes.

   New in version 1.5.0.

   Parameters:
      **attr** (*list*) – "Color", "BgColor", or "Attr" to provide an
      ecoding for

   Returns:
      **str** of the ANSI escape sequence, **None** no attributes are
      recognized

stem.util.term.format(msg, *attr)

   Simple terminal text formatting using ANSI escape sequences. The
   following are some toolkits providing similar capabilities:

   * django.utils.termcolors

   * termcolor

   * colorama

   Changed in version 1.6.0: Normalized return value to be unicode to
   better support python 2/3 compatibility.

   Parameters:
      * **msg** (*str*) – string to be formatted

      * **attr** (*str*) – text attributes, this can be "Color",
        "BgColor", or "Attr" enums and are case insensitive (so
        strings like ‘red’ are fine)

   Returns:
      **unicode** wrapped with ANSI escape encodings, starting with
      the given attributes and ending with a reset
