使用正则表达式编写自己的linting规则

relint的Python项目详细描述


正则表达式linter

使用正则表达式编写自己的linting规则。

安装

pip install relint

用法

您可以在yaml文件中编写自己的规则,例如:

-name:No ToDopattern:"[tT][oO][dD][oO]"hint:Get it done right away!filename:-"*.py"-"*.js"error:false

name属性是您的linter的名称,pattern可以是 任何正则表达式。linter会对整个文件进行lint操作,因此 表达式可以匹配多行并包含换行符。

您可以通过以下方法缩小linter应该使用的文件类型 提供可选的filename属性。默认值是*

可选的错误属性允许您只显示警告但不退出 使用一个坏的(非零)退出代码。默认值为true

以下命令将lint当前目录中的所有文件:

relint -c .relint.yml **

默认配置文件名是工作中的.relint.yaml。 目录,但您可以提供任何yaml或json文件。

如果您喜欢对更改的文件(缓存在git上)进行linting,可以使用以下选项 –差异[-d]

git diff | relint my_file.py --diff

此选项对于预提交非常有用。下面是一个如何使用它的例子 使用pre-commit框架:

-repo:https://github.com/codingjoe/relintrev:0.5.0hooks:-id:relint

您可以在此存储库中找到relint-pre-commit.sh的示例。

样品

-name:db fixturespattern:"deftest_[^(]+\\([^)]*(customer|product)(,|\\))"hint:Use model_mommy recipies instead of db fixtures.filename:-"**/test_*.py"-name:model_mommy recipiespattern:"mommy\\.make\\("hint:Please use mommy.make_recipe instead of mommy.make.filename:-"**/test_*.py"-"conftest.py"-"**/conftest.py"-name:the database is lavapattern:"@pytest.fixture.*\\n[]*def[^(]+\\([^)]*(db|transactional_db)(,|\\))"hint:Please do not create db fixtures but model_mommy recipies instead.filename:-"*.py"-name:No logger in management commandspattern:"(logger|importlogging)"hint:"Pleasewritetoself.stdoutorself.stderrinfavorofusingalogger."filename:-"*/management/commands/*.py"

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

推荐PyPI第三方库


热门话题
MIME类型多部分/混合的java无对象DCH   Java Swing中单元格和列的间距   java为什么我不能使用For循环从集合中获取元素?   mysql Java餐厅计费系统   java MediaPlayer内存消耗   println Java添加的神秘输出:一些经过评估,一些经过打印   java我应该使用哪个对象?   PHP到Java论坛游戏集成   通过GeoNetwork上的java http post请求获取XML响应   java为什么类名与使用“==”的内部字符串比较冲突?   java反应。js如何定义自定义id,而不是在html中显示reactselect1value   java中的拼字数组   java如何使ScheduledExecutorService在其计划任务取消时自动终止   java查询未正确执行   IBatis+Java:检索HashMap   要读取的加密Java代码。txt文件并转换为二进制表示形式   Java Web Start应用程序自动加载   java Swing重写对象的paintComponent