git Pre-commit-hook for Python项目

eufgjt7s  于 2023-05-27  发布在  Git
关注(0)|答案(3)|浏览(133)

如何在将代码检入GitHub之前使用pre-commit钩子删除Python项目中的print语句?目前,我使用black和flake 8预提交钩子。但是它们似乎没有在签入代码之前检查和删除print语句的选项。

jckbn6z7

jckbn6z71#

你可以使用flake8插件来检查print语句。
https://pypi.org/project/flake8-print/
只需添加到您的预提交配置:

- repo: https://gitlab.com/pycqa/flake8
    rev: <desired-rev>
    hooks:
      - id: flake8
        additional_dependencies: [flake8-print]
rta7y2nd

rta7y2nd2#

由于pre-commit framework只调用flake8,因此您需要检查its configuration以查看是否有任何设置会触发打印语句删除(与error/violation codes相反)。
由于flake8本身不支持这一点,因此您需要开发一个plugin to flake8来处理这些错误并删除打印行。
如果您这样做了,请不要忘记添加更改,如“Can you change a file content during git commit ?”中所述。

dw1jzc5e

dw1jzc5e3#

remove-print-statements终于解决了我的问题

repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
    -   id: end-of-file-fixer
    -   id: trailing-whitespace
-   repo: https://github.com/pycqa/flake8
    rev: 6.0.0
    hooks:
    - id: flake8
-   repo: https://github.com/dhruvmanila/remove-print-statements
    rev: v0.5.1  # Replace with latest tag on GitHub
    hooks:
    -   id: remove-print-statements
        args: ['--verbose']

我试过了,8号打印机不行

$ flake8 --version
6.0.0 (flake8-print: 5.8.8, mccabe: 8.7.8, pycodestyle: 2.10.0, pyflakes: 3.0.1) CPython 3.11.3 on Darwin

相关问题