我有一个用例,用户提供一个 docopt 字符串,并基于它生成一些代码。所以我不知道我的docopt字符串在前面。
对于某些“参数类型”(不是数据类型),我希望生成各种代码。
在下文中,我将区分“类型”和“数据类型”。对于 docopt 参数--arg=DEGREES
和 argv input --arg=10
,“类型”--arg
是DEGREES
,而数据类型是integer
。值为10
。
用户可以给我以下文档字符串:
Naval Fate.
Usage:
naval_fate --dir=FILE [--speed=ABC]
Options:
--dir=FILE Moored (anchored) mine.
--speed=ABC Speed in knots [default: 10].
除了像往常一样解析这个docopt字符串之外,我还试图弄清楚参数的“类型”dir
并speed
要求。我想知道那dir
是 typeFILE
并且speed
是 type ABC
。
例子:
鉴于上面的 docopt 字符串和一个 argv 字符串naval_fate --dir=/tmp --speed 1234
,我希望不仅可以访问值和数据类型 ( <key> => <value,datatype>
),还希望访问“配置类型” ( <key> => <value,datatype,argtype>
,即类似于以下内容的内容:
dir
=> val: /tmp
, 数据类型: String
,类型:FILE
speed
=> val: 1234
, 数据类型: Integer
,类型:ABC
docopt 的任何(托管)实现都是可以接受的,包括 Python,尽管我最好在编译语言中寻找解决方案,无论是 C、Go、Rust 等。