Limpe sua base de código com esta ferramenta de linha de comando fácil de usar.
Uma ferramenta linting é um recurso valioso que pode ajudá-lo a detectar erros e inconsistências em seu código.
Flake8 é uma das ferramentas de linting mais populares para Python. Ele identifica erros de sintaxe e formatação em seu código, juntamente com outros problemas, como importações não utilizadas. É muito flexível porque, embora tenha regras padrão, você pode alterá-las ou adicioná-las para atender às suas necessidades.
Você também pode configurar o Flake8 para ser executado ao salvar atualizações em seu código usando o VS Code. Todos esses recursos o tornam uma ferramenta valiosa ao escrever programas em Python.
Instalando o Flake8
Siga as etapas abaixo para instalar o Flake8 em seu ambiente de desenvolvimento. você pode precisar instale o Pip na sua máquina primeiro.
- Execute o comando abaixo em seu terminal para instalar o Flake8:
pip instalar flake8
- Verifique se o Flake8 está instalado executando o seguinte comando:
flake8 --versão
- Se o Flake8 estiver instalado corretamente, você deverá ver uma saída semelhante à seguinte:
4.0.1 (mccabe: 0.6.1, pycodestyle: 2.8.0, pyflakes: 2.4.0) CPythonGenericName 3.9.13sobre
Linux
Depois de instalar o Flake8 com sucesso, você pode começar a usá-lo.
Usando Flake8 para analisar código Python
Para entender como usar o Flake8, comece com o seguinte código. Tem alguns erros intencionais. Copie-o para um arquivo chamado saudação.py.
defsaudações(nome):
imprimir("Olá, " + nome)
saudações("Alice")
saudações("Prumo")
Executando o Flake8 em um único arquivo
A sintaxe para executar o Flake8 em um único arquivo é a seguinte.
flake8 caminho/para/arquivo.py
Neste exemplo, navegue até o diretório que contém o arquivo greting.py e execute o seguinte comando.
flake8 saudação.py
O Flake8 deve retornar a seguinte mensagem mostrando que houve um erro de indentação.
saudações.py:5:1: E999IndentationError: inesperadorecuar
Esta saída indica que a linha 5 está recuada desnecessariamente. Para corrija este erro de indentação, você precisa remover o espaço do início desta linha.
defsaudações(nome):
imprimir("Olá, " + nome)
saudações("Alice")
saudações("Prumo")
Agora, ao executar o Flake8, você receberá os seguintes avisos.
saudações.py:4:1: E305esperado 2 em brancolinhasdepoisaulaoufunçãodefinição, encontrado 1
saudações.py:5:16: W292nãonova linhanofimdearquivo
Esta saída indica os seguintes problemas:
- Na linha 4, deve haver duas linhas em branco após a definição da função de saudação, mas há apenas uma.
- Na linha 5, deve haver uma nova linha no final do arquivo.
Depois de corrigir esses problemas, flake8 não deve retornar nenhuma mensagem.
Até agora, analisamos apenas um arquivo, mas na maioria dos casos, você desejará analisar vários arquivos.
Executando o Flake8 em vários arquivos
Diga que você tem outro chamado test_greeting.py que contém o seguinte código:
de saudações importar saudações
deftest_greet():
afirmar saudações("Alice") == "Olá, Alice!"
Para analisar esses dois arquivos, execute o seguinte comando.
flake8 saudação.py test_greeting.py
Esse método funciona, mas se você tiver mais de dois arquivos, digitar os nomes dos arquivos pode ser cansativo e sujeito a erros.
É mais eficiente usar o seguinte comando para analisar todos os arquivos no diretório atual:
flake8 .
Compreendendo os erros e avisos do Flake8
O Flake8 relata dois tipos de problemas:
- Erros: um erro indica um problema de sintaxe ou estrutural que impede que seu código seja executado como o erro de indentação do exemplo greeting.py.
- Avisos: um aviso indica um possível problema ou uma violação das diretrizes de estilo PEP 8, como o aviso “sem nova linha no final do arquivo” do exemplo greeting.py.
Alguns dos erros e avisos comuns são:
- E101: o recuo contém espaços e tabulações mistos.
- E302: esperava 2 linhas em branco, encontrou 0.
- E999 IndentationError: recuo inesperado.
- W291: espaço em branco à direita.
- E501: linha muito longa (máximo de 79 caracteres).
- F401: módulo importado mas não utilizado.
Quando você executar o Flake8, ele exibirá uma mensagem como a mostrada acima e o número da linha e a localização do código à qual a mensagem se refere. Isso ajuda você a saber exatamente onde seu código tem problemas que economizam tempo de depuração.
Configurando o Flake8
Para alguns projetos, as regras do Flake8 podem ser muito rígidas. Nesses casos, o Flake8 permite que você o configure e adapte seu comportamento para atender às suas necessidades.
Você pode fornecer opções de configuração, como:
- Ignorando erros ou avisos específicos.
- Configurando o comprimento máximo da linha.
- Especificando regras adicionais.
Para demonstrar, crie um arquivo de configuração chamado setup.cfg. Você também pode adicionar as opções de configuração a um arquivo denominado tox.ini ou .flake8.
Neste arquivo, comece criando uma seção flake8 da seguinte forma:
[flake8]
Em seguida, adicione as opções que deseja configurar:
[flake8]
comprimento máximo da linha = 100
ignorar = F401
Neste exemplo, max-line-length = 100 informa ao Flake8 para emitir avisos para qualquer linha em seus arquivos de código-fonte que excedam 100 caracteres de comprimento. ignore = F401 diz ao Flake8 para ignorar erros relacionados a importações não utilizadas.
Você não precisa adicionar essas opções a um arquivo de configuração, pois pode especificá-las na linha de comando assim:
flake8 --ignore E203 --max-line-length 100
Usar um arquivo de configuração é a melhor abordagem, pois você não precisa especificar as mesmas opções toda vez que usar o flake8.
Usando Flake8 no código VS
Se você estiver usando o VS Code para escrever seu aplicativo Python, poderá usar a extensão flake8 para lintar seus arquivos Python enquanto digita.
Primeiro, você precisa instalar a extensão flake8 do mercado VS Code. Em seguida, para configurá-lo, abra as configurações do VS Code, procure por "python.linting.flake8Enabled" e ative o linting com flake8.
Agora você deve ver os erros e avisos destacados em seu código com uma linha ondulada enquanto o escreve. Passar o mouse sobre o texto realçado exibirá uma mensagem que explica o problema e sugere possíveis correções.
Outro IDEs Python como Pycharm também têm extensões Flake8 que você pode configurar para simplificar o processo de linting.
Por que você deve usar um Linter?
À medida que escreve o código, você pode apresentar erros e inconsistências que fazem com que seu aplicativo falhe ou tenha problemas de desempenho. Um linter como o Flake8 permite detectar alguns desses problemas com antecedência, ajudando a escrever um código mais limpo. É muito importante integrá-lo ao seu fluxo de trabalho de desenvolvimento.
Você pode fazer isso usando-o em seu editor de texto ou IDE e integrando-o em seu contínuo pipeline de integração para verificar automaticamente se há erros e avisos em seu código antes de mesclá-lo ao seu ramo principal.