我在 CLI 中有此代码:
@click.option(
"--username",
default=lambda: os.environ.get("USER", None),
show_default=True,
help="User name for SSH configuration.",
)
当我使用选项调用 CLI 时--help
,我得到以下信息:
--username TEXT User name for SSH configuration. [default:
(dynamic)]
有没有办法让 click 调用 lambda 函数并显示实际用户名而不是(dynamic)
?我知道可以在调用 click 装饰器之前调用该函数,并将检索到的值作为默认值传递,而不是 lambda。我正在尝试做得更好。
该
Option.get_default
方法有一个call
选项,当可调用时可以调用默认值。该选项是默认的,但仅在生成帮助
True
时传递,因此您可以通过使用强制选项的包装器进行覆盖,使帮助生成器调用可调用函数:False
Option.get_default
call
True
以便:
--help
在命令行中给出选项时生成以下帮助: