Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferença entre MyPy e Flake8

Para mim não ficou bem claro as vantagens e desvantagem do MyPy e do Flake8, ou seja, as diferenças entre eles.

Onde posso buscar um comparativo?

1 resposta
solução!

Oi Leonardo, tudo bem com você?

Essas duas ferramentas possuem objetivos distintos, enquanto o Mypy irá verificar os tipos, o Flake8 verifica o estilo do código com base na PEP8(Guia de Estilo para Código Python).

Como exemplo, imagine o seguinte código, intitulado como main.py:

image

No código acima, definimos que a função saudacao espera receber, um str e quando chamamos a função estamos passando um argumento do tipo str. Tudo bem até aqui?

Quando executarmos: mypy main.py ele nos retornará Success: no issues found in 1 source file, ou seja, aparentemente não há erro algum. Mas, e se passarmos um valor inteiro para função saudacao? Dessa forma:

print(saudacao(1))

Nesse caso, quando formos executar novamente mypy main.py ele nos retornará Argument 1 to "saudacao" has incompatible type "int"; expected "str" ou seja, há algo de errado, nossa função esperava receber como parâmetro um tipo str e passamos um argumento inteiro.

E é isso que o mypy faz, verifica se estamos fazendo o uso correto das tipagens. Sozinho o python sozinho não consegue verificar os tipos, por isso a utilização do mypy.

Já se executarmos o flake8 em nosso código através do comando flake8 main.py ele irá nos retornar:

main.py:4:1: E305 expected 2 blank lines after class or function definition, found 1
main.py:5:23: W292 no newline at end of file

E esses erros que ele nos mostra se refere ao estilo do nosso código. Ele diz que é necessário dois espaços em branco após o término da função e também, que precisamos colocar uma linha em branco no final do arquivo. Dessa forma:

image

Agora, quando executarmos novamente o flake8 ele não nos retornará erro algum.

Consegue notar a diferença entre o mypy e o flake8?

Recomendo a documentação dessas ferramentas:

Fico à disposição para qualquer dúvida. Abraços e bons estudos!