argparse扩展的集合

aarghparse的Python项目详细描述


动机

我正在洗澡,突然想到这个名字。

目前,这是一个argparse扩展的集合,我最近编写了这些扩展并发现它们很有用。

功能

  • @arg_converterdecorator编写不带argparse.Action样板的简单参数值分析器
  • @subcommanddecorator将您从所有的add_subparsersset_defaults(func=)中拯救出来。
  • @clidecorator以生成命令行接口。

示例

下面的例子结合了所有的特性,但是这个工具并没有把它强加给你。

如果你有一个现存的^ {TT7} $定义,你应该能够用^ {TT8}$替换它 只需将初始化行更改为parser = aarghparse.ArgumentParser(...)

importdatetimeasdtimportdateutil.tzfromaarghparseimportArgumentParser,arg_converter,cli@clidefcalendar_cli(parser:ArgumentParser,subcommand:ArgumentParser.subcommand):"""
    Command-line calendar.
    """parser.add_argument('--date-format',default=None,)@arg_converterdeftz_arg(value):returndateutil.tz.gettz(value)@subcommand(name="now",args=[["--tz",{"action":tz_arg,"help":"Timezone",}],],)defnow_cmd(args):"""
        Prints today's date.
        """date_format=args.date_formator"%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"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接usb到uart设备到安卓设备>3.1   可以强制Php中的web应用程序与Java中的桌面应用程序一起工作吗?   java为什么自定义系统类加载器不工作?   数组在Java中解析具有多个分隔符的字符串   PMD Java 8德米特定律   JavaSpringMVC表单验证不适用于嵌套的复杂类型   让Eclipse Java组织导入以使用Google checkstyle   java Appium:无法创建新会话   java如何在数组中声明新字段   java如何解决“无法初始化类org.apache.cassandra.config.DatabaseDescriptor”?   java AsyncTask创建socket   java向@CreatedBy添加更多信息   如何在ubuntu中运行包含大量jars依赖项的java文件   java如何使用<s:select>标记并在中休眠来填充下拉列表?   java获取错误:找不到符号变量“level”和“next_level_button”   javaweb应用中基于UI的ajax显示代码流   Java长到MySql   java JvisualVM:奇怪的应用程序行为   ubuntu将Java程序的输出结果保存到一个文件中