Flake8
Линтер для python. Ссылка на документацию
Using Flake8
flake8 path/to/code/to/check.py
# or
flake8 path/to/code/
If you only want to see the instances of a specific warning or error, you can select that error like so
flake8 --select E123,W503 path/to/code/
or ignore
flake8 --ignore E24,W504 path/to/code/
example для [github-action]:
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
В [python-standart-library] есть модуль tabnanni, реализующий проверку отступов