处理lookml文件的工具集:linter、updater和grapher
lookml-tools的Python项目详细描述
lookml工具
这个存储库包含一些工具来处理一组开发人员处理lookml文件的最佳实践。
有三种工具:
LookML updater
LookML linter
LookML grapher
站点:
- 来源:https://github.com/ww-tech/lookml-tools
- 文档:https://ww-tech.github.io/lookml-tools/
- 圆周率:https://pypi.org/project/lookml-tools/
lookml更新程序
第一个工具有助于解决dimensions
和measures
的官方定义问题,例如在业务术语表中从其他系统中脱离同步。这里实现的解决方案是有一个远程主列表,其定义被传播到lookml。因此,给定给定lookmldimension
、dimension_group
或measure
的一些远程定义,将其注入lookml。
完整的文档是here。
lookml短绒
第二个工具帮助我们检查lookml是否符合某些给定的编码标准和lookml开发人员的最佳实践。它对lookml文件运行一系列检查,并报告哪些files
,或者哪些dimensions
,dimension_groups
,或者measures
未通过这些检查。
完整的文档是here。
lookml图示器
第三个工具创建model - explore - view
关系的“网络图”,并写入PNG
图像文件。代码还将标识任何orphans
,即没有被任何模型或探索引用的视图。
完整的文档是here。
安装
对于grapher,您需要安装graviz:
brew install graphviz
对于所有工具,您都需要安装依赖项:
pip install -r requirements.txt
您可以通过pip:
安装lookml-tools
的python代码库
pip install lookml-tools
一位用户报告说,要使这一切正常工作,必须安装特定版本的pandas(pandas==0.24.0
)。YMMV公司。
或者,您也可以使用
python setup.py install
单元测试
有一个测试套件,代码覆盖率接近100%
使用
pip install pytest-cov
python -m pytest --cov=lkmltools/ test/*.py ; coverage html
开发人员注释
有一些关于linterhere的开发人员说明。
贡献
我们希望得到您的反馈、建议,特别是对项目的贡献。创建拉取请求!
你可以直接通过carl.anderson@weightwatchers.com和@leapingllamas在twitter上联系我。
发行说明
2019-07-17:2.0.1
将缺少的lkml
添加到requirements.txt
2019-07-17:2.0.0
考虑到以下两个更改的影响,这是一个主要版本:
- 用Josh Temple's新的python lkml解析器(https://pypi.org/project/lkml/)替换了基于节点的lookml解析器。这简化了安装、依赖关系管理和底层解析的json格式。
- 通过
LookML
和LookMLField
类添加抽象层,以便规则和其他代码可以通过方法查询lookml属性,而不是检查原始json。
其他更改:
lkmltools.RuleFactory
现在是单例,因此用户更容易注册自己的规则。- 现在可以通过向该规则的字典中添加其他键来参数化配置中的任何规则。
例如,如果配置定义了
{"name": "MyAwesomeRule", "run": true, "debug": true, "strict_mode":true, length: 6}
,那么在规则实例化过程中将整个字典传递给构造函数。
2019-06-10:1.0.0
- 初始版本
许可证
版权所有2019 WW International,Inc.
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。