betty.cli.commands package

Submodules

Module contents

Provide the Command Line Interface.

class betty.cli.commands.BettyCommand[source]

Bases: Command

A Click command for Betty.

See betty.cli.commands.command().

invoke(ctx: Context) Any[source]

Given a context, this invokes the attached callback (if it exists) in the right way.

betty.cli.commands.COMMAND_REPOSITORY: PluginRepository[Command] = <betty.cli.commands._CommandRepository object>

The Command Line Interface command repository.

Read more about CLI command plugins.

class betty.cli.commands.Command[source]

Bases: Plugin

Define a CLI command plugin.

Read more about CLI command plugins.

classmethod click_command() Command[source]

Get the plugin’s Click command.

classmethod plugin_description() Localizable | None[source]

Get the human-readable long plugin description.

classmethod plugin_id() MachineName[source]

Get the plugin ID.

IDs are unique per plugin type:

  • A plugin repository MUST at most have a single plugin for any ID.

  • Different plugin repositories MAY each have a plugin with the same ID.

classmethod plugin_label() Localizable[source]

Get the human-readable short plugin label.

betty.cli.commands.command(name: Callable[..., Coroutine[Any, Any, Any]]) BettyCommand[source]
betty.cli.commands.command(name: str | None, cls: type[_BettyCommandT], **attrs: Any) Callable[[Callable[..., Coroutine[Any, Any, Any]]], _BettyCommandT]
betty.cli.commands.command(name: None = None, *, cls: type[_BettyCommandT], **attrs: Any) Callable[[Callable[..., Coroutine[Any, Any, Any]]], _BettyCommandT]
betty.cli.commands.command(name: str | None = None, cls: None = None, **attrs: Any) Callable[[Callable[..., Coroutine[Any, Any, Any]]], BettyCommand]

Mark something a Betty command.

This is almost identical to click.command(), except that cls must extend betty.cli.commands.BettyCommand.

Functions decorated with @command may choose to raise betty.error.UserFacingError, which will automatically be localized and reraised as click.ClickException.

Read more about CLI command plugins.

betty.cli.commands.pass_app(f: Callable[Concatenate[App, _P], _ReturnT]) Callable[_P, _ReturnT][source]

Decorate a command to receive the currently running betty.app.App as its first argument.

betty.cli.commands.pass_project(f: Callable[Concatenate[Project, _P], _ReturnT]) Callable[_P, _ReturnT][source]

Decorate a command to receive the currently running betty.project.Project as its first argument.