ui.termcontrol¶
Terminal control support.
This module provides mechanisms for prettied up output to a terminal. It uses curses to to the heavy lifting.
Module Members¶
Classes¶
-
class
ui.termcontrol.Options¶ This is a temporary hack.
-
ui.termcontrol.colours This is a temporary hack.
-
ui.termcontrol.darkbg This is a temporary hack.
-
class
ui.termcontrol.CursesBase(themeName="default")¶ Base class for UI classes that make some use of curses.
Subclasses need not necessarily provide a typicla curses UI. For example the
TermOutputclass only uses this to get colour and highlighting sequences.
Base class: cstest.ui.colours.ThemedUI
Subclass:
TermOutput
-
class
ui.termcontrol.PTYRedirector¶ Context manager: Use pseudo terminal to capture terminal stdout.
On entry this creates a master/slave pseudo terminal pair. The slave is used to replace the FD=1 (the process’s stdout). While the context exists the
read()method provides all text writtent to FD=1 since the last call.The original stdout is restored when the context is exited.
This is used by the
TermOutputclass to ‘capture’ colour and other escapes sequences usingcurses.-
read() Read any buffered input from the master pseudo terminal.
-
-
class
ui.termcontrol.TermOutput(*args, **kwargs)¶ Abstract layer around sys.stdout supporting colour, bold. etc.
This provides a very small subset of a curses window’s methods.
TODO: Actually this is not emulating cursed, see comment for
addstr.
Base class:
CursesBase-
addstr(s, style=None) Add a string using a particular named style.
-
flush(**kwargs) Flush the underlying standard out file.
-
setupColours(stdscr, redirector) Collect escape sequences.
Uses curses to write text in the various styles and extract the escape sequences from captured output.
-
write(text) Write a plain string.
This is provided to support the standard file API.
-
writeLines(lines, lmargin=0, style=None, finalEOL=True) Write a sequence of lines, all with the same style.
Arguments
- lines
- A sequenceof the lines to write.
- lmargin
- A number os spaces to add as the left marging for each line.
- style
- The name of the style to apply.
- finalEOL
- Whether to add a newline o the final line. By defalt this is
True.
-