【问题标题】:git-lint pylint not running pylintrc filegit-lint pylint 没有运行 pylintrc 文件
【发布时间】:2016-12-30 05:09:07
【问题描述】:

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

【问题讨论】:

  • 也许我需要做一些事情来将 DEFAULT_CONFIGS 设置为 repo 目录?

标签: python git pylint pylintrc


【解决方案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自缓存写入后已更新,则输出缓存应失效。
否则,您可以编辑配置以忽略错误类型,但在重新运行时仍会出现。

【讨论】:

  • 你是对的,存在缓存问题。而且我想这个问题也没有解决方案。另外,我已经确认{DEFAULT_CONFIGS}/.pylintrc 路径也不起作用。当我用绝对路径替换它时,它可以工作。你知道我可以在哪里设置DEFAULT_CONFIGS 变量吗?
  • @mareoraft 不确定:我看到它在这里定义:github.com/sk-/git-lint/blob/…。对于 v0.0.5 (github.com/sk-/git-lint/blob/…),我可以看到“可以在配置中指定变量 %(REPO_HOME)%(DEFAULT_CONFIGS)
  • 他们没有解释应该在哪里以及如何指定这些变量。
【解决方案2】:

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

然后,它根据how pylint searches for it 选择了正确的 rcfile。另外,我需要删除缓存目录:

rm -r ~/.git-lint/cache

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 2022-11-11
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2022-08-02
    • 2016-12-28
    相关资源
    最近更新 更多