跳转到主要内容

由docopt驱动的argparse文档

项目描述

doc 由 docopt 驱动

Py-Versions PyPI Conda-Forge

Build-Status Coverage-Status Branch-Coverage-Status Codacy-Grade Libraries-Rank PyPI-Downloads

LICENCE OpenHub-Status Gift-Casper

从文档字符串定义您的命令行界面(CLI)(而不是反过来)。因为这样做既简单又快捷。无痛苦。然后集中精力做真正重要的事情 - 在您的程序中使用这些参数。

问题是这并不总是灵活。仍然需要 argparse 的所有功能?现在您可以拥有两者的最佳之处……拥有如 shtabGooey 等所有扩展,同时具有 docopt 的简单语法。


安装

最新 PyPI 稳定版

PyPI PyPI-Downloads Libraries-Dependents

pip install argopt

GitHub 上的最新开发版

GitHub-Status GitHub-Stars GitHub-Commits GitHub-Forks GitHub-Updated

拉取并安装

pip install "git+https://github.com/casperdcl/argopt.git@master#egg=argopt"

最新 Conda 版本

Conda-Forge

conda install -c conda-forge argopt

变更日志

所有更改的列表可在发布页面查看: GitHub-Status

用法

适用于标准 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>"])

高级用法和示例

查看 示例文件夹

文档

Py-Versions README-Hits

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-Commits GitHub-Issues GitHub-PRs OpenHub-Status

所有源代码均托管在 GitHub 上。欢迎贡献力量。

许可协议

开源 (OSI 批准): LICENCE

作者

OpenHub-Status

我们感谢所有 GitHub-Contributions

README-Hits

下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源代码分发

argopt-0.8.2.tar.gz (23.3 kB 查看哈希值)

上传时间 源码

构建分布

argopt-0.8.2-py3-none-any.whl (13.9 kB 查看哈希值)

上传时间 Python 3

支持