git-lint pylint没有运行pylintrc文件

时间:2016-12-30 05:09:08

标签: python git pylint pylintrc

我在我的Python项目中使用git-lint

我的git仓库的根目录中有一个.gitlint.yaml文件,其中包含

pylint:
  extensions:
  - .py
  command: pylint
  arguments:
  - "--rcfile={DEFAULT_CONFIGS}/.pylintrc" # doesn't seem to work
  - "--disable=all" # doesn't work either
  - "--output-format=text"
  - "--msg-template='{{abspath}}:{{line}}:{{column}}: [{{category}}:{{symbol}}] {{obj}}: {{msg}}'"
  - "--reports=n"
  filter: "^{filename}:(?P<line>{lines}):((?P<column>\\d+):)? \\[(?P<severity>.+):(?P<message_id>\\S+)\\]\\s+(: )?(?P<message>.+)$"
  installation: "Run pip install pylint."

我甚至创建了一个~/.config/pylintrc文件,其中包含

indent-string=\t

但是当我运行git lint时,不会禁用任何警告,尤其是line 41, col 0: Warning: [mixed-indentation]: Found indentation with tabs instead of spaces警告。

我已经断定(并验证)~/.config/pylintrc文件根本没有被处理。

为什么pylint会忽略所有配置选项?我可以采取哪些故障排除步骤?我最好的猜测是,当由git lint执行时,pylint由我以外的其他用户运行。

2 个答案:

答案 0 :(得分:2)

我在test/unittest/test_gitlint.py中看到了:

self.root = '/home/user/repo'
git_config = os.path.join(self.root, '.gitlint.yaml')

所以你的配置应该在正确的位置 但请检查/home/user/.git-lint/cache中是否提到了缓存问题(issue 34)。

  

如果自写入缓存后.gitlint.yaml已更新,则输出缓存应无效   否则,您可以编辑配置以例如忽略错误类型,但在重新运行时它仍然存在。

答案 1 :(得分:0)

我遇到了同样的问题。我的解决方法是删除.gitlint.yaml文件中的rcfile参数行。

然后,它根据how pylint searches for it选取了正确的rcfile。另外,我需要使用以下命令删除缓存目录:

rm -r ~/.git-lint/cache