Vous pouvez utiliser autopep8! Tandis que vous vous faire une tasse de café cet outil heureusement supprime tous ces satanés PEP8 violations qui ne changent pas le sens du code.
Installer via pip:
pip install autopep8
L'appliquer à un fichier spécifique:
autopep8 py_file --in-place
ou à votre projet (de manière récursive), l'option verbose vous donne de la rétroaction de la façon dont il va:
autopep8 project_dir --recursive --in-place --pep8-passes 2000 --verbose
Remarque: Parfois, le défaut de 100 passes n'est pas assez, je l'ai mis à 2000, il est raisonnablement élevé et va attraper tous les, mais le plus gênant fichiers (il s'arrête en passant une fois qu'il ne trouve pas résoluble pep8 infractions)...
À ce stade, je suggère de nouveaux essais et de faire un commit!
Si vous voulez "plein" PEP8 de la conformité: une tactique que j'ai utilisé est de courir autopep8 comme ci-dessus, puis lancez PEP8, qui imprime le reste des violations (fichier, le numéro de ligne, et de quoi?):
pep8 project_dir --ignore=E501
et de modifier manuellement ces individuellement (par exemple, E712s - comparaison avec l'opérateur booléen).
Remarque: autopep8 offre une --aggressive
argument (à impitoyablement "fixer" ces sens-évolution des infractions), mais méfiez-vous si vous ne l'utilisez agressif, vous pourriez avoir à débugger... (par exemple dans numpy/pandas True == np.bool_(True)
mais pas True is np.bool_(True)
!)
Vous pouvez vérifier le nombre de violations de chaque type (avant et après):
pep8 --quiet --statistics .
Note: je considère E501s (trop long de ligne) sont un cas spécial, car il y aura probablement beaucoup de ces dans votre code et parfois ceux-ci ne sont pas corrigées par autopep8.
Comme exemple, j'ai appliqué cette technique pour les pandas base de code.