runtimepy.tui package#

Subpackages#

Submodules#

runtimepy.tui.cursor module#

A basic cursor implementation for TUIs.

class runtimepy.tui.cursor.Cursor(window: Any)[source]#

Bases: object

A simple cursor implementation.

property height: int#

Get the height of this cursor’s window.

inc_x(amount: int = 1) bool[source]#

Increment the cursor’s X coordinate.

inc_y(amount: int = 1) bool[source]#

Increment the cursor’s Y coordinate.

move(new_y: int = None, new_x: int = None) bool[source]#

Perform the underlying cursor move.

poll_max() bool[source]#

Update the min and max cursor positions.

reset() None[source]#

Reset this cursor.

property width: int#

Get the width of this cursor’s window.

runtimepy.tui.mixin module#

A module for terminal user-interface application mixins.

runtimepy.tui.mixin.CursesWindow#

alias of Any

class runtimepy.tui.mixin.Cursor(window: Any)[source]#

Bases: object

A simple cursor implementation.

property height: int#

Get the height of this cursor’s window.

inc_x(amount: int = 1) bool[source]#

Increment the cursor’s X coordinate.

inc_y(amount: int = 1) bool[source]#

Increment the cursor’s Y coordinate.

move(new_y: int = None, new_x: int = None) bool[source]#

Perform the underlying cursor move.

poll_max() bool[source]#

Update the min and max cursor positions.

reset() None[source]#

Reset this cursor.

property width: int#

Get the width of this cursor’s window.

class runtimepy.tui.mixin.TuiMixin(window: Any | None = None)[source]#

Bases: object

A class mixin for building TUI applications.

cursor: Cursor#
async handle_char(char: int) bool[source]#

Handle character input.

init(window: Any | None) bool[source]#

Initialize this interface’s window.

tui_update() None[source]#

Re-draw the screen.

update_dimensions() Any[source]#

Handle an update to the window’s dimensions.

property window: Any#

Get the window for this instance.

runtimepy.tui.mock module#

A module implementing a simple window mock.

class runtimepy.tui.mock.WindowMock(width: int = 64, height: int = 64)[source]#

Bases: object

A simple window mock.

getmaxyx() Tuple[int, int][source]#

Get maximum x and y position.

move(y: int, x: int) None[source]#

Move the mocked cursor.

resize(nlines: int, ncols: int) None[source]#

A simple re-size method.

runtimepy.tui.mock.stage_char(data: int) None[source]#

Stage an input character.

runtimepy.tui.mock.wrapper_mock(*args, **kwargs) None[source]#

Create a virtual window.

runtimepy.tui.task module#

A task entry-point for a text user-interface.

class runtimepy.tui.task.TuiTask(name: str, period_s: float, env: ChannelEnvironment, average_depth: int = 10, max_iterations: int = 0)[source]#

Bases: AsyncTask

A task implementation for a text user-interface.

async dispatch(*_, **__) bool[source]#

Dispatch this task.

async init(*args, **__) bool[source]#

Initialize this task.

init_channels(env: ChannelEnvironment) None[source]#

Initialize task-specific channels.

Module contents#