Ви можете використовувати autopep8 ! Поки ви робите собі чашку кави, цей інструмент із задоволенням усуває всі ті прискіпливі порушення PEP8, які не змінюють значення коду.
Встановіть його через pip:
pip install autopep8
Застосуйте це до певного файлу:
autopep8 py_file --in-place
або до вашого проекту (рекурсивно), багатослівний варіант дає вам відгуки про те, як це відбувається :
autopep8 project_dir --recursive --in-place --pep8-passes 2000 --verbose
Примітка: Іноді за замовчуванням 100 пропусків недостатньо, я встановив його на 2000, оскільки він досить високий, і він буде захоплювати всі файли, крім найскладніших (він перестає проходити, як тільки не знайде вирішуваного порушення pep8) ...
На даний момент я пропоную повторно протестувати і виконувати завдання!
Якщо ви хочете "повного" дотримання PEP8: одна з тактик, яку я використовував, - це запустити autopep8, як зазначено вище, а потім запустіть PEP8, який друкує інші порушення (файл, номер рядка та що):
pep8 project_dir --ignore=E501
і вручну змінювати їх окремо (наприклад, E712s - порівняння з булевими).
Примітка: autopep8 пропонує --aggressive
аргумент (щоб нещадно "виправити" ці порушення, що змінюють значення), але будьте обережні, якщо ви використовуєте агресивні, можливо, доведеться налагоджувати ... (наприклад, у numpy / pandas, True == np.bool_(True)
але ні True is np.bool_(True)
!)
Ви можете перевірити, скільки порушень кожного типу (до і після):
pep8 --quiet --statistics .
Примітка. Я вважаю, що E501 (рядок занадто довгий) є окремим випадком, оскільки їх, мабуть, буде багато у вашому коді, а іноді вони не виправляються автопепі8.
Як приклад, я застосував цю методику до бази кодів панди .