argparse扩展集合
项目描述
动机
我在洗澡时想到了这个名字。
目前,这是一个收集我在最近一段时间内编写的并发现有用的argparse扩展。
功能
@arg_converter 装饰器,用于编写简单的参数值解析器,无需使用 argparse.Action 模板
@subcommand 装饰器,用于节省您使用 add_subparsers 和 set_defaults(func=) 的时间。
@cli 装饰器,用于生成命令行界面。
示例
以下示例结合了所有功能,但工具不会强制要求您这样做。
如果您已有现有的 argparse.ArgumentParser 定义,您应该能够通过将初始化行更改为 parser = aarghparse.ArgumentParser(...) 来用aarghparse替换它。
import datetime as dt
import dateutil.tz
from aarghparse import ArgumentParser, arg_converter, cli
@cli
def calendar_cli(parser: ArgumentParser, subcommand: ArgumentParser.subcommand):
"""
Command-line calendar.
"""
parser.add_argument(
'--date-format',
default=None,
)
@arg_converter
def tz_arg(value):
return dateutil.tz.gettz(value)
@subcommand(
name="now",
args=[
["--tz", {
"action": tz_arg,
"help": "Timezone",
}],
],
)
def now_cmd(args):
"""
Prints today's date.
"""
date_format = args.date_format or "%Y-%m-%d %H:%M:%S"
print(dt.datetime.now(tz=args.tz).strftime(date_format))
if __name__ == "__main__":
calendar_cli.run()
如果您安装了 python-dateutil,则可以尝试以下操作
python -m aarghparse.examples.calendar --help
python -m aarghparse.examples.calendar now --help
python -m aarghparse.examples.calendar now --tz "Europe/Riga"
python -m aarghparse.examples.calendar --date-format "%d.%m.%Y." now --tz "Europe/Riga"
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
aarghparse-0.2.0.tar.gz (4.7 kB 查看哈希值)
构建分发
aarghparse-0.2.0-py3-none-any.whl (5.6 kB 查看哈希值)
关闭
aarghparse-0.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 500e14ee131e5c713ea077d1821dbf6b1bc74857425707441f2374a4fefd1dd9 |
|
MD5 | a9e9d14109a8714a9322ed778004cdf7 |
|
BLAKE2b-256 | f7104f81202a97aa1b914fb888137148ceb52d787ccc3553fa765c3936efa2b3 |
关闭
aarghparse-0.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 09d8134c7f75639ed20038f991bbbff70982cbef774192a9a035cb28da6641b1 |
|
MD5 | 5eed9bdc667681dfa1cc8c9f72c92548 |
|
BLAKE2b-256 | a2d6d187093a80372b9224a8c67a9226e030c366d2e668692614f43c7e93d02f |