Picocli可以在@Command
批注中添加漂亮的标题,例如:
@Command(name = "git-star", header = {
"@|green _ _ _ |@",
"@|green __ _(_) |_ __| |_ __ _ _ _ |@",
"@|green / _` | | _(_-< _/ _` | '_| |@",
"@|green \\__, |_|\\__/__/\\__\\__,_|_| |@",
"@|green |___/ |@"},
description = "Shows GitHub stars for a project",
mixinStandardHelpOptions = true, version = "git-star 0.1")
我如何在程序运行时始终显示标题/横幅,而不在两个位置重复显示此横幅?
答案 0 :(得分:1)
这有两个方面:
您可以使用new CommandLine(new App()).getCommandSpec().usageHelpMessage().header()
或通过在应用程序中插入带有注释的@Spec
的{{1}}字段来从使用帮助消息中获取横幅。
要呈现ANSI样式,请对每个横幅行使用CommandSpec
。
将它们放在一起:
CommandLine.Help.Ansi.AUTO.string(line)
答案 1 :(得分:0)
对于我在 Picocli 4.5.2 中的工作方式:
def sequence_mask(X, valid_len, value=0):
"""Mask irrelevant entries in sequences."""
maxlen = X.size(1)
mask = torch.arange((maxlen), dtype=torch.float32,
device=X.device)[None, :] < valid_len[:, None]
X[~mask] = value
return X