用于miniconfig的argparser工厂

miniconfig-argparse的Python项目详细描述


使用miniconfig进行argparse设置

代码

fromminiconfig_argparseimportget_configuratorconfig=get_configurator()config.include("yourmodule")config.include("yourmodule.extra")args=config.make_args()# using args

在模块中,使用如下配置。

defincludeme(config):parser=config.parserparser.add_argument('-v','--verbose',action='count',default=0,help="(default option: increment logging level(default is WARNING))")parser.add_argument('-q','--quiet',action='count',default=0,help="(default option: decrement logging level(default is WARNING))")defsetup_closure(args):logging_level=logging.WARN+10*args.quiet-10*args.verboselogging.basicConfig(level=logging_level)returnargsparser.add_callback(setup_closure)

默认指令

  • 生成语法分析器
  • 替换语法分析器
  • 调用函数作为命令

make_parser(fn)+call_function_as_command

使用make_parser()call_function_as_command()组合有时很有用。

  • 生成解析器(fn)–从函数定义创建解析器。
  • call_function_as_command–使用解析的参数对象调用函数。

如下图所示。

defgreeting(message,is_surprised=False,name="foo"):""" greeting message

    :param message: message of greeting
    :param is_surprised: surprised or not (default=False)
    :param name: name of actor
    """suffix="!"ifis_surprisedelse""print("{name}: {message}{suffix}".format(name=name,message=message,suffix=suffix))defincludeme(config):parser=config.make_parser(greeting)config.replace_parser(parser)if__name__=="__main__":fromminiconfig_argparseimportget_configuratorconfig=get_configurator()config.include(includeme)args=config.make_args()config.call_function_as_command(greeting,args)

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

推荐PyPI第三方库


热门话题
检查java中两个链表之间的子集   java仅在findViewById()下显示一个ImageButton   在Java Graphics2D中,文本如何在矩形上居中对齐?   java需要一个用于电子表格计算器的正则表达式   ^java中的运算符   java通过一些属性配置文件根据环境动态更改wsdl端点URL   java Ebean/Play框架关系未更新   集合如何将POJO列表转换为Java流中的映射<String,List>?   java为什么JFrame不显示整个图像?   java如何将调用静态导入的泛型方法的结果传递给另一个方法?   迭代器或foreach中的java延迟   需要java socket logback日志接收器   在Java中初始化Map的静态数组   雅加达邮件Java MimeMail:解码后获得额外字符   java为什么这个xmldom解析器不能正确解析rtept、name和cmt标记?   java如何刷新Log4J2中的异步记录器(带中断器)   java使用构建插件pom生成的jar。xml作为同一pom中的依赖项   java基于位置的序列ADT如何在O(1)时间内插入元素?   java ORM实体与DDD实体   Java对象分配