Pylama - audyt kodu¶
Pylama jest narzędzie do audytu kodu dla pythona. Moduł ten integruje i wykorzystuje kilka zewnętrznych modułów:
- pycodestyle (sprawdzanie poprawności kodu pod kątem PEP8)
- pydocstyle (sprawdzenie poprawności docstring którego opis znajduje się w PEP257)
- pyflakes (program, który sprawdza pliki źródłowe Pythona pod kątem błędów)
- mccabe (mikro-narzędzie do sprawdzania złożoności cyklomatycznej kodu)
- pylint (narzędzie do weryfikacji kodu)
- radon (narzędzie do obliczania różnych metryk kodu)
Instalacja¶
$ pip install pylama
Ustawienia¶
Ustawienia tego modułu można dokonać w kilku plikach:
- pylama.ini
- setup.cfg
- tox.ini
- pytest.ini
Istnieje kilka konfiguracji. Pierwszą z nich jest sekcja „pylama” konfigurująca globalne opcje.
[pylama]
format = pylint
skip = */.tox/*,*/.env/*
linters = pylint,mccabe
ignore = F0401,C0111,E731
Można również ustawić opcje specjalnego sprawdzania kodu dla poszczególnych konfiguracjami narzędzi.
[pylama:pyflakes]
builtins = _
[pylama:pycodestyle]
max_line_length = 100
[pylama:pylint]
max_line_length = 100
disable = R
Ostanią możliwością jest ustawienie opcji dla pliku (lub grupy plików) w sekcjach. Opcje te mają wyższy priorytet niż sekcja „pylama”.
[pylama:*/pylama/main.py]
ignore = C901,R0914,W0212
select = R
[pylama:*/tests.py]
ignore = C0110
[pylama:*/setup.py]
skip = 1
Wykorzystanie¶
Pylama posiada wsparcie dla pytest. Pakiet automatycznie rejestruje się jako dodatek
do pytest podczas instalacji.
$ pytest --pylama ...
Więcej szczegółów konfiguracyjnych można znaleźć na stronie https://pylama.readthedocs.io/en/latest/
Złożoność cyklomatyczna McCabe’a¶
Złożoność cyklomatyczna (CC), mimo swojej długiej historii – została zdefiniowana w 1976 roku z myślą o programowaniu strukturalnym – jest nadal podstawową miarą złożoności dowolnego fragmentu kodu.
| wartość CC | Interpretacja |
|---|---|
| 1 - 10 | prosta metoda |
| 11 - 20 | metoda złożona |
| 21 - 50 | metoda bardzo złożona |
| > 50 | testowanie niemal niemożliwe |
Możliwości modułu Radom¶
- obliczenie złożoność cyklomatycznej
- całkowita liczba linii kodu (LOC)
- liczba logicznych linii kodu (LLOC)
- liczba linii źródłowych kodu (SLOC)
- liczba linii komentarza
- liczba linii reprezentujących wieloliniowe ciągi
- liczba pustych linii
- złożoność Halsteada (trudność, poziom programu, wysiłek, czas, szacunkowa liczba błędów itd.)