由docopt驱动的argparse文档
项目描述
doc 由 docopt 驱动
从文档字符串定义您的命令行界面(CLI)(而不是反过来)。因为这样做既简单又快捷。无痛苦。然后集中精力做真正重要的事情 - 在您的程序中使用这些参数。
问题是这并不总是灵活。仍然需要 argparse 的所有功能?现在您可以拥有两者的最佳之处……拥有如 shtab 或 Gooey 等所有扩展,同时具有 docopt 的简单语法。
安装
最新 PyPI 稳定版
pip install argopt
GitHub 上的最新开发版
拉取并安装
pip install "git+https://github.com/casperdcl/argopt.git@master#egg=argopt"
最新 Conda 版本
conda install -c conda-forge argopt
变更日志
用法
适用于标准 docopt 的文档字符串语法。此外,还支持一些改进和增强,例如类型检查和默认位置参数。
'''Example programme description.
You should be able to do
args = argopt(__doc__).parse_args()
instead of
args = docopt(__doc__)
Usage:
test.py [options] <x> [<y>...]
Arguments:
<x> A file.
--anarg=<a> Description here [default: 1e3:int].
-p PAT, --patts PAT Or [default: None:file].
--bar=<b> Another [default: something] should
auto-wrap something in quotes and assume str.
-f, --force Force.
'''
from argopt import argopt
__version__ = "0.1.2-3.4"
parser = argopt(__doc__, version=__version__)
args = parser.parse_args()
if args.force:
print(args)
else:
print(args.x)
比较而言,docopt 的等价物将是
'''Example programme description.
Usage:
test.py [options] <x> [<y>...]
Arguments:
<x> A file.
--anarg=<a> int, Description here [default: 1e3].
-p PAT, --patts PAT file, Or (default: None).
--bar=<b> str, Another [default: something] should
assume str like everything else.
-f, --force Force.
-h, --help Show this help message and exit.
-v, --version Show program's version number and exit.
'''
from docopt import docopt
__version__ = "0.1.2-3.4"
args = docopt(__doc__, version=__version__)
args["--anarg"] = int(eval(args["--anarg"]))
if args["--patts"]:
args["--patts"] = open(args["--patts"])
if args["--force"]:
print(args)
else:
print(args["<x>"])
高级用法和示例
查看 示例文件夹。
文档
def argopt(doc='', argparser=ArgumentParser,
formatter_class=RawDescriptionHelpFormatter,
logLevel=logging.NOTSET, **_kwargs):
"""
Note that `docopt` supports neither type specifiers nor default
positional arguments. We support both here.
Parameters
----------
doc : docopt compatible, with optional type specifiers
[default: '':str]
argparser : Argument parser class [default: argparse.ArgumentParser]
version : Version string [default: None:str]
formatter_class : [default: argparse.RawDescriptionHelpFormatter]
logLevel : [default: logging.NOTSET]
_kwargs : any `argparser` initialiser arguments
N.B.: `prog`, `description`, and `epilog` are automatically
inferred if not `None`
Returns
-------
out : argparser object (default: argparse.ArgumentParser)
Usage
-----
Extension syntax example: [default: 1e3:int].
You should be able to do
parser = argopt(__doc__)
args = parser.parse_args()
instead of
args = docopt(__doc__)
TODO
----
add_argument_group
add_mutually_exclusive_group
(better) subparser support
(docopt extension) action choices
(docopt extension) action count
"""
贡献
所有源代码均托管在 GitHub 上。欢迎贡献力量。
许可协议
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。
源代码分发
argopt-0.8.2.tar.gz (23.3 kB 查看哈希值)
构建分布
argopt-0.8.2-py3-none-any.whl (13.9 kB 查看哈希值)
关闭
argopt-0.8.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fabdb99043a82a320e0c257719f59a677404640dce97b079d2dac9b6b581aeec |
|
MD5 | 8b9aa425069fa50f7570681e13dc3474 |
|
BLAKE2b-256 | 881e4dd20f0ad39f81dd815b6fa4fea53be370d2ca0eeef9f8dc8e05b81c4284 |
关闭
argopt-0.8.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c613eac7f0712760340f0b67cd5ef4b7537319f92ad5ce48a83c9132d249f8a1 |
|
MD5 | eb797f39113bbbcf6427574faacf6f4a |
|
BLAKE2b-256 | 8bcecf789bbdbfdcd754bd68d8b3a9df2b9fd87ac2b86f1aa44232c2ee3e99b6 |