Skip to content

argparse-tui

Classes

TuiAction

TuiAction(option_strings: list[str], dest: str = argparse.SUPPRESS, default: Any = argparse.SUPPRESS, help: str | None = 'Open Textual UI.', const: str | None = None, metavar: str | None = None, parent_parser: argparse.ArgumentParser | None = None, **_kwargs: Any)

argparse Action that will analyze the parser and display a TUI.

Parameters:

Name Type Description Default
option_strings list[str]

...

required
dest str

...

SUPPRESS
default Any

...

SUPPRESS
help str | None

...

'Open Textual UI.'
const str | None

...

None
metavar str | None

...

None
parent_parser ArgumentParser | None

...

None

Examples:

>>> import argparse
>>> from argparse_tui import TuiAction
...
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument('--tui', action=TuiAction)
...
>>> parser.print_usage()
usage: __main__.py [-h] [--tui]

Functions

add_tui_argument

add_tui_argument(parser: argparse.ArgumentParser, parent_parser: argparse.ArgumentParser | None = None, option_strings: str | list[str] | None = None, help: str = 'Open Textual UI.', default=argparse.SUPPRESS, **kwargs) -> None

Parameters:

Name Type Description Default
parser ArgumentParser

the argparse parser to add the argument to.

required
parent_parser ArgumentParser | None

the parent of the given parser.

None
option_strings str | list[str] | None

list of CLI flags that will invoke the TUI

None
help str

...

'Open Textual UI.'
default

...

SUPPRESS
**kwargs

passed to parser.add_argument(...)

{}

Examples:

>>> import argparse
>>> from argparse_tui import add_tui_argument
...
>>> parser = argparse.ArgumentParser()
...
>>> add_tui_argument(parser)
...
>>> parser.print_usage()
usage: __main__.py [-h] [--tui]

add_tui_command

add_tui_command(parser: argparse.ArgumentParser, command: str = DEFAULT_COMMAND_NAME, help: str = 'Open Textual UI.', **kwargs: Any) -> argparse._SubParsersAction

Parameters:

Name Type Description Default
parser ArgumentParser

the argparse parser

required
command str

name of the CLI command that will invoke the TUI (default=tui)

DEFAULT_COMMAND_NAME
help str

help message for the argument

'Open Textual UI.'
**kwargs Any

if subparsers do not already exist, create with these kwargs.

{}

Returns:

Type Description
_SubParsersAction

The Argparse subparsers action that was discovered or created.

Examples:

>>> import argparse
>>> from argparse_tui import add_tui_argument
...
>>> parser = argparse.ArgumentParser()
>>> subparsers = parser.add_subparsers()
...
>>> _ = add_tui_command(parser)
...
>>> parser.print_usage()
usage: __main__.py [-h] {tui} ...

build_tui

build_tui(parser: argparse.ArgumentParser, cli_args: Sequence[str] | None = None, subparser_ignorelist: list[argparse.ArgumentParser] | None = None) -> App

Build a Textual UI (TUI) given an argparse parser.

Parameters:

Name Type Description Default
parser ArgumentParser

...

required
cli_args Sequence[str] | None

Arguments parsed for pre-populating the TUI form.

None
subparser_ignorelist list[ArgumentParser] | None

...

None

Returns:

Type Description
App

a Textualize App

Examples:

>>> import argparse
>>> from argparse_tui import build_tui
>>> import textual
...
>>> parser = argparse.ArgumentParser(prog="awesome-app")
>>> _ = parser.add_argument("--value")
...
>>> app = build_tui(parser)
...
>>> isinstance(app, textual.app.App)
True

invoke_tui

invoke_tui(parser: argparse.ArgumentParser, cli_args: Sequence[str] | None = None, subparser_ignorelist: list[argparse.ArgumentParser] | None = None) -> None

Invoke a Textual UI (TUI) given an argparse parser.

Parameters:

Name Type Description Default
parser ArgumentParser

...

required
cli_args Sequence[str] | None

Arguments parsed for pre-populating the TUI form.

None
subparser_ignorelist list[ArgumentParser] | None

...

None

Examples:

>>> import argparse
>>> from argparse_tui import invoke_tui
...
>>> parser = argparse.ArgumentParser(prog="awesome-app")
>>> _ = parser.add_argument("--value")
...
>>> invoke_tui(parser)