2016-12-30 105 views
1

我为我的Python项目使用git-lintgit-lint pylint没有运行pylintrc文件

我有一个.gitlint.yaml文件在我的git仓库,其中包含,除其他事项外的根,

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由除我以外的某个用户运行。

+1

也许我需要做一些事情来设置DEFAULT_CONFIGS到repo目录? – mareoraft

回答

1

我看到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已更新,则应该使输出缓存失效。
否则,您可以编辑配置为例如忽略错误类型,但重新运行时它仍然存在。

+0

你说得对,有一个缓存问题。我想这个问题也没有解决方案。另外,我已确认'{DEFAULT_CONFIGS} /。pylintrc'路径也不起作用。当我用绝对路径替换它时,它起作用。你知道我可以在哪里设置'DEFAULT_CONFIGS'变量吗? – mareoraft

+0

@mareoraft不知道:我看到它在这里定义:https://github.com/sk-/git-lint/blob/34d738e0a2a12828b28cd0556d1a20447357c0fa/gitlint/linters.py#L137-L139。我可以看到v0.0.5(https://github.com/sk-/git-lint/blob/34d738e0a2a12828b28cd0556d1a20447357c0fa/README.rst#v005-2014-05-09)“变量'%(REPO_HOME)'和'%(DEFAULT_CONFIGS)'可以在配置中指定“ – VonC

+1

它们无法解释应该在哪里以及如何指定这些变量。 – mareoraft