使用基于yaml的模式对yaml配置文件进行简单验证。

phyles的Python项目详细描述


背景

phyles是一组有些折衷的函数,它使 实用程序的实现(可以控制的小程序 通过配置文件)更容易。一开始是一堆样板 几乎可以复制到我写的每一个实用程序中。我终于决定 将此代码合并到一个包中,并添加一些基于架构的 验证配置文件并将其完整记录。

功能

phyles支持基于YAML 配置文件以及验证配置文件的方法。 Phyles还提供了一些公用设施 更加用户友好,包括自动生成的横幅, 自动记录的配置模板 从配置错误中恢复。

主页和存储库

phyles主页是http://phyles.bravais.net,源代码是 代码在github上维护:https://github.com/jcstroud/phyles

示例

Phyles提供的大约90%的便利可以 用几行代码总结。从这个例子 教程中的实用程序(http://pythonhosted.org/phyles):

1|spec=phyles.package_spec(phyles.Undefined,"barbecue",|"schema","barbecue-time.yml")2|converters={'celsius to farenheit':|barbecue.celsius_to_farenheit}3|setup=phyles.set_up(__program__,__version__,|spec,converters)4|phyles.run_main(main,setup['config'],|catchall=barbecue.BarbecueError)

这几行代码从包中找到一个模式规范 内容(第1行),分析命令行参数(第3行), 验证配置文件(第2行和第3行),覆盖配置 其中的设置(第3行),并运行实用程序的主要功能 在一个尝试块中,确保事件中的优美退出 将引发预期的异常(第4行)。

模式是在YAML中指定的,简洁,希望是直观的。 以下是教程中的示例:

!!omap-dish :--vegetable kabobs-smoked salmon-brisket-smoked salmon-Dish to cook-doneness :-rare :200medium :350well-done :500-medium-How much to cook the dish-temperature :-celsius to farenheit-105-Cooking temperature in °C-105-width :-int-70-width of report-70

phyles将自动生成一个文档化的样本 如果用户使用 --template(或-t)命令行选项。在 教程,使用:

调用示例脚本(barbecue-time
barbecue_time -t

生成以下输出,该输出对以上各项有效 架构:

%YAML1.2---# Dish to cook# One of: vegetable kabobs, smoked salmon, brisketdish :smoked salmon# How much to cook the dish# One of: well-done, medium, raredoneness :medium# Cooking temperature in °Ctemperature :105# width of reportwidth :70

最后一个例子是,此架构的另一个有效配置文件是:

dish :smoked salmondoneness :mediumtemperature :107width :70

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

推荐PyPI第三方库


热门话题
java如何在href中将struts2文本字段的值作为参数传递?   java检查对象属性是否为空的最佳方法是什么?   java通过Maven使用Junit类别运行Cucumber测试   java如何在selenium Webdriver(Mac)中使用Robot类上传多个文件?   如何用python绘制图形或将python转换为java和Matlab?   java Osgi捆绑包更新和ResourceBundle   java使用流api将流<@Nullable T>转换为流<@NonNull T>   java中EXCEL的平台无关连接字符串   JavaFX中的java表   java Jetty线程池和sun。HttpServer会话   JPA存储库bean的java Spring注入无法工作NullPointerException   java从另一个Kubernetes作业触发Kubernetes   我的java netbeans抽奖计划需要帮助吗   泛型中的java有界类型无法扩展另一个有界类型   如果混合使用全局构建和概要文件构建,java cxfcodegenplugin会生成错误代码   封装SQL平台之间差异的java策略?