用于验证、记录和编辑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覆盖文件,使其无法恢复?   java在一个应用程序中集成Spring Boot和Node js   java如何使用MySQL后端设置Hibernate save()调用的超时?   java为什么我的Gremlin迁移查询只从每个顶点添加一条边?   java是否有方法提取单击的JPanel?   macos在MacOSX上为JDK7u4在Eclipse中设置什么JRE主页?   java JaxWsPortProxyFactoryBean查询超时   java SimpleDataFormat转换   java递归地打印序列:2,5,3,11,14,…   java在JPA查询中包含枚举   在Java8中创建内存泄漏   使用java 11的windows JFXPanel设置   hibernate Java NoClassDefFound错误