用于验证、记录和编辑json和yaml数据的工具

yamltypes的Python项目详细描述


yamlconfig

用于加载和验证yaml配置文件的工具。

软件包附带两个入口点脚本:

  • yaml validate:此工具可以根据其规范验证yaml文件。

    The spec file can be either automatically found given the filename or given as parameter with ^{tt1}$

  • yaml2rst:这个工具自动创建在目录中定义的类型的rst文档。

yamlconfig模块

复杂ci系统开发人员的一个常见问题是 它的配置逻辑来自它的配置数据。

  • 逻辑是构建器的配置,它构建什么, 什么是构建步骤等
  • 数据是您希望在日常中轻松更改的参数 维护工作。奴隶是什么,他们的能力是什么? 需要跟踪哪些分支?在什么条件下?等

yamlconfig通过提供创建 并描述一组用作master.cfg输入的yaml文件

最初是为buildbot配置创建的,它定义的规范格式可以 用于描述任何类型的JSON兼容数据。

每个解析的yaml文件都可以被赋予一个.meta.yaml文件,该文件充当 模式文件,描述文件中允许的内容,以及如何 在版本ui中呈现它。

.meta.yaml文件格式

元yaml文件是由嵌套的dict组成的yaml文件,描述了 类型检查器正在等待的数据。

根节点

meta yaml文件必须描述root类型,这将滚雪球 所有嵌套类型检查

root:type:dictkids:param1:type:intparam2:type:string

将匹配:

param1:1param2:stringvalue

导入节点

元yaml文件可以使用其他文件中描述的类型。为此,它将进口 .types.yaml文件的列表。

.types.yaml是定义命名类型映射的yaml文件。示例:

foo:type:stringvalues:[bar]

可用于myconfig.meta.yaml

imports:-foo.type.yamlroot:type:dictkids:foo:type:listoffoos

基类型

基本类型是:

int
整数
字符串
字符串
布尔型
真/假布尔值
浮动
浮点数

化合物类型

复合类型的值由多个子类型值或键/值组成:

听写
具有已定义的子键列表的关联数组
地图
具有任意列表子项的关联数组
列表
任意值的列表
设置
确保成员唯一性的列表(不能有多个相同的时间值)

指定值的类型

对于maplistset,可以指定所需的类型 作为价值观。语法为:

type:<compound_type>of<type>s

例如,以下类型有效

type:mapofstringstype:listofintstype:listofsetsofints

用户定义的类型

可以指定定义类型映射的meta.yaml文件,可以在 主meta.yaml文件。例如:

location:type:stringvalues:[l1,l2,l3,l4,l5,l6]

这定义了一个location类型,它是一个有6个可能值的字符串。

类型修改器

每种类型都可以与许多修饰符相关联,这些修饰符将扩展 您为其描述的规格:

值:
属性可以采用的一组可能值
姓名:
在ui中显示的属性的名称
默认值:
如果未显式定义属性,则该属性所采用的值
禁止:
一个python表达式,检查是否不应在 特定配置
必需:
一个python表达式,检查是否必须在 特定配置
maybenull:
一个python表达式,检查是否必须在 特定配置

更复杂的例子

meta.yaml

root:type:dictkids:slaves:type:listofdictsname:Build Slaveskids:caps:type:dictname:Capabilitieskids:builder:name:Used by buildertype:setofstringsvalues:[autolint,build]required:truelocation:type:locationrequired:truespeed:type:stringdefault:fastvalues:[fast,slow]slaves:type:setofstrings

匹配yaml文件,如:

slaves:-caps:builder:[build]location:l4slaves:[buildbot1build]-caps:builder:[autolint,build]location:l1speed:fastslaves:[build3build,build4build,build5build]

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

推荐PyPI第三方库


热门话题
java如何创建一个透明的Android应用程序,它将占据整个屏幕(位于状态/导航栏上方)?   Spark Java编码器。bean无法转换为Scala定义的类   java无法在可执行jar中加载资源   java如何避免Checkstyle的FinalClass模块在存在从基继承的内部类时抱怨?   文件Netbeans java小程序项目屏幕弹出   java解析增量特性的增量不会超过值1   java从另一个类创建一个对话框,该类在Android中有自己的线程   java如何在绘制线条时向JPanel添加背景网格?   方法来确定路径字符串是本地计算机还是Java的远程计算机   批处理文件在java中如何在执行命令之前设置目录   需要关于Java8流逻辑的帮助吗   java Guice注入和请求工厂:扩展ServiceLayerCorator