使用正则表达式编写自己的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第三方库


热门话题
java如何为ConcurrentHashMap使用并设置适当的并发级别?   java泛型方法,运行时错误,   java在页面上显示加载的图像   java Paypal定期直接支付问题   java如何延迟重新绘制组件   JavaSpringBoot+Hibernate如何维护@Transient字段   java在其方法中获取关于类的信息   在java中将别名添加到枚举   java如何解决向google报告成绩时“需要重新连接客户端”的问题   清晰的java图像背景   java未找到适合JDateChooser的构造函数(字符串、字符串、字符)   java LRU缓存实现。某些测试用例的代码失败   if语句Java嵌套的if/Else条件   java JSoup“wrap”并非每次都按预期工作   Java Spring引导循环依赖于一个环境   ssl证书无法通过Java和IntelliJ连接到SOAP服务   带整数验证的Java扫描器   java在Flex中呈现具有动态列的datagrid   java Android:通过用户选择的选项将文件上载到服务器   子类中的java抛出错误、异常和运行时异常