nexusLIMS.tui.common.base_app#

Base application class for NexusLIMS TUI applications.

Provides common functionality including theme switching, database session management, help screens, and error notifications.

Module Contents#

Classes#

HelpScreen

Help screen showing keybindings and usage information.

BaseNexusApp

Base application class for NexusLIMS TUI apps.

API#

class nexusLIMS.tui.common.base_app.HelpScreen(app_name: str, keybindings: list[tuple[str, str]], description: str = '', **kwargs)[source]#

Bases: textual.screen.Screen

Help screen showing keybindings and usage information.

BINDINGS#

[(‘escape’, ‘dismiss’, ‘Close Help’), (‘q’, ‘dismiss’, ‘Close Help’)]

Type: typing.ClassVar

compose()[source]#

Compose help screen layout.

action_dismiss()[source]#

Dismiss the help screen.

class nexusLIMS.tui.common.base_app.BaseNexusApp(**kwargs)[source]#

Bases: textual.app.App

Base application class for NexusLIMS TUI apps.

Provides:

  • Theme switching (dark/light) using Textual’s built-in themes

  • Database session management

  • Help screen

  • Error notifications

  • Common keybindings

Subclasses should:

  • Define their own screens

  • Override get_app_name() to return app name

  • Override get_keybindings() to add app-specific bindings

CSS_PATH#

Type: typing.ClassVar

BINDINGS#

[(‘ctrl+t’, ‘toggle_theme’, ‘Toggle Theme’), (‘ctrl+q’, ‘quit’, ‘Quit’), (‘?’, ‘help’, ‘Help’)]

Type: typing.ClassVar

on_mount() None[source]#

Set up database connection.

on_unmount() None[source]#

Clean up database connection.

action_toggle_theme() None[source]#

Toggle between dark and light themes using Textual’s built-in system.

action_help() None[source]#

Show help screen.

get_app_name() str[source]#

Get application name for help screen.

Returns:

Application name (override in subclass)

Return type:

str

get_keybindings() list[tuple[str, str]][source]#

Get app-specific keybindings for help screen.

Returns:

List of (key, description) tuples (override in subclass)

Return type:

list[tuple[str, str]]

show_error(message: str) None[source]#

Display an error notification.

Parameters:

message (str) – Error message to display

show_success(message: str) None[source]#

Display a success notification.

Parameters:

message (str) – Success message to display

show_warning(message: str) None[source]#

Display a warning notification.

Parameters:

message (str) – Warning message to display