Tenho este código em uma CLI:
@click.option(
"--username",
default=lambda: os.environ.get("USER", None),
show_default=True,
help="User name for SSH configuration.",
)
Quando invoco a CLI com --help
a opção, recebo isto:
--username TEXT User name for SSH configuration. [default:
(dynamic)]
Existe uma maneira de fazer com que o click invoque a função lambda e mostre o nome de usuário real em vez de (dynamic)
? Sei que posso chamar essa função antes de invocar o decorador click e passar o valor recuperado como padrão em vez de lambda. Estou tentando fazer melhor do que isso.
O
Option.get_default
método tem umacall
opção para chamar o valor padrão quando ele for um valor chamável.A opção é
True
padrão, mas é passadaFalse
somente ao gerar ajuda , então você pode fazer o gerador de ajuda chamar o callable simplesmente substituindoOption.get_default
por um wrapper que força acall
opção a serTrue
:para que:
produz a seguinte ajuda quando a
--help
opção é fornecida na linha de comando: