ubelt.util_colors module

This module expoes simple functions to color your text and highlight your code using ANSI escape sequences. This works using the Pygments library, which is an optional requirement. Therefore, these functions only work properly if Pygments is installed, otherwise these functions will return the unmodified text and a warning will be printed.

Requirements:
pip install pygments
ubelt.util_colors.highlight_code(text, lexer_name='python', **kwargs)[source]

Highlights a block of text using ANSI tags based on language syntax.

Parameters:
  • text (str) – plain text to highlight
  • lexer_name (str) – name of language
  • **kwargs – passed to pygments.lexers.get_lexer_by_name
Returns:

text : highlighted text

If pygments is not installed, the plain text is returned.

Return type:

str

CommandLine:
python -c “import pygments.formatters; print(list(pygments.formatters.get_all_formatters()))”

Example

>>> import ubelt as ub
>>> text = 'import ubelt as ub; print(ub)'
>>> new_text = ub.highlight_code(text)
>>> print(new_text)
ubelt.util_colors.color_text(text, color)[source]

Colorizes text a single color using ansii tags.

Parameters:
  • 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:

text : colorized text.

If pygments is not installed plain text is returned.

Return type:

str

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'