code: def color_text(text, color):
      r
      if color is None:
          return text
      try:
          import pygments
          import pygments.console
  
          if sys.platform.startswith('win32'):  # nocover
              # Hack on win32 to support colored output
              import colorama
              colorama.init()
  
          ansi_text = pygments.console.colorize(color, text)
          return ansi_text
      except ImportError:  # nocover
          import warnings
          warnings.warn('pygments is not installed, text will not be colored')
          return text
docs: r"""
      Colorizes text a single color using ansii tags.
  
      Args:
          text (str): text to colorize
          color (str): may be one of the following: yellow, blink, lightgray,
              underline, darkyellow, blue, darkblue, faint, fuchsia, black,
              white, red, brown, turquoise, bold, darkred, darkgreen, reset,
              standout, darkteal, darkgray, overline, purple, green, teal, fuscia
  
      Returns:
          str: text : colorized text.
              If pygments is not installed plain text is returned.
  
      CommandLine:
          python -c "import pygments.console; print(sorted(pygments.console.codes.keys()))"
          python -m ubelt.util_colors color_text
  
      Example:
          >>> text = 'raw text'
          >>> import pytest
          >>> import ubelt as ub
          >>> if ub.modname_to_modpath('pygments'):
          >>>     # Colors text only if pygments is installed
          >>>     assert color_text(text, 'red') == '\x1b[31;01mraw text\x1b[39;49;00m'
          >>>     assert color_text(text, None) == 'raw text'
          >>> else:
          >>>     # Otherwise text passes through unchanged
          >>>     assert color_text(text, 'red') == 'raw text'
          >>>     assert color_text(text, None) == 'raw text'