Wpisy z kategorii: narzędzia

Jak sprawdzać zgodność kodu Pythona z PEP8

Znalazłem ostatnio bardzo fajne narzędzie do sprawdzania czy kod Pythona jest zgodny z zalecanym stylem pisania kodu w Pythonie(PEP8). Jest to skrypt uruchamiany z konsoli który sprawdza czy wskazany moduł jest zgodny z PEP8.

Przykład użycia:

$ pep8.py --filename=*.py --show-source --show-pep8 /sciezka/do/projektu/
parts/djangopl/sitemaps.py:14:5: E301 expected 1 blank line, found 0
def changefreq(self, obj):
^
Separate top-level function and class definitions with two blank lines.

Method definitions inside a class are separated by a single blank line.

Extra blank lines may be used (sparingly) to separate groups of related
functions.  Blank lines may be omitted between a bunch of related
one-liners (e.g. a set of dummy implementations).

Use blank lines in functions, sparingly, to indicate logical sections.
...

parametry:

  • filename - wzorzec jakie pliki mają być brane pod uwagę
  • show-source - przy każdym błędzie będzie wypisany kawałek kodu i wskazane w którym miejscu jest błąd
  • show-pep8 - do każdego błędu będzie podane wyjaśnienie z dokumentu PEP8

Wynik działania prezentuje się bardzo ładnie i można szybko wychwycić gdzie jest błąd i zobaczyć dlaczego tak nie powinno się pisać kodu w Pythonie.

Znalazłem też opis jak zintegrować sprawdzanie zgodności z PEP8 z testami wykorzystywanymi w systemie typu continuous integration:

http://www.ajaxline.com/continuous-integration-in-django-project

Przydatne linki związane z PEP8: