# ``igraph`.`app`.`shell`.`TerminalController``

class documentation

`class TerminalController: (source)`

Constructor: `TerminalController(term_stream)`

View In Hierarchy

A class that can be used to portably generate formatted output to a terminal.

`TerminalController` defines a set of instance variables whose values are initialized to the control sequence necessary to perform a given action. These can be simply included in normal output to the terminal:

    >>> term = TerminalController()
    >>> print('This is '+term.GREEN+'green'+term.NORMAL)
    This is green

Alternatively, the `render()` method can used, which replaces `${action}` with the string required to perform `action`:

    >>> term = TerminalController()
    >>> print(term.render('This is ${GREEN}green${NORMAL}'))
    This is green

If the terminal doesn't support a given action, then the value of the corresponding instance variable will be set to ''. As a result, the above code will still work on terminals that do not support color, except that their output will not be colored. Also, this means that you can test whether the terminal supports a given action by simply testing the truth value of the corresponding instance variable:

    >>> term = TerminalController()
    >>> if term.CLEAR_SCREEN:
    ...     print 'This terminal supports clearning the screen.'
    ...

Finally, if the width and height of the terminal are known, then they will be stored in the `COLS` and `LINES` attributes.

Author
Edward Loper

Method | `__init__` | Create a `TerminalController` and initialize its attributes with appropriate values for the current terminal. `term_stream` is the stream that will be used for terminal output; if this stream is not a tty, then the terminal is assumed to be a dumb terminal (i...
Method | `render` | Replace each $-substitutions in the given template string with the corresponding terminal control string (if it's defined) or '' (if it's not).
Constant | `BG_BLACK` | Undocumented
Constant | `BG_BLUE` | Undocumented
Constant | `BG_CYAN` | Undocumented
Constant | `BG_GREEN` | Undocumented
Constant | `BG_MAGENTA` | Undocumented
Constant | `BG_RED` | Undocumented
Constant | `BG_WHITE` | Undocumented
Constant | `BG_YELLOW` | Undocumented
Constant | `BLACK` | Undocumented
Constant | `BLINK` | Undocumented
Constant | `BLUE` | Undocumented
Constant | `BOL` | Undocumented
Constant | `BOLD` | Undocumented
Constant | `CLEAR_BOL` | Undocumented
Constant | `CLEAR_EOL` | Undocumented
Constant | `CLEAR_EOS` | Undocumented
Constant | `CLEAR_SCREEN` | Undocumented
Constant | `CYAN` | Undocumented
Constant | `DIM` | Undocumented
Constant | `DOWN` | Undocumented
Constant | `GREEN` | Undocumented
Constant | `HIDE_CURSOR` | Undocumented
Constant | `LEFT` | Undocumented
Constant | `MAGENTA` | Undocumented
Constant | `NORMAL` | Undocumented
Constant | `RED` | Undocumented
Constant | `REVERSE` | Undocumented
Constant | `RIGHT` | Undocumented
Constant | `SHOW_CURSOR` | Undocumented
Constant | `UP` | Undocumented
Constant | `WHITE` | Undocumented
Constant | `YELLOW` | Undocumented
Instance Variable | `COLS` | Undocumented
Instance Variable | `LINES` | Undocumented
Static Method | `_tigetstr` | Rewrites string capabilities to remove "delays" which are not required for modern terminals
Static Method | `_tparm` | Undocumented
Method | `_render_sub` | Helper function for `render`
Constant | `_ANSICOLORS` | Undocumented
Constant | `_COLORS` | Undocumented
Constant | `_STRING_CAPABILITIES` | Undocumented

def __init__(self, term_stream=sys.stdout): (source)

Create a `TerminalController` and initialize its attributes with appropriate values for the current terminal. `term_stream` is the stream that will be used for terminal output; if this stream is not a tty, then the terminal is assumed to be a dumb terminal (i.e., have no capabilities).

def render(self, template): (source)

Replace each $-substitutions in the given template string with the corresponding terminal control string (if it's defined) or '' (if it's not).

BG_BLACK: `str` = (source)

Undocumented

Value

    ''

BG_BLUE: `str` = (source)

Undocumented

Value

    ''

BG_CYAN: `str` = (source)

Undocumented

Value

    ''

BG_GREEN: `str` = (source)

Undocumented

Value

    ''

BG_MAGENTA: `str` = (source)

Undocumented

Value

    ''

BG_RED: `str` = (source)

Undocumented

Value

    ''

BG_WHITE: `str` = (source)

Undocumented

Value

    ''

BG_YELLOW: `str` = (source)

Undocumented

Value

    ''

BLACK: `str` = (source)

Undocumented

Value

    ''

BLINK: `str` = (source)

Undocumented

Value

    ''

BLUE: `str` = (source)

Undocumented

Value

    ''

BOL: `str` = (source)

Undocumented

Value

    ''

BOLD: `str` = (source)

Undocumented

Value

    ''

CLEAR_BOL: `str` = (source)

Undocumented

Value

    ''

CLEAR_EOL: `str` = (source)

Undocumented

Value

    ''

CLEAR_EOS: `str` = (source)

Undocumented

Value

    ''

CLEAR_SCREEN: `str` = (source)

Undocumented

Value

    ''

CYAN: `str` = (source)

Undocumented

Value

    ''

DIM: `str` = (source)

Undocumented

Value

    ''

DOWN: `str` = (source)

Undocumented

Value

    ''

GREEN: `str` = (source)

Undocumented

Value

    ''

HIDE_CURSOR: `str` = (source)

Undocumented

Value

    ''

LEFT: `str` = (source)

Undocumented

Value

    ''

MAGENTA: `str` = (source)

Undocumented

Value

    ''

NORMAL: `str` = (source)

Undocumented

Value

    ''

RED: `str` = (source)

Undocumented

Value

    ''

REVERSE: `str` = (source)

Undocumented

Value

    ''

RIGHT: `str` = (source)

Undocumented

Value

    ''

SHOW_CURSOR: `str` = (source)

Undocumented

Value

    ''

UP: `str` = (source)

Undocumented

Value

    ''

WHITE: `str` = (source)

Undocumented

Value

    ''

YELLOW: `str` = (source)

Undocumented

Value

    ''

COLS = (source)

Undocumented

LINES = (source)

Undocumented

@staticmethod
def _tigetstr(cap_name): (source)

Rewrites string capabilities to remove "delays" which are not required for modern terminals

@staticmethod
def _tparm(cap_name, param): (source)

Undocumented

def _render_sub(self, match): (source)

Helper function for `render`

_ANSICOLORS = (source)

Undocumented

Value

    'BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE'.split()

_COLORS = (source)

Undocumented

Value

    'BLACK BLUE GREEN CYAN RED MAGENTA YELLOW WHITE'.split()

_STRING_CAPABILITIES = (source)

Undocumented

Value

    '\n    BOL=cr UP=cuu1 DOWN=cud1 LEFT=cub1 RIGHT=cuf1\n    CLEAR_SCREEN=clear CLE↵
    AR_EOL=el CLEAR_BOL=el1 CLEAR_EOS=ed BOLD=bold\n    BLINK=blink DIM=dim REVERSE=↵
    rev UNDERLINE=smul NORMAL=sgr0\n    HIDE_CURSOR=cinvis SHOW_CURSOR=cnorm'.split(↵
    )