标签: pyflakes

如何让pyflakes忽略一些错误?

我正在使用使用pyflakes的SublimePythonIDE.我希望忽略一些错误,例如:

(E501) line too long
Run Code Online (Sandbox Code Playgroud)
(E101) indentation contains mixed spaces and tabs
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

python pyflakes sublimetext

8
推荐指数
1
解决办法
6925
查看次数

Python中的惯用方式表示故意导入未使用的模块

有时,似乎未使用的Python模块导入实际上对于程序的正常运行至关重要。看似未使用的导入会引起来自PyFlakes之类的工具的虚假消息,并且可能引起狂热的程序员不必要的注意。例如,C ++(自C ++ 11起)有一种惯用的方式来用[[unused]]属性来表明这一点([[maybe_unused]]自C ++ 17起)。

我特别是在像Flask这样的Web框架的情况下问这个问题,通常是这种情况。例如,Flask应用程序中的以下样板代码对于正常运行是必不可少的:

from app import auth_routes, app, db
from app.resources import api
Run Code Online (Sandbox Code Playgroud)

我通常通过以下方式处理这种情况

import X
assert X is not None # Explanatory comment
Run Code Online (Sandbox Code Playgroud)

有没有一种关于意图的更明确的方法和更多的“ Pythonic”来实现这一目标?

python conventions python-import flask pyflakes

7
推荐指数
1
解决办法
73
查看次数

pylint 错误 - 使用 @property + @foo.setter 时的 E1101 和 E0102

我注意到 pylint 不能很好地处理以下情况:

@property
def foo(self):
   return self._bar.foo

@foo.setter
def foo(self, foo_val):
   self._bar.foo = foo_val
Run Code Online (Sandbox Code Playgroud)

虽然它是自 python2.6 以来完全有效的 case 语法

它说我定义了 foo 两次,并且不理解“.setter”语法(给出 E1101 和 E0102)。

有没有无需更改代码的解决方法?我不想禁用错误,因为它们对其他地方很重要。

有没有其他工具可以更好地处理它?我已经检查过 pyflakes 并且它的行为方式相同。PyDev 的代码分析似乎可以更好地处理这种特定情况,但它不会检查 pylint 所做的约定、重构和其他很酷的功能,而且我无法从外部脚本运行它(或者我可以吗??)

谢谢!

python pylint pydev pyflakes

6
推荐指数
1
解决办法
1920
查看次数

flake8中的缩进配置

我的项目使用宽度为4的空格进行缩进.

但是,在其上运行flake8会产生警告,表示预期的制表符/缩进宽度为2个空格.

如何配置flake8以正确接受4个空格进行缩进?

class Foo(object):
    bar = True
Run Code Online (Sandbox Code Playgroud)

上面提到的是我的(过度简化的)代码片段flake8标记第2行,警告说:

[W0311] Bad indentation. Found 4 spaces, expected 2
Run Code Online (Sandbox Code Playgroud)

我正在使用带有flake8插件的vim.

在我的.pylintrc:

[FORMAT]
indent-string='    '
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何.pylintrc进入画面,因为linting是由flake8 vim插件完成的

python pep8 python-3.x pyflakes flake8

6
推荐指数
1
解决办法
2655
查看次数

flake8如何在多行代码中忽略?

使用flake8,要在一行中禁用某个错误,请执行以下操作:

example = lambda: 'example'  # noqa: E731,E123
Run Code Online (Sandbox Code Playgroud)

但是,如果我有多行语句,则flake8无法在末尾解析noqa语句:

from detect_fixtures import expected_response_stage3_mocked, expected_response_bbox_oob,\
    mock_detection, mock_detection_models, mock_detection_stage1, mock_detection_stage2,\
    mock_detection_stage3_given_bbox, mock_load_image  # noqa: F401   
Run Code Online (Sandbox Code Playgroud)

我想使用“ \”作为延续,所以我不想这样做(确实可行)

from detect_fixtures import (expected_response_stage3_mocked,  # noqa: F401                      
    expected_response_bbox_oob, img, mock_detection, mock_detection_models,  # noqa: F401        
    mock_detection_stage1, mock_detection_stage2, mock_detection_stage3_given_bbox,  # noqa: F401
    mock_load_image)  # noqa: F401          
Run Code Online (Sandbox Code Playgroud)

这里有什么帮助吗?

python pyflakes

6
推荐指数
1
解决办法
2604
查看次数

可以在系统的临时目录中创建flymake的临时文件吗?

我目前正在使用以下代码在emacs中连接flymake和Pyflakes:

(defun flymake-create-temp-in-system-tempdir (filename prefix)
  (make-temp-file (or prefix "flymake")))
Run Code Online (Sandbox Code Playgroud)

然后我将此功能传递给flymake-init-create-temp-buffer-copy.(摘自http://hustoknow.blogspot.com/2010/09/emacs-and-pyflakes-using-tmp-directory.html).

这段代码工作正常,直到昨天.当我访问某些Python文件时,我收到以下错误:

switched OFF Flymake mode for buffer admin.py due to fatal status
CFGERR, warning Configuration error has occured while running    
(pyflakes ../../../../../../../tmp/flymake28459SVv)
Run Code Online (Sandbox Code Playgroud)

为什么flymake会将看似错误的文件名传递给pyflakes?我希望它传递类似"/ tmp/efe234234"的东西,我没有修改任何tmp目录设置.

我不记得最近为Ubuntu更新了emacs,也无法想到任何可能导致这个问题陷入困境的事情(.emacs文件版本化).

我能想到的唯一问题是,这是一个嵌套到目录中的嵌套目录,这个目录符号链接到〜/ Dropbox目录中的目录,但这种情况不会以类似的方式发生在其他符号链接中.

我该如何解决这个问题?

UPDATE

我做了一些调试,现在我发现它没有传递正确的路径作为参数.它需要在路径中插入一个更多的父目录才能使它工作,这让我觉得它因为符号链接而变得混乱.

这是一个示例shell会话,以显示我的意思.我是从正确的相对目录中这样做的:

$ pyflakes ../../../../../tmp/flymake13382xHi 
../../../../../tmp/flymake13382xHi: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这就是flymake试图运行的命令.如果我改变它:

$ pyflakes ../../../../../../tmp/flymake13382xHi
Run Code Online (Sandbox Code Playgroud)

我没有输出(如预期的那样).注意路径中的额外"..".

我如何让flymake通过绝对路径而不是这些疯狂的相对路径?

更新2

我已经把一切都搞定了.基本上有这个功能:

(defun flymake-pyflakes-init ()
     ; Make sure it's not a remote buffer or flymake would not work
     (when (not …
Run Code Online (Sandbox Code Playgroud)

python emacs flymake pyflakes

5
推荐指数
1
解决办法
1828
查看次数

是否有用于鼻子测试的pylint和pyflakes插件?

我想知道是否有针对pylint和/或pyflakes的鼻子插件?

目前我正在使用覆盖组织(PEP8)插件进行鼻部测试.

Tnx提前

python testing pylint nosetests pyflakes

5
推荐指数
1
解决办法
1042
查看次数

我如何关注换行符关于python PEP8,它有多重要?

我在python 3.5.1编写,我是一个编程新手.

我根据python样式指南使用带有pep8pyflakes插件的gedit来显示样式错误.我不知道是否要遵循风格推荐信.

然而,我有三个反复出现的风格缺陷E501: line too long (80 > 79 characters),E502: the backslash is redundant between brackets并且E128/E127/...: continuation line under-indented for visual indent.截图如下.

我的两个问题是:

  1. 我怎样才能充分让Python中的换行,以避免E501和随后的风格的错误E502E127/128
  2. 遵循样式指南pep8到字母是否有帮助,特别是考虑到出版物?高级python程序员说什么?

E501: 在此输入图像描述

E502: 在此输入图像描述

E127/128 ...: 在此输入图像描述

python gedit pep8 pyflakes python-3.5

5
推荐指数
1
解决办法
5655
查看次数

pep8 警告有关 8 个空格的缩进

这段代码:

def foo():
        print("hello")
Run Code Online (Sandbox Code Playgroud)

违反PEP 0008,其中规定

每个缩进级别使用 4 个空格。

但是,无论是pep8pyflakesflake8命令,警告一下吧。

我怎样才能让他们中的一个人抱怨这个 unpythonic 代码?

python pep8 pylint pyflakes flake8

5
推荐指数
1
解决办法
5531
查看次数

如何在Windows上运行pyflakes?

无法在Windows上运行pyflakes.

在Windows上没有apt install,所以...该怎么办?

python windows pyflakes

4
推荐指数
1
解决办法
4776
查看次数