PEP8 - O dedo duro do código mau escrito

A PEP 8 (disponível aqui), é um guia de estilo para escrever códigos Python, ou seja como escrever código Python de forma Pythonica.

A forma Pythonica está definida no poema da PEP 20 (disponível aqui). 

Eu que estou começando a programar em Python achei bem interessante ter uma PEP específica regras e padrões para escrita de um código Python tornando mais agradável de visualizar.

Quem já tentou definir padrão para escrita de código, independente da linguagem, sabe que esta tarefa é árdua, difícil e muitas vezes mau vista por alguns desenvolvedores.

Validação da PEP8


Se você estiver utilizando a IDE PyCharm, ele automaticamente já utilza e valida o seu código fonte com a PEP8.

Mas se você estiver utilizando um editor de texto comum ou utiliza integração continua como o TeamCity e deseja validar o seu código fonte com a PEP8, instale as ferramenta pycodestyle (GitHub), pep8-naming (GitHub) e flake8 (GitHub).

O pycodestyle é uma ferramenta para verificar seu código Python em relação a algumas das convenções de estilo do PEP 8, lista completa de validações disponível aqui. Abaixo listagem dos tópicos de cada validação.

  • E1xx - Indentação;
  • E2xx - Espaço em branco;
  • E3xx - Linha em branco;
  • E4xx - Importação;
  • E5xx - Tamanho de linha;
  • E7xx - Instruções;
  • E9xx - Tempo de Execução (Runtime);
  • W2xx - Alertas de espaço em branco;
  • W3xx - Alerta de linha em branco;
  • W5xx - Alerta de quebra de linha;
  • W6xx - Alerta de suspensão de uso (Exemplo: funções).

O pep8-naming é uma ferramenta para validar convenções de nomenclatura da PEP8.

Já o flake8, é uma ferramenta que utiliza a pycodestyle e pep8-naming internamente, possibilitando em um comando rodar as duas bibliotecas.

Para instalar as ferramentas execute os comandos abaixo no terminal:

pip install pycodestyle
pip install pep8-naming
pip install flake8

Utilizando as ferramentas


Vamos utilizar este exemplo simples para validar a PEP8 com as ferramentas pycodestyle, pep8-naming e flake8.

No terminal, execute:

flake8 pep8.py

O resultado será:

pep8.py:3:1: W293 blank line contains whitespace
pep8.py:4:1: E302 expected 2 blank lines, found 1
pep8.py:4:8: N801 class name 'sum_two_values' should use CapWords convention
pep8.py:5:9: W292 no newline at end of file

Os erros da linha 3, 4 e 5 são erros de formatação no código fonte. Este erros indicam, que existem espaços em branco em uma linha em branco e que era esperado 2 linhas em branco depois da linha 4 e tem somente uma e deveria ter duas linhas em branco e não existe uma linha nova no final do arquivo, respectivamente.

Já o erro da linha 4, colkuna 8, indica que a classe sum_two_values, não está no padrão CamelCase.

Validação com o flake8 - Crédito: Divulgação
Validação com o flake8

Conclusão


Instalando estas 3 ferramentas, você consegue validar o seu código fonte no PEP8 de forma fácil e deixar ele mais "bonito" para manutenções futuras. Além de conseguir utilizar a PEP8 em integrações continuas.

Compartilhe
Dados do artigo
Publicado em 17/03/2021 18:16
Fonte: Autor
Autor: Marlon Tiedt
Categorais: Programação Python