module documentation

Character attribute manipulation API.

This module provides a domain-specific language (using Python syntax) for the creation of text with additional display attributes associated with it. It is intended as an alternative to manually building up strings containing ECMA 48 character attribute control codes. It currently supports foreground and background colors (black, red, green, yellow, blue, magenta, cyan, and white), intensity selection, underlining, blinking and reverse video. Character set selection support is planned.

Character attributes are specified by using two Python operations: attribute lookup and indexing. For example, the string "Hello world" with red foreground and all other attributes set to their defaults, assuming the name twisted.conch.insults.text.attributes has been imported and bound to the name "A" (with the statement from twisted.conch.insults.text import attributes as A, for example) one uses this expression:

    A.fg.red["Hello world"]

Other foreground colors are set by substituting their name for "red". To set both a foreground and a background color, this expression is used:

    A.fg.red[A.bg.green["Hello world"]]

Note that either A.bg.green can be nested within A.fg.red or vice versa. Also note that multiple items can be nested within a single index operation by separating them with commas:

    A.bg.green[A.fg.red["Hello"], " ", A.fg.blue["world"]]

Other character attributes are set in a similar fashion. To specify a blinking version of the previous expression:

    A.blink[A.bg.green[A.fg.red["Hello"], " ", A.fg.blue["world"]]]

A.reverseVideo, A.underline, and A.bold are also valid.

A third operation is actually supported: unary negation. This turns off an attribute when an enclosing expression would otherwise have caused it to be on. For example:

    A.underline[A.fg.red["Hello", -A.underline[" world"]]]

A formatting structure can then be serialized into a string containing the necessary VT102 control codes with assembleFormattedText.

Author
Jp Calderone
See Also
twisted.conch.insults.text._CharacterAttributes
Function assembleFormattedText Assemble formatted text from structured information.
Variable attributes Undocumented
Class _CharacterAttributes Factory for character attributes, including foreground and background color and non-color attributes such as bold, reverse video and underline.
Constant _TEXT_COLORS Undocumented
def assembleFormattedText(formatted): (source)

Assemble formatted text from structured information.

Currently handled formatting includes: bold, blink, reverse, underline and color codes.

For example:

    from twisted.conch.insults.text import attributes as A
    assembleFormattedText(
        A.normal[A.bold['Time: '], A.fg.lightRed['Now!']])

Would produce "Time: " in bold formatting, followed by "Now!" with a foreground color of light red and without any additional formatting.

Parameters
formattedStructured text and attributes.
Returns
strString containing VT102 control sequences that mimic those specified by formatted.
See Also
twisted.conch.insults.text._CharacterAttributes
Present Since
13.1
attributes = (source)

Undocumented

_TEXT_COLORS = (source)

Undocumented

Value
{'black': helper.BLACK,
 'red': helper.RED,
 'green': helper.GREEN,
 'yellow': helper.YELLOW,
 'blue': helper.BLUE,
 'magenta': helper.MAGENTA,
 'cyan': helper.CYAN,
...