Linters e Formatação de Código em Python: pylint e black

No desenvolvimento de software, escrever código limpo, consistente e legível é tão importante quanto a própria lógica do programa. No Python, ferramentas como linters e formatadores de código ajudam a manter a qualidade, reduzir erros e padronizar o estilo.

Neste artigo, vamos explorar:

  • O que são linters e formatadores.

  • Como usar pylint e black.

  • Diferenças entre eles e boas práticas.

  • Exemplos práticos e dicas para integrar em projetos.



🔹 1. O que são Linters e Formatadores de Código?

Linters

Linters são ferramentas que analisam o código fonte em busca de erros, problemas de estilo e práticas ruins.

  • Eles não executam o código, apenas verificam problemas potenciais.

  • Exemplos de erros detectados: variáveis não usadas, imports desnecessários, nomes de variáveis inconsistentes.

Formatadores de Código

Formatadores reorganizam o código para seguir um padrão de estilo, sem alterar sua lógica.

  • Garantem identação consistente, espaços corretos, quebras de linha e alinhamento de elementos.

  • No Python, o estilo mais usado é o PEP 8.

Em resumo: linters encontram problemas, formatadores corrigem automaticamente o estilo.


🔹 2. Introdução ao pylint

pylint é um linter poderoso para Python, capaz de detectar erros e sugerir melhorias no código.

Instalação:

pip install pylint

Uso básico:

pylint meu_arquivo.py

Ele retorna uma pontuação (0 a 10) e lista avisos, erros e sugestões:

  • C → Convenção de estilo (ex: nome de variável).

  • R → Refatoração recomendada.

  • W → Aviso (possível problema).

  • E → Erro (provável bug).

Exemplo prático:

Arquivo exemplo.py:

def soma(a,b):
    return a+b

Rodando pylint exemplo.py:

C: 1,0: Missing function docstring (missing-function-docstring)
C: 1,9: Exactly one space required after comma

Correções sugeridas pelo linter:

def soma(a, b):
    """Retorna a soma de dois números."""
    return a + b

🔹 3. Introdução ao black

black é um formatador de código que aplica PEP 8 automaticamente.

  • Ele reorganiza o código com estilo consistente.

  • É conhecido como “o formatador sem discussão”, porque decide o estilo por você.

Instalação:

pip install black

Uso básico:

black meu_arquivo.py

Ele ajusta automaticamente indentação, espaços, quebras de linha e mais.

Exemplo:

Código antes do black:

def soma(a,b):
 return a+b

Após rodar black exemplo.py:

def soma(a, b):
    return a + b

🔹 4. Comparação entre pylint e black

Recursopylintblack
FunçãoDetecta erros e problemasFormata o código
Correção automáticaParcial (sugere melhorias)Total
EstiloSugestõesAplica PEP 8 direto
Uso típicoAvaliação e revisãoPadronização rápida

Dica: use ambos juntos. Primeiro rode black para formatar, depois pylint para detectar problemas.


🔹 5. Integração em projetos

5.1. Editor de código

  • VSCodePyCharm e outros suportam integração direta com pylint e black.

  • Eles podem rodar automaticamente ao salvar.

5.2. CI/CD (Integração contínua)

Você pode configurar pipelines no GitHub Actions ou GitLab CI para:

  • Rodar black --check → verifica se o código está formatado.

  • Rodar pylint → avalia a qualidade do código antes de aceitar alterações.

Exemplo de comando CI:

black --check .
pylint src/

Se algum arquivo não estiver formatado ou tiver erros graves, o build falha.


🔹 6. Boas práticas ao usar Linters e Formatadores

  • Configure regras personalizadas se necessário (ex: ignorar algumas regras do PEP 8).

  • Rode black antes de enviar código para o repositório.

  • Use pylint para revisão de código e qualidade.

  • Combine com pre-commit hooks para automatizar o processo.


🔹 7. Exemplo completo

Estrutura do projeto:

meu_projeto/
│── src/
│   └── calculadora.py
│── .pre-commit-config.yaml

.pre-commit-config.yaml para rodar black e pylint automaticamente:

repos:
-   repo: https://github.com/psf/black
    rev: stable
    hooks:
    - id: black
-   repo: https://github.com/PyCQA/pylint
    rev: v2.17.5
    hooks:
    - id: pylint

🔹 8. Conclusão

Linters e formatadores são ferramentas essenciais para qualquer projeto Python:

  • pylint → identifica problemas e sugere melhorias.

  • black → formata o código automaticamente, garantindo consistência.

Usando essas ferramentas você:

  • Evita bugs comuns.

  • Mantém código legível e padronizado.

  • Facilita o trabalho em equipe.

Dica final: configure ambos no seu editor e em pipelines CI/CD para garantir qualidade e profissionalismo no código Python.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Python para Computação Quântica: Introdução com Qiskit