使用基于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和Javascript之间共享常量   c#无法使用Gson反序列化字节[]   如果字符串是实十进制数字,则在Java中仅显示十进制数字   与Android Studio的java FireBase同步失败   web应用程序的Java Oracle数据库更改通知问题   数组中缺少整数的java嵌套循环   zos在z/os上以TOD格式(一天中的时间)转换Java时间戳   java JAXB未根据注释生成XML(JDK 1.7)   java使用Twitter4j和Geolocation查找在该地区发布推文的用户,但如何获取用户ID?   在Libgdx中实现简单运动模糊的java意外结果   java在Android数据库中插入另一个EditText值?   java标准偏差数组(我的算法错误)   java如何修复M1 Mac的Ant javascript标记?   java遍历树标记值的长度   java理解Springboot中的Cron,自动发送电子邮件   java如何将“Data.Json”文件从资产保存到内部存储器,然后将其用于读/写   java代码在编写FirstDuplicate方法时会遇到时间限制问题   java将HTML转换为PDF并将其添加到段落中   javascript css()未设置正文标记的背景属性