标签: flake8

Flake8无法识别内置异常

我有一个严格的预提交钩子设置与flake8,所以我不能承诺,直到它开心.这通常是一件好事,但它会导致一些看似没问题的问题.

我无法让Flake8识别出来FileNotFoundError.

example.py

try:
    pass
except FileNotFoundError:
    pass
Run Code Online (Sandbox Code Playgroud)

这是足以使Flake8生成错误的代码

$ flake8 example.py
example.py:3:8: F821 undefined name 'FileNotFoundError'
$ python example.py # no error
$ python3 example.py # no error
Run Code Online (Sandbox Code Playgroud)

我检查了python文档,FileNotFoundError是一个'内置'异常,所以我认为我不应该从任何地方导入它,而我的python解释器没有抱怨它,只是看起来像flake8的问题.

python githooks flake8

21
推荐指数
2
解决办法
5873
查看次数

哪个原子python linting包稳定?

似乎有太多的Python linting包,我很想知道我们应该使用哪一个.

我怀疑安装两个会提供一个令人困惑的经验,如果不是甚至触发奇怪的错误.

以下是我想澄清的几个方面:

  • 可以使用多个?
  • 要求作者加入努力并专注于单一作品会不会更好?
    对他们有什么利弊?

python flake8 atom-editor

18
推荐指数
0
解决办法
6876
查看次数

vim-flake8不能正常工作

我像往常一样通过git克隆它在我的Pathogen bundle文件夹上安装了vim-flake8,但是当我尝试在一个Python文件中按下F7或使用插件时:call Flake8(),我收到以下消息:

处理函数Flake8时检测到错误:

第8行:

找不到文件flake8.请先安装它.

任何人都有一些关于发生了什么的线索?

python vim pyflakes flake8

15
推荐指数
2
解决办法
7917
查看次数

如何忽略heredoc中的flake8“行太长”错误

假设我有一个带有长行的定界文档的文件:

    some_string = '''
very long lines here, 20 lines each of length 500
'''
Run Code Online (Sandbox Code Playgroud)

如何忽略该定界文档中的所有 flake8“行太长”错误,而不排除整个文件的检查?

这个答案描述了# noqa一行,但我不能把它放在heredoc中。 该手册似乎没有描述忽略一段代码。

python flake8

14
推荐指数
1
解决办法
1万
查看次数

VSCode 中自动格式化 flake8 linting 错误

我正在使用flake8Python 的 linter,并且有很多代码格式问题,例如blank line contains whitespace flake8(W293)

我正在尝试自动修复这些 linting 问题。我有这些设置:

    "python.linting.enabled": true,
    "python.linting.flake8Enabled": true,
    "python.linting.lintOnSave": true,
    "python.linting.flake8Args": [
        "--ignore=E501",
    ],
    "editor.formatOnSave": true
Run Code Online (Sandbox Code Playgroud)

我正在使用默认autopep8格式化程序,但它似乎什么也没做。当我保存文件或运行命令时没有任何反应Format Document

有什么方法可以自动修复这些 linting 错误吗?

python formatting flake8 visual-studio-code linter

14
推荐指数
1
解决办法
3万
查看次数

flax8/pylint在Tox测试环境中失败,引发InvocationError

我一直在学习如何在tox中为我的python项目进行测试.

我有(应该是)一个相当标准的tox初始化文件,如下所示:

[tox]
envlist=py27,flake8
...
[testenv:flake8]
deps=flake8
commands=flake8 library # 'library' is temp. name of project
Run Code Online (Sandbox Code Playgroud)

一切看起来都很正常,所有测试工作,甚至flake8输出都通过(下面的输出).但是,tox引发了一个InvocationError(它在使用pylint进行测试时也是如此)

flake8 recreate: /Users/shostakovich/projects/project_templates/library/.tox/flake8
flake8 installdeps: flake8
flake8 inst: /Users/shostakovich/projects/project_templates/library/.tox/dist/library-0.1.0.zip
flake8 installed: flake8==2.4.1,library==0.1.0,mccabe==0.3,pep8==1.5.7,pyflakes==0.8.1,wheel==0.24.0
library/__main__.py:12:1: F401 'os' imported but unused
library/__main__.py:13:1: F401 're' imported but unused
...
ERROR: InvocationError: '/Users/shostakovich/projects/project_templates/library/.tox/flake8/bin/flake8 library'
Run Code Online (Sandbox Code Playgroud)

我在MaxOSX 10.9.5上运行tox 2.0.2.如果我直接调用flake8或pylint(上面显示了flake8的版本),问题就消失了.

python testing tox flake8

13
推荐指数
1
解决办法
5700
查看次数

每个项目的flake8最大线长?

我在我的项目中使用Flake8 git钩子,我想放宽行长度限制,但仅限于一个项目.鉴于它看起来没有明确的API,我该如何修改这个钩子来做到这一点?或者,是否有一个git-config设置或环境变量可以让我设置它?这是钩子源代码:

#!/usr/bin/env python
import os
import sys
import logging
import os.path as P

from flake8.main import git


if __name__ == '__main__':
    ret = git.hook(
        strict=git.config_for('strict'),
        lazy=git.config_for('lazy'),
    )
    if ret:
        sys.exit(ret)
Run Code Online (Sandbox Code Playgroud)

python git flake8

13
推荐指数
1
解决办法
9336
查看次数

如何解决 E402 的问题?

我们正在尝试解决 PEP8 E402 的问题。

大多数情况下,我们的代码被破坏:

import os
os.environ['LIB_CAN_THROW_ERROR_ON_IMPORT'] = 2
import lib
os.environ['LIB_CAN_THROW_ERROR_ON_IMPORT'] = 0 # back
Run Code Online (Sandbox Code Playgroud)

——

if sys.version_info[0] > 2:
    import python3lib
else:
    import python2lib
Run Code Online (Sandbox Code Playgroud)

——

try:
    import lib
except:
    print('lib is required')
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

如何解决这些违规行为?

python pep8 flake8 pycodestyle

13
推荐指数
1
解决办法
6969
查看次数

在Ipython中使用Pylint(Jupyter-Notebook)

我想在使用Jupyter-Notebook时运行Pylint或任何等效项.有没有办法以这种方式安装和运行Pylint?

python pylint python-3.x flake8 jupyter-notebook

13
推荐指数
3
解决办法
3668
查看次数

Python黑色格式化程序与VSCode中的规则flake8 W503冲突

每当有一个内联断言规则需要针对 bool 语句进行验证时,在 VSCode 中使用 python black 格式化程序都会破坏该行,导致 flake8 发出有关规则 W503 的警告

line break before binary operatorflake8(W503)

assert (
      ...
      != ...
)
Run Code Online (Sandbox Code Playgroud)

有没有解决这个问题而不是忽略该规则的方法?

python flake8 python-black

13
推荐指数
1
解决办法
1万
查看次数