【问题标题】:flake8: Ignore only F401 rule in entire fileflake8:仅忽略整个文件中的 F401 规则
【发布时间】:2019-12-04 00:36:08
【问题描述】:

有没有办法让flake8 只忽略整个文件的特定规则?具体来说,我想忽略整个文件的 F401

我有一个像__init__.py 这样的文件,我在其中导入了从未在该文件中使用过的符号。我宁愿不将# noqa 添加到每一行。我可以将 # flake8: noqa 添加到文件的开头,但这会忽略 all 规则。我想只是忽略F401 规则。

【问题讨论】:

    标签: python flake8


    【解决方案1】:

    目前没有办法只使用文件本身内的源来完成您的要求

    当前建议的方法是在您的flake8 配置中使用per-file-ignores 功能:

    [flake8]
    per-file-ignores =
        */__init__.py: F401
    

    请注意,F401 可以以更好的方式解决__all__ 中公开的任何名称都将被pyflakes 忽略:

    from foo import bar  # would potentially trigger F401
    __all__ = ('bar',)  # not any more!
    

    (免责声明:我是flake8 的当前维护者和pyflakes 的维护者之一)

    【讨论】:

    • 我会说这与其说是免责声明,不如说是权威声明 :)
    • @chepner 是的——不幸的是(或幸运的是?)SO 规则要求这样的披露;)
    • 好的。这有帮助。谢谢!您会考虑对位于文件本身顶部的每个文件规范的功能请求吗? (如果不是特别针对F401,那么可能是其他错误。)
    • 什么是 flake8 文件? .flake8.cfg?
    • @theX setup.cfg, tox.ini, or .flake8(通过谷歌搜索“flake8 配置文件”找到)
    【解决方案2】:

    根据Documentation,就像更改# noqa 一样简单:

    # noqa: F401
    

    【讨论】:

    • 我认为这只是一行,而不是整个文件。整个文件的正确语法是什么?例如,文件顶部的# flake8: noqa: F401 仍然会忽略所有 规则。
    • 你可以像这样在控制台上运行它:flake8 --ignore=F401 your_script.py
    • 是的,我知道那个语法,但我正在寻找一种方法来表示这个在文件中,这样我就不必修改命令行字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 2018-10-15
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多