Правила о том, как сделать стайлгайд эффективным.

  1. Стайлгайд должен быть максимально полным и строгим. Иначе каждое ревью в большом проекте будет превращаться в обсуждение того, где нужно было поставить скобочку и как писать импорты. У этого даже название есть — bikeshedding.

  2. Стайлгайд должен быть автоматизированным и включен на CI. Это значительно ускорит ревью кода, вовсе исключив разговоры о стиле. А заодно новым разработчикам не придётся читать длинные тексты, линтер сам скажет, что не так.

  3. Стайлгайд должен быть логичным. Решения должны быть приняты не одним человеком. Желательно, чтобы это всё обуждали другие (комьюнити), а то, опять-таки, вместо работы будет bikeshedding в чатах.

Наиболее популярный и навороченный линтер для Python — flake8. Главное его преимущество — большое количество плагинов, список которых собран в awesome-flake8-extensions. Если там вдруг чего-то нет, просто сделайте PR. Казалось бы странным использовать кучу плагинов, написанных разными людьми, но это работает. Я использую почти все плагины из списка и не помню ни одного случая, когда два плагина имели бы разное мнение, как нужно писать одну и ту же строку.

wemake-python-styleguide — самый большой список правил для flake8. С многими из них я не согласен, и это то, что отличает его от всех других плагинов для flake8: авторы (большинство правил написаны Никитой Соболевым) стандартизовали вообще всё, что можно, и всем правилам вряд ли удастся соответствовать. Поэтому это единственный плагин, в котором я рекомендую отключить часть правил. Но использовать его определенно стоит, если получится :)