面向人类的模块化sql linting

sqlfluff的Python项目详细描述


sqlfluff:scroll::黑色笔尖::火花:

针对人类的sql linter

imageimageimagecodecovCircleCI

厌倦了没有一个好的sql linter来处理任何一个拨号盘 在一起工作?fluff是一个可扩展的、模块化的linter,旨在帮助您编写 好的sql,在它到达数据库之前捕获错误和坏的sql。

入门

要开始安装这个包,先创建一个sql文件,然后运行sqlfluff并指向该文件。

$ pip install sqlfluff
$ echo"  SELECT a  +  b FROM tbl;  " > test.sql
$ sqlfluff lint test.sql
==[test.sql] FAIL
L:   1| P:   1| L003 | Single indentation uses a number of spaces not a multiple of 4
L:   1| P:  14| L006 | Operators should be surrounded by a single space unless at the start/end of a line
L:   1| P:  27| L001 | Unnecessary trailing whitespace

用法

有关用法的更多详细信息,请参阅githubhere上的文档。

进度

这个项目有很多事情要做,我们才刚刚开始。

  • [X]命令行界面
    • [X]基本的linting,包括路径和文件
    • [X]版本信息
    • [X]精确格式化的linting成功或失败读数
    • []在linting步骤中过滤到特定代码
    • []允许对某些linting代码进行基本更正
  • []基本ANSI线头
    • [X]简单的空白测试
    • [X]运算符周围的空格
    • [X]缩进(制表符和空格的大小和组合)
    • []行之间的缩进和何时缩进
    • []空行数
    • []注释缩进
  • []可配置的线头
    • []用于配置的命令行选项
    • []读取配置文件的能力
    • []忽略特定规则
    • []指定要使用的分词方言
    • []预先配置详细信息
  • []方言
    • []MySQL
    • []红移
    • []从某种配置文件中检测方言

更改日志

该项目的所有显著变化都将记录在本文件中。

格式基于Keep a Changelog, 这个项目遵循Semantic Versioning

[0.0.6]-2018-11-15

添加了

  • 数字匹配

更改

  • 修复了运算符解析和linting(包括允许(*)的异常)

[0.0.5]-2018-11-15

添加了

  • 更好的文档,包括docs.md

更改

  • 修复了逗号解析和linting

[0.0.4]-2018-11-14

添加了

  • 添加了运算符regex
  • 为匹配者添加优先级以解决某些问题
  • 添加了对运算符regex的测试
  • 增加了在规则中初始化内存的功能

[0.0.3]-2018-11-14

添加了

  • 重构规则以允许具有内存的规则
  • 添加逗号线规则(更正单个字符匹配项)
  • 添加混合缩进过毛规则
  • 与Circleci、codecov和许多徽章集成

更改

  • 更改了版本信息的导入以修复导入config.ini时的错误
  • 添加了一些详细信息的基本冲突/文件报告
  • 重构规则以简化定义
  • 重构color cli输出以使其更可重用

[0.0.2]-2018-11-09

添加了

  • 较长的项目说明
  • 正确退出码< /LI>
  • 彩色输出的colorama

更改

  • 显著的cli更改
  • 从cli得到的输出大大改进

[0.0.1]-2018-11-07

添加了

  • 初始提交!-非常α
  • 重组为package layout
  • 添加tox和pytest以使它们工作

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

推荐PyPI第三方库


热门话题
在Java中使用工厂设计模式   解析服务器安全性的java最佳实践   java如何解决由于某种原因导致的执行失败?   关于Servlet的java   如何在java中生成一个大的(30MB+)xml文件?   匿名类重写与传递接口,用于在Java中设计回调   java jar从运行时开始。getRuntime()。exec()比从命令行运行的时间长   java Ant脚本排除文件夹(某些文件除外)   java在Windows 10计算机上运行时遇到Maven错误   java Hibernate在同一个表中级联   java PayPal API设置返回URL   java如何在选项卡的右侧显示关闭按钮   当按下Jmenu按钮时,使用java操作侦听器退出程序