使用基于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第三方库


热门话题
任务“:app:compiledBugJava”与“;”的java Android执行失败预期   cmd Java找不到主类   应用程序关闭后java还原Android回栈   无法识别Java中通过OutputStream发送到Firefox的HTML代码   Redis hmget的java超时时间   排序java如何生成按字母顺序排序集合的泛型函数   java从何处提取默认编码?   必须指定java Spring引导安全配置authenticationManager   创建目录的java单元测试代码   初始化期间的java空变量   java如何通过同一个交换机编码启用和禁用Wifi、移动数据和GPS?   java将顺序UI作业排队并在UI中显示它们   java JMS连接未连接到远程JBoss,但连接本地实例   swing Java多GUI窗口创建   包装jar的java OSGi服务   java意外字符“ï”,使用Jackson解析JSON