问题标签 [python-click]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
437 浏览

python - cli:如何初始化 dict 和 group click 函数

在传递一些命令行参数并使用库之后,我想初始化一个全局变量,在这种情况下是dict调用的。DOCclick

我尝试了以下方法:

但是当我运行它时,输出是:

你能帮我理解吗:

  1. 为什么我看不到hi!正在打印?
  2. 为什么如果我@click.command()@cli.command()它替换无法识别命令行选项--logger-file
0 投票
1 回答
398 浏览

python - 如何在 Python click 模块产生的使用信息末尾添加多个空行?

我有一个与此 SO Q&A有点相似的问题,但是我想在click生成的输出末尾的 Epilog 中添加额外的空白行。

我有以下代码:

这会产生以下使用输出:

我的问题:

我想不出一种不需要可打印字符的方法。\n如果我删除上面的破折号序列,则不再显示换行符 ( )。换句话说,上面的用法是这样的:

0 投票
1 回答
961 浏览

python - 点击中的帮助格式化程序

我在本地模块中使用点击,我想调整帮助的显示方式:

当前输出--help

默认情况下,prog名称是__main__.py,文本被修剪为 78 个字符。

我发现这可以使用HelpFormatter类进行调整。但我不知道如何在这种情况下使用它。

当前代码:

预期输出:

0 投票
2 回答
5732 浏览

python - 使用 Click 将常用参数添加到组

我正在尝试使用 Python 库Click,但很难让示例正常工作。我定义了两组,其中一组 ( group2) 用于处理这组命令的常用参数。我想要实现的是这些公共参数由组函数(group2)处理并分配给上下文变量,因此它们可以被实际命令使用。

一个用例是一些需要用户名和密码的命令,而另一些则不需要(甚至不是可选的)。

这是代码

这是使用 command2 时的结果:

这个例子有什么问题。我试图密切关注文档,但opt-param似乎没有得到认可。

0 投票
1 回答
91 浏览

python - 单击:使用 CommandCollection() 后第一个命令的选项不可用

我想要两个单独的子命令,每个子命令都有不同的选项。

例如 -

选项onetwo仅用于 sub-commandfirstthreesub-command second

我的代码形式如下:

但是在运行它之后,我无法为每个子命令运行任何选项。

我用过这个:合并多命令

0 投票
3 回答
15051 浏览

python - 单击命令行界面:如果未设置其他可选选项,则使选项成为必需

使用 Python click 库编写命令行界面 (CLI) 时,是否可以定义例如三个选项,其中只有第一个(可选)未设置时才需要第二个和第三个选项?

我的用例是一个登录系统,它允许我通过authentication token(选项 1)或通过username(选项 2)和password(选项 3)进行身份验证。

如果给出了令牌,则无需检查usernamepassword定义或提示它们。否则,如果令牌被省略,则成为必需usernamepassword必须给出。

这可以使用回调以某种方式完成吗?

我的入门代码当然不反映预期的模式:

0 投票
1 回答
1428 浏览

python - python click子命令统一错误处理

在有命令组并且每个子命令都可能引发异常的情况下,我怎样才能在一个地方一起处理它们?

给出下面的例子:

两者都cli可以foo加注。我知道一种可能的解决方案是放在try-except从句中cli()if但是,当您分发包时,这不起作用。在setup.py中,您必须指定一个入口点(在本例中为cli)。该if子句不会被执行。

0 投票
1 回答
1930 浏览

python - 点击:是否可以将多个输入传递给 CliRunner.invoke?

我有一个单击命令download,它会在下载一系列文件之前提示用户输入用户名和密码:

要测试这个命令,我需要能够将 ausername和 apassword分别传递给stdin. 该CliRunner.invoke()方法有一个input参数,但它不接受列表。是否可以将多个输入传递给CliRunner.invoke()

0 投票
1 回答
4221 浏览

python - Flask CLI 命令和参数

如何让 Flask CLI 命令接受参数?

Flask 似乎自定义了 Click Group 对象,所以这不起作用:

0 投票
1 回答
1590 浏览

python - Python Click 命令无法识别选项

我正在尝试在 Click 中注册命令行选项。params在我将参数添加到构造函数之前,一切正常。

我收到以下错误: