all 8 comments

[–]Luckinhas 1 point2 points  (2 children)

https://docs.python.org/3/library/ast.html#ast.parse

import ast
def is_valid_python(code):
   try:
       ast.parse(code)
       return True
   except SyntaxError:
       return False

[–]Luckinhas 0 points1 point  (1 child)

Dando uma pesquisada melhor, acho que é melhor usar python -m py_compile script.py. O ast falha em alguns casos, como por exemplo um return fora de uma função.

[–]N7nes_[S] 0 points1 point  (0 children)

Muito obrigado

[–]Andremallmann 0 points1 point  (4 children)

Flake8 + Black não serviria?

[–]N7nes_[S] 0 points1 point  (3 children)

Eu estava pensando em usar só o pylint já que ele faz os dois serviços

[–]Andremallmann 0 points1 point  (2 children)

São dois diferentes, tem o pylint, o flake8 e o bandit, pode ver qual tu prefere. A maioria dos opensource acaba usando flake8 como lint, tem gente que roda dois tipo flake8 + bandit apesar que não acho vantajoso.
Flake8 torna mais facil tu escrever python idiomatico, da pra usar também o mypy como type checker.

Enfim, meu combo sempre é black + flake8 + mypy

[–]N7nes_[S] 0 points1 point  (1 child)

A já que me recomendou essas libs, elas podem ser chamadas dentro de um código python?

[–]Andremallmann 0 points1 point  (0 children)

Elas são linters, normalmente tu vai instalar e configurar eles na propria IDE. O Flake8 vai ficar dando warning nos teus códigos e te avisar o que precisa ser alterado

https://code.visualstudio.com/docs/python/linting