此包支持使用配置文件的click命令。

click-configfile的Python项目详细描述


click是一个框架,用于简化为 命令行工具。这个包扩展了click功能 通过添加对使用配置文件的命令的支持。

示例:

配置文件,如:

# -- FILE: foo.ini[foo]flag=yesname=Alice and Bobnumbers=1 4 9 16 25filenames=foo/xxx.txt
    bar/baz/zzz.txt[person.alice]name=Alicebirthyear=1995[person.bob]name=Bobbirthyear=2001

可使用:

# EXAMPLE:# -- FILE: example_command_with_configfile.py (ALL PARTS: simplified)fromclick_configfileimportConfigFileReader,Param,SectionSchemafromclick_configfileimportmatches_sectionimportclickclassConfigSectionSchema(object):"""Describes all config sections of this configuration file."""@matches_section("foo")classFoo(SectionSchema):name=Param(type=str)flag=Param(type=bool,default=True)numbers=Param(type=int,multiple=True)filenames=Param(type=click.Path(),multiple=True)@matches_section("person.*")# Matches multiple sectionsclassPerson(SectionSchema):name=Param(type=str)birthyear=Param(type=click.IntRange(1990,2100))classConfigFileProcessor(ConfigFileReader):config_files=["foo.ini","foo.cfg"]config_section_schemas=[ConfigSectionSchema.Foo,# PRIMARY SCHEMAConfigSectionSchema.Person,]# -- SIMPLIFIED STORAGE-SCHEMA:#   section:person.*        -> storage:person.*#   section:person.alice    -> storage:person.alice#   section:person.bob      -> storage:person.bob# -- ALTERNATIVES: Override ConfigFileReader methods:#  * process_config_section(config_section, storage)#  * get_storage_name_for(section_name)#  * get_storage_for(section_name, storage)# -- COMMAND:CONTEXT_SETTINGS=dict(default_map=ConfigFileProcessor.read_config())@click.command(context_settings=CONTEXT_SETTINGS)@click.option("-n","--number","numbers",type=int,multiple=True)@click.pass_contextdefcommand_with_config(ctx,numbers):# -- ACCESS ADDITIONAL DATA FROM CONFIG FILES: Using ctx.default_mapforperson_data_keyinctx.default_map.keys():ifnotperson_data_key.startswith("person."):continueperson_data=ctx.default_map[person_data_key]process_person_data(person_data)# as dict.

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

推荐PyPI第三方库


热门话题
tomcat Java条带错误   java OPENTSDB fsck修复程序不更正重复点   java JavaFX在控制器内切换自身的可见性   java maven surefire插件未并行执行运行程序   读取导致Freemarker模板引擎中TemplateException的Java对象   无法使Java库与我的Android应用程序一起工作   安卓 java。lang.IllegalStateException游标   使用Java检索XML文件中的XSL URL和名称   java如何从文本文件集合中提取特定值   电子邮件java mail gmail   java为什么finalize()只被垃圾收集器调用一次?   java方法findViewById(int)对于Json类型是未定义的。蛇形   java在安卓中尝试从brother打印机打印位图时遇到以下异常   java在颤振中支持Kotlin的优势   java从后面编写文本   java制作列表。第一个列表可以有相同的数字,第二个将是价格,尝试制作第三个列表,如果它们是相同的数字,它将添加价格