Muitos dos nossos módulos começam com:
try:
import json
except ImportError:
from django.utils import simplejson as json # Python 2.4 fallback.
... e é o único aviso do Pyflakes no arquivo inteiro:
foo/bar.py:14: redefinition of unused 'json' from line 12
Como faço para que o Pyflakes ignore isso?
(Normalmente eu iria ler os documentos, mas o link está quebrado. Se ninguém tiver uma resposta, apenas lerei a fonte.)
Respostas:
Se você pode usar o flake8 - que envolve os flocos de neve e o verificador pep8 - uma linha que termina com
# NOQA
(em que o espaço é significativo - 2 espaços entre o final do código e o
#
, um entre ele e oNOQA
texto) solicitarão ao verificador que ignore os erros nessa linha.fonte
# flake8: noqa
instruirá o flake8 a ignorar a validação de todo o arquivo.# noqa
só ignora certos avisos / erros, mas não todos -, a fim de lidar com isso, uma solução alternativa envolve a instalação / usando o pacote em pypi.python.org/pypi/flake8-respect-noqa# noqa: F841
significa ignorar apenasF841
erros na linha.Eu sei que isso foi questionado há algum tempo e já está respondido.
Mas eu queria adicionar o que costumo usar:
fonte
silence pyflakes
comentário.) Obrigado!assert
afirmação é suficiente para silenciar o verificador neste caso. Bom truque, a propósito.Sim, infelizmente o dimod.org está junto com todos os presentes.
Olhando para o código pyflakes, parece-me que o pyflakes foi projetado para facilitar o uso como um "verificador rápido incorporado".
Para implementar a funcionalidade de ignorar, você precisará escrever sua própria que chama o verificador pyflakes.
Aqui você pode encontrar uma idéia: http://djangosnippets.org/snippets/1762/
Observe que o snippet acima apenas para comentários é colocado na mesma linha. Para ignorar um bloco inteiro, convém adicionar 'pyflakes: ignore' no bloco de documentos e filtro com base no node.doc.
Boa sorte!
Estou usando o pocket-lint para todo tipo de análise de código estático. Aqui estão as alterações feitas no pocket-lint para ignorar os flocos de neve: https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882
fonte
Para citar o ticket de emissão do github :
fonte
_WritelnDecorator;
não faz absolutamente nada, certo? Para que eu possa usar isso para fazer com que os flocos de neve ignorem as variáveis não utilizadas que são realmente usadas nas seqüências eval ou numexpr , listando as variáveis em uma linha separada? O ponto e vírgula é necessário?dis.dis
, isso aparentemente faz umLOAD_FAST
ePOP_TOP
para cada variável em uma linha por si só (coloca na pilha e a remove da pilha?), Portanto, não está fazendo nada. Melhor queassert
, no entanto.Aqui está um patch de macaco para flocos de neve que adiciona uma
# bypass_pyflakes
opção de comentário.bypass_pyflakes.py
Se você salvar isso como
bypass_pyflakes.py
, poderá invocá-lo comopython bypass_pyflakes.py myfile.py
.http://chase-seibert.github.com/blog/2013/01/11/bypass_pyflakes.html
fonte
text_lineno = args[0] - 1
seja alterado paratext_lineno = args[0].lineno - 1
. Eu recomendo atualizar esta resposta para refletir isso.Você também pode importar com
__import__
. Não é pitônico, mas os flocos de neve não o alertam mais. Veja a documentação para__import__
.fonte
from foo import bar
Criei um pequeno script de shell com um pouco de
awk
magia para me ajudar. Com isso, todas as linhas comimport typing
,from typing import
ou#$
(este último é um comentário especial que estou usando aqui) são excluídas ($1
é o nome do arquivo do script Python):Basicamente, ele anota os números das linhas e cria dinamicamente um regex.
fonte