Depois da dar uma pincelada na pep8 e no Pylint, chegou a hora de falarmos um pouco sobre o Pyflakes.
Resumidamente, o Pyflakes é uma ferramenta de qualidade que analisa o seu código Python atrás de erros (de sintaxe e importação, por exemplo), retornando um relatório muito objetivo com o arquivo, linha e o tipo de incoerência que ele encontrou.
Uma excelente ferramenta para você ter “plugada” ao seu editor favorito.
As comparações, acredito, serão inevitáveis. Afinal, o que o Pyflakes faz que o Pylint não faz? A resposta que você encontrará é muito simples: O Pyflakes não analisa a “beleza” do seu código. Ou seja, ele apenas verifica erros de lógica e de sintaxe, não de convenções de código.
Isso faz do Pyflakes o parceiro ideal do seu editor de código favorito. Por ser objetivo, favorece a análise e traz resultados interessantes, por exemplo, apontando variáveis criadas que nunca foram usadas, ou métodos importados que nunca foram chamados no escopo de um módulo Python.
Logo, ter as duas ferramentas à mão é uma excelente pedida para incrementar ainda mais o seu ambiente de desenvolvimento.
Vamos analisar o código de um projeto da faculdade que eu fiz, chamado Social portal for soccer players (encontra-se aberto no BitBucket):
$ pyflakes apps/notificate/views.py
A resposta é muito clara. Existem classes sendo importadas, mas que não estão sendo usadas:
apps/notificate/views.py:3: 'EmptyPage' imported but unused
apps/notificate/views.py:3: 'InvalidPage' imported but unused
O funcionamento básico do Pyflakes é esse… simples como as melhores coisas devem ser!
Se assim como eu, você tem um “tropeço” pelo vim, você não pode deixar passar esse bom plugin chamado pyflakes.vim.
Para instalá-lo, basta seguir o guia de instalação contido no arquivo README (leia diretamente do GitHub). Para que o plugin funcione corretamente, o seu vim deve ter suporte a Python (se não tiver, basta compilá-lo com o parâmetro -–enable-pythoninterp).
Uma vez instalado, quando estiver editando um código Python, basta utilizar o comando :cc para navegar entre os erros encontrados pelo plugin.
Até a próxima…