Source code for conntextual.commands.ui
"""
An entry-point for the 'ui' command.
"""
# built-in
from argparse import ArgumentParser as _ArgumentParser
from argparse import Namespace as _Namespace
# third-party
from runtimepy.commands.common import arbiter_args
from runtimepy.entry import main as runtimepy_main
from vcorelib.args import CommandFunction as _CommandFunction
from vcorelib.io import ARBITER
from vcorelib.paths.context import tempfile
# internal
from conntextual import PKG_NAME
from conntextual.commands.common import (
DEFAULT_VARIANT,
common_cli_args,
runtimepy_cli_args,
)
from conntextual.server import server_args, server_config
[docs]
def ui_cmd(args: _Namespace) -> int:
"""Execute the ui command."""
cli_args = runtimepy_cli_args(args)
cli_args.append(f"package://{args.package}/{args.variant}.yaml")
with tempfile(suffix=".json") as path:
assert ARBITER.encode(path, server_config(args))[0]
if not args.no_server:
cli_args.append(str(path))
print(f"runtimepy_main({cli_args})")
result = runtimepy_main(cli_args)
return result
[docs]
def add_ui_cmd(parser: _ArgumentParser) -> _CommandFunction:
"""Add ui-command arguments to its parser."""
parser.add_argument(
"-p",
"--package",
default=PKG_NAME,
help="package to source application from",
)
parser.add_argument(
"-v",
"--variant",
choices=[DEFAULT_VARIANT, "curses", "headless"],
default=DEFAULT_VARIANT,
help="application variant to use (default: %(default)s)",
)
common_cli_args(parser)
server_args(parser)
with arbiter_args(parser, nargs="*"):
pass
return ui_cmd