问题标签 [docopt]

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 回答
1400 浏览

python - curl命令到python dict

我是我现在公司的后端开发人员。当前端团队遇到问题时,他们有时会使用 Chrome devtool 的“copy request as curl”功能,将有问题的 curl 请求发送给我。我在想,如果我可以编写一个脚本来以各种方式转换这些卷发——移除、添加或调整参数等等,那将是一件很酷的事情。

我认为这里的第一步是将命令解析为更易于使用的东西。我正在考虑使用clickdocopt 之类的东西,但没有看到一个简单的命令来执行command line string->intelligent python object或类似的东西。理想情况下,它不仅适用于这种情况,而且适用于任何有效的 Unix 命令。有没有可以轻松做到这一点的库?或者我需要扩展这些库之一吗?还是我最好从头开始写一些东西?

我试图解析的卷曲示例:

curl http://myhost?myarg=ACTIVE&myotherarg=1 -H Pragma: no-cache -H 来源: http://localhost:5000 -H Accept-Encoding: gzip, deflate, sdch -H Accept-Language: en-US ,en;q=0.8 -H 授权:令牌 xxxxxxxx1234567 -H 接受:application/json, text/javascript, / ; q=0.01 -H Cache-Control: no-cache -H User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 -H Connection : keep-alive -H 引用者: http://localhost:5000/projects/7/overview-all/active/ --compressed

0 投票
2 回答
103 浏览

python - docopt 模块的行为(参数解析器)

我目前是第一次使用 docopt lib,所以我肯定做错了什么

我的脚本是:

如果我写: python prog.py -s SMT

我得到:

这似乎是正确的,但如果我写:

所以,我尝试了很多组合,但我不明白这应该怎么写......

我想要的是 TAG 始终包含与 -s 参数相对应的值,如果在 -s 之后没有给出任何内容,则为 None 或错误,我不明白为什么不是这样。

谢谢你的帮助 !

0 投票
1 回答
298 浏览

rust - 如何检索在 Rust 中使用 docopt 时使用的子命令?

我正在编写一个命令行实用程序,它有几个子命令:

这完美地解析了参数,但它不允许我检索使用的子命令。

另一种方法是使用example <command> <name> [<args>...],但这不再为您提供 docopt 的功能,您可以再次使用不同的方法对其进行解析...

知道如何在 Rust 中设置 docopt 来处理这个问题吗?

0 投票
1 回答
1120 浏览

rust - 使用 docopt 和 Rust 解析带有参数的命令行标志,类似于 getopt

我正在寻找一种方法来模拟 C 如何使用getopt. 我想使用 docopt 将以下 C 代码段转换为 Rust。我似乎无法将标志传递给命令行参数:

然后我想跑

到目前为止,我已经写了这个:

cargo run我得到

未知标志 -a

0 投票
2 回答
1564 浏览

python - docopt - 需要每个 arg 的特定数据类型

我通常在 Python 中使用 argparse,在 R 中使用 docopt。我在 argparse 中错过的一个我还没有在 docopt 中发现的功能是能够为每个参数指定所需的数据类型。例如,在 argparse 中,我需要使用整数输入

在 docopt / R 中,我在文档中找不到任何关于需要特定数据类型的内容。

在 Python 版本的 docopt GitHub repo 上有一个已关闭的问题,似乎表明这不是基本 docopt 的一部分,并为 Python 提供了解决方案,但这并不直接适用于 R。任何人都可以提供任何建议/更优雅在 R 中使用 docopt 验证参数输入的方法?

0 投票
1 回答
735 浏览

python - 具有可选和位置参数的互斥组

我用docopt创建了一个 cli 规范,效果很好,但是由于某种原因,我必须将其重写为 argparse

怎么做?

重要的是我不想拥有这样的东西:

我认为它会是这样的:

我尝试使用add_mutually_exclusive_group,但出现错误:

0 投票
2 回答
74 浏览

python - 如何在 docopt 中使用“选项结束”?

我正在使用docopt和 python 2.7。我想--在 vim 中实现类似的东西。来自man vim

'--'值得庆幸的是,docopt 已经实现了这一点,但它在我的参数列表中给了我一个额外的东西。例如,以这个简短的 python 脚本为例:

如果我用

我明白了:

我希望它能给:

我究竟做错了什么?

0 投票
1 回答
58 浏览

python - docopt 将任何 -v 解释为版本

我正在使用 docopt 创建一个 cli,并遇到以下问题(我将从他们的 naval_fate 示例 cli 中引入示例)

naval-fate --versionornaval-fate -v将返回 cli 版本,但是当尝试做让我们说naval-fate ship -v为了不同的目的时,它会自动返回与前两个命令相同的结果。

有没有办法阻止 docopt 这样做?

谢谢

0 投票
2 回答
48 浏览

python - python Docopt中的位置论点

我正在编写一个简单的命令行联系人管理器。我希望能够使用以下命令添加新联系人。
manager.py add -n NAME -p PHONENUMBER
但是当我使用名字和姓氏添加联系人时,代码会引发错误。
例如。manager.py add -n emeka onwuzulike +23464715326.
这是我的代码
Usage: manager.py add -n NANE -p PHONENUMBER

0 投票
1 回答
743 浏览

python - 有什么方法可以检测选项是否作为默认值传递?

我正在为我的脚本创建一个命令行界面。我希望用户能够在命令行本身或配置文件中提供选项。

某些选项具有合理的默认值。我想要的逻辑是这样的:

  • 如果该选项既不在命令行也不在配置文件中,请使用默认值。
  • 如果该选项仅在配置文件中或仅在命令行中,请使用该选项。
  • 如果该选项同时在配置文件命令行中,则显式命令行优先。

例如,这是我的文档字符串:

所以,没有settings.yaml我想要的:

我想要一个settings.yamldelay: 10

我遇到的问题是docopt只给了我 a{"--delay": "1"}{"--delay": "5"}. 我无法知道它是否来自默认值。此外,我想在文档字符串中指定默认值- 从用户的角度来看,这要好得多。

有没有什么好的docopt-y,Pythonic方式来完成这个?我正在考虑根据默认参数检查解析的参数,但是如果它碰巧与参数值匹配,用户将无法使用命令行参数覆盖配置文件参数。


这是我加载配置文件的方式: