如何在docopt中框架无序的参数



我正在尝试构建一个接受一组选项的文档。

Naval Fate.
Usage:
  naval_fate.py ship
  [-b <b_command>]
  [-e <e_command>]

可运行的示例:http://try.docopt.org/?doc=naval fate. USAGE:: NAVAL_FALE.PY SHIPS SHIPS;%5D%0D%0a %5b-e %3CE_Command%3E%5D&argv = ship -e -e c

如果我使用它,它可以正常工作:

ship -b barg -e earg

输出为:

{
  "-b": true, 
  "-e": true, 
  "<b_command>": "barg", 
  "<e_command>": "earg", 
  "ship": true
}

但是,如果使用此问题,它仍然给出相应参数相同的值:

ship -e earg -b barg 

输出:

{
  "-b": true, 
  "-e": true, 
  "<b_command>": "earg", 
  "<e_command>": "barg", 
  "ship": true
}

请注意,我将earg传递到-e,但已分配给输出中的b_command。

我看到了Golang的docopt-go软件包的行为。我的用法字符串错误吗?如果是这样,我应该如何构架DocOpt用法字符串字符串,以使其分配正确的值正确参数并尊重指定的参数?

naval_fate.py ship
[-b <b_command>]
[-e <e_command>]

您写的文档的解释如下:

  • 子命令ship
  • 随后按任何顺序零或以下零:
    • 布尔国旗-b
    • 位置参数<b_command>
    • 布尔国旗-e
    • 位置参数<e_command>

因此,以下所有内容都将被视为法律输入命令:

naval_fate.py ship -e
naval_fate.py ship BB -e
naval_fate.py ship -eb
naval_fate.py ship BB EE

表达诸如-b <b_command>-e <e_command>之类的标志的正确方法是通过称为Options的部分。

Naval Fate.
Usage:
  naval_fate.py ship [options]
Options:
  -b <b_command>   Description of -b
  -e <e_command>   Description of -e

相关内容

  • 没有找到相关文章

最新更新