Pylama — аудит python-кода
Процесс непрерывной интеграции программных продуктов всегда был очень важен для разработке. В моем случае я не ограничеваюсь только тестированием (юнит или интеграционным), но также провожу и интроспекцию кода на соответствие стандартам или например ограничение логической вложенности.
Во-втором случае код моих проектов автоматически прогоняется через ряд утилит: pyflakes, pep8, mccabe, pylint. Какое то время я использовал Flake8 сочетающую в себе все эти линтеры. Но потом его возможностей мне стало не хватать. Схожий функционал уже был мной разработан для python-mode, поэтому я вынес его в отдельный модуль. Так появился Pylama.
Pylama это утилита для проверки python-кода схожая с Flake8, но обладающая рядом улучшений.
Установка
$ pip install pylama
Использование
Рекурсивная проверка текущей диектории:
$ pylama
Игнорировать определенные типы (группы типов) ошибок:
$ pylama -i W,E501
Изменение набора линтеров:
$ pylama -l "pep8,mccabe"
Опции
$ pylama --help
usage: pylama [-h] [--ignore IGNORE] [--verbose] [--select SELECT]
[--linters LINTERS] [--complexity COMPLEXITY] [--skip SKIP]
[path]
Code audit tool for python.
positional arguments:
path Path on file or directory.
optional arguments:
-h, --help show this help message and exit
--ignore IGNORE, -i IGNORE
Ignore errors and warnings.
--verbose, -v Verbose mode.
--select SELECT, -s SELECT
Select errors and warnings.
--linters LINTERS, -l LINTERS
Select errors and warnings.
--complexity COMPLEXITY, -c COMPLEXITY
Set mccabe complexity.
--skip SKIP Skip files (Ex. messages.py)
Переключение настроек pylama из файла
В любом python-файле вы можете установить опции проверки для pylama. Они будут установлены только для данного файла.
.. Где-то в коде
# Игнорировать все Warnings кроме W301
# lint_ignore=W:lint_select=W301
Для выключения проверки текущего файла:
# lint=0
Разработка pylama ведется на Github: http://github.com/klen/pylama