ufo源文件linter

ufolint的Python项目详细描述


PyPIBuild StatusBuild statuscodecovCodacy Badge

ufolint是用于Unified Font Object(ufo)源代码中字体开发的源文件linter。它是为持续集成测试不明飞行物对字体项目的贡献而设计的。

应用程序针对UFO v2 and v3 specifications对源文本文件执行特定于ufo版本的静态分析,以解决以下问题:

  • 支持的UFO版本
  • 必需的文件和目录
  • 强制文件路径命名约定
  • 跨源文件的源定义文件路径和目录路径一致性
  • 有效的XML文件格式
  • *.plist文件属性列表值检查
  • *.plist文件属性列表值类型检查
  • fontinfo.plist opentype属性命名约定
  • fontinfo.plist opentype属性数据验证
  • *.glif文件格式版本测试
  • *.glif文件大纲、属性、锚定、指南、图像、注释验证
  • 图像遵循ufo v3+png规范
  • 使用ufolib public方法将源文件导入到ufolib库

这些测试通过fontTools.ufoLib library中的公共方法和在ufolint应用程序中实现的附加测试的组合来执行。ufolit捕获所有*.plist文件类型和对*.glif文件执行的所有ufolib验证的ufolib公共读取方法中引发的异常。这些信息返回给用户,信息错误消息指示关心的文件路径和退出状态代码1。

安装并升级

ufolint可以在本地运行,也可以与远程ci测试服务一起运行。

本地安装和升级

使用命令:

$ pip install ufolint

使用以下命令升级到应用程序的新版本:

$ pip install --upgrade ufolint

本地使用

这个过程是完全自动化的。只需将ufolint指向一个或多个ufo源目录,它就会处理其余的内容。如果任何测试失败,UFLITENT退出状态代码0,如果所有测试通过并退出状态代码1。

$ ufolint [UFO source path] ([UFO path 2] [UFO path3]...)
示例
$ ufolint Awesome-Regular.ufo Awesome-Bold.ufo

对于阻止进一步测试完成的关键故障,UFLITEN立即退出,其他测试中止。在所有其他情况下,在整个分析过程中收集故障,并在所有测试完成时显示故障。

ufolint提供了详细、有用的错误消息,其中包括所关注的文件、错误类型以及在许多情况下文件中有问题的行。

Travis CI设置

要在提交到github存储库的每次提交推送或拉取请求时在Travis上连续测试ufo源更改,请使用Travis Getting Started Guide

然后在github存储库中,

  • step 3:在github存储库根目录中的路径.travis.yml上添加包含以下文本的文件:
.travis.yml
sudo:falselanguage:pythonenv:-VARIANT=src/Test-Regular.ufo-VARIANT=src/Test-Bold.ufo-VARIANT=src/Test-Italic.ufo-VARIANT=src/Test-BoldItalic.ufobefore_script:pip install ufolintscript:"ufolint$VARIANT"notifications:email:false
  • 第4步:在.travis.yml字符后,用指向ufo源文件的实际路径替换VARIANT=src/Test-*.ufo行。每个变量使用一行,并根据需要添加或减去行,以测试存储库中所需的源ufo目录。这些应该是来自git存储库根目录的相对路径。

这个travis设置结构对travis设置文件的env字段下指定的每个变量并行执行变量测试。每个变体都将在Travis测试页面上标记如下:

  • step 5:每次新提交都推送到github存储库(或任何由其他人提交的新拉动请求)Travis会自动收到通知,并对修改后的(或提议的拉动请求修改)UFO源执行UFolint测试。您可以在存储库的travis帐户页上查看测试结果。

  • 可选:要向存储库自述页添加travis测试结果标记,请在自述页中插入以下标记,并使用travis帐户和存储库详细信息修改[ACCOUNT][REPOSITORY]

[![Build Status](https://travis-ci.org/[ACCOUNT]/[REPOSITORY].svg?branch=master)](https://travis-ci.org/[ACCOUNT]/[REPOSITORY])

致谢

它是用奇妙的fontTools ufoLib library建造的,在那里大部分的ufo验证工作都已经完成了!

许可证

MIT License

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

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish