[Docpie]

Fork me on GitHub

快速开始


docpie可以分析你传入的帮助文档,生成解析器,然后将命令行参数转换为python dict对象。

帮助文档跟man page很像,只需对格式稍作注意即可。一个简单的例子

"""
Naval Fate.

Usage:
  naval_fate ship new <name>...
  naval_fate ship <name> move <x> <y> [--speed=<km/h>]
  naval_fate ship shoot <x> <y>
  naval_fate mine (set|remove) <x> <y> [--moored|--drifting]
  naval_fate -h | --help
  naval_fate --version

Options:
  -h -? --help    Show this screen.
  --version       Show version.
  --speed=<km/h>  Speed in knots.[default: 10]
  --moored        Moored (anchored) mine.
  --drifting      Drifting mine.
"""

from docpie import docpie
print(docpie(__doc__))

自己试试 >>

这个例子里的“Usage”定义了程序的基本用法:naval_fate是程序名字,后面则是一串Commandshipnewmove等)、Argument<name><x><y>)和Option--speed--moored--h)。

同时“Usage”使用()(圆括号)/[](方括号)表示必选/可选元素,...(省略号)标记可重复元素,以及|(竖线)表示仅匹配其中一个(排它元素组)。

而“Option”则列出了可用的Option,定义了各自的同名符(-?--help是一个意思)、要求参数(--speed要求一个参数而--moored不带参数)以及参数的默认值(--speed的默认值是"10")。

就酱。接下来docpie会理解这些意思,然后把接收到的参数哐叽哐叽地转成相应的键值对。同时,docpie还会自动处理一些参数,比如在传入-?选项时自动打印这个帮助信息。


docpie已在以下Python版本与实现中测试:

2.6, 2.7

3.2, 3.3, 3.4, 3.5

pypy-2.0, pypy-2.6, pypy3-2.4


如果你喜欢这个项目,可以买我一杯啤酒,让我做的更好! | Flattr this

侧栏导航