我使用pylint 1.6.4和git-pylint-commit-hook 2.1.1 在预提交时整理我的文件。我还使用alembic来生成我的迁移,它们存储在<project-root>/migrations/versions
.
问题是生成的迁移无效,pylint 会为它们生成警告。我可以使用 --ignore=migrations 忽略迁移。(无论如何,Pylint 都会默认忽略它们,因为迁移不是 Python 模块,它只是一个目录)。但是 git-pylint-commit-hook 调用带有更改文件列表的 pylint 进行验证。如果你给它一个文件名列表,而不是模块,pylint 不会检查文件是否应该被忽略。
当有新的迁移要提交时,这会导致 pre-commit 钩子失败。
Running pylint on migrations/versions/d1f0e08ea6d2_skill_table.py (file 2/13).. 8.6/10.00 FAILED
************* Module d1f0e08ea6d2_skill_table.py
C: 5, 0: Trailing whitespace (trailing-whitespace)
C: 1, 0: Invalid module name "d1f0e08ea6d2_skill_table" (invalid-name)
C: 16, 0: Import "from alembic import op" should be placed at the top of the module (wrong-import-position)
C: 17, 0: Import "import sqlalchemy as sa" should …
Run Code Online (Sandbox Code Playgroud)