Pylint
Często spotykam osoby piszące w Pythonie które nie widzą lub też nie korzystają z dobrodziejstw jakie niesie ze sobą Pylint. W tym wpisie postaram się przybliżyć czym to dokładnie jest i jakie korzyści płyną z używania jego.
Co to takiego ?
Pylint to narzędzie służące do analizy kodu napisanego w Pythonie. Kod jest analizowany pod takimi względami jak:
- zgodność kodu z PEP
- błędy składniowe
- śmieci – niepotrzebne/nieużywane zmienne, moduły, etc.
Na samym końcu kod zostaje poddany ocenie w skali 1-10.
Instalacja
Instalacja jest bardzo prosta, wystarczy w konsoli wpisać:
$ easy_install pylint |
Lub jeśli ktoś używa gentoo, wystarczy wykonać:
$ emerge pylint |
W innym dystrybucjach robi się to podobnie, tylko zamiast emerge stosuje się odpowiedni do danej dystrybucji manager pakietów.
To wszystko, teraz w katalogu bin naszej dystrybucji, powinien znajdować się plik wykonywalny pylint. Dla sprawdzenia czy wszystko działa wystarczy wpisać:
$ /usr/bin/pylint /sciezka/do/pliku/py |
Oczywiście ścieżka może być inna, w zależności od posiadanej dystrybucji. Jako wynik powinien zostać zwrócony wynik analizę kodu.
Eclipse, PyDev i konfiguracja Pylint
Używanie Pylint bezpośrednio w konsoli jest zajęciem raczej dla masochistów. Dlatego osoby korzystające z wtyczki PyDev zadowoli fakt że istnieje możliwość podpięcia Pylint do IDE.
Co to daje ? Kod jest analizowany w czasie edycji, a wszystkie błędy/ostrzeżenia są sygnalizowane tak samo jak inne komunikaty pochodzące z debbugera.
Konfiguracja
Aby skonfigurować Pylint w PyDev należy przejść do edycji ustawień PyDev, a następnie wybrać sekcje Pylint.
Należy zaznaczyć opcję „Use pylint?”, oraz podać prawidłową ścieżkę do pylint (np. /usr/bin/pylint).
Na dole możemy wpisać dodatkowe parametry które zostaną przekazane do pylint.
<del>--disable-msg=C0111,W0312,W0232,R0903,C0103,W0613</del> --disable=C0111,W0312,W0232,R0903,C0103,W0613 |
Opcja „–disable-msg” „–disable” spowoduje ignorowanie komunikat o zadanym ID (Na liście błędów mamy podane ich ID). Więcej opcji możemy uzyskać wpisując w konsoli:
$ pylint --help |
Moja konfiguracja pylint wygląda tak
Problemy
Jeśli Pylint nie działa, należy upewnić się czy podana jest odpowiednia ścieżka do Pylint oraz do samego Pythona w pydev
Dodano 31.05.2011
Ten wpis się trochę zdezaktualizował, obecnie PyLint nie posiada już opcji –disable-msg, obecnie zaleca się używanie –disabe.
Programiści Django mogą być również zainteresowani możliwością generowania klas członkowskich w modelach Django:
–generated-members=objects
Preview: