Pylint - это статический анализатор кода для Python 2 или 3. Он проверяет наличие ошибок, обеспечивает соблюдение стандарта кодирования, может вносить предложения о том, как можно реорганизовать код.
Установка:
pip install pylint
Рекурсивная проверка файлов с кодом на python в директории:
pylint --recursive=y <directoryname>
Для внедрения в процесс CI/CD добавим в yaml-файле стадию тестирования перед сборкой:
pylint:
stage: test
image:
name: cytopia/pylint:2
entrypoint: [""]
script:
- python -m pip install Django
- pylint --recursive=y iwtm-back
При возникновении ошибок и предупреждений после проверки кода на соответствие стандарту неоходимо локально запускать автоформатирование. Утилита pyformat форматирует код на Python так, чтобы он соответствовал согласованному стилю PEP 8. Она удаляет неиспользуемый импорт, форматирует строки документа в соответствии с PEP 257, заставляет все строки использовать один и тот же тип кавычек, где это возможно.
Установка утилиты:
pip install --upgrade pyformat
Использование autopep8 может выглядеть так:
pyformat --in-place -r <directoryname>
Autopep8 умеет самостоятельно определять ошибки, а также исправлять их. Установка утилиты:
pip install --upgrade autopep8
Использование autopep8 может выглядеть так:
autopep8 --in-place -r --aggressive --aggressive <directoryname>
После выполнения данной команды, утилита рекурсивно пойдет по подпапкам и начнет в самих же файлах исправлять ошибки.
для автоматического форматирования кода в python можно использовать black
со стандартными аргументами. установка:
pip install black
в коде желательно оставлять комментарии и docstrings.
название ветки: [bug | feature]/[task number in Taiga]-[short description]
.
примеры: feature/36-cabinet2generator-queue
.
изменения применяются в master
из merge request'а.
https://docs.taiga.io/attach-commits-to-elements-via-commit-message.html
в commit message
желательно написать TG-REF, где REF
-- номер задачи в тайге. тогда коммит автоматически добавится в комментарий задачи.
ESLint — это утилита, которая может анализировать написанный код. Фактически, это статический анализатор кода, и он может находить синтаксические ошибки, баги или неточности форматирования.