2016-12-30 110 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