Рубрики
Без рубрики

5 потрясающие инструменты для качества кода Python

Альтернативное название: разработчик добавляет пять строк к ее файлу .travis.yml. Вы не поверите, что произойдет … Теги с Python, Codequality.

Альтернативное название: разработчик добавляет пять линий к ней .travis.yml.yml.yml файл. Вы не поверите, что произойдет дальше!

Качество кода имеет важное значение для обеспечения крупных проектов здоровых и прогрессирования, но трудно поддерживать постоянное качество вручную. Тем не менее, есть куча инструментов для кода Python, который сделает это намного проще.

Как и некоторые другие темы в разработке программного обеспечения, какие инструменты для использования сводится к предпочтению. Вы используете инструмент не в этом списке? Не стесняйтесь, дайте мне знать, что я скучаю! Далее следует мои личные предпочтения в инструментах по состоянию на 2019 год.

1. Pтойцы – тестирование необходимых единиц

Python имеет встроенный модуль тестирования инструментария в UnitTest Модуль, но это не всегда правильное подходит для каждого проекта. Я предпочитаю использовать Pteest По возможности, потому что опыт настолько прост.

Почему это хорошо

Когда проще писать тесты подразделения, вы напишите их больше. Pytest делает это Бриз создавать новые тесты. Просто добавьте новый файл Python, который начинается с Тест Напишите несколько функций, и вы уже сделали.

Существует огромное количество плагинов для Pтойца, которые можно настроить через Pytest.ini файл. Также легко и безболезненно написать свои собственные плагины! И, конечно, pteest “просто работает” с классовыми тестами из UnitTest , тоже.

Как это использовать

Скажем, вы пишете тест, чтобы увидеть, как работает сложение, и в этой альтернативной вселенной он также не беспокоил вас, это упражнение казалось так настроено. Вы можете написать файл Pteest, как это в тесты каталог:

"""An Example Pytest Test"""

import time
import pytest

def test_plus_one():
    """Test some addition."""
    x = 8 + 1
    assert x == 9

@pytest.mark.integration
def slow_test():
    """A really slow integration test."""
    time.sleep(5)
    assert 1 == 1

Вы также написали бы Pytest.ini Файл Чтобы зарегистрировать «медленный» маркер, в противном случае вы получите неприятное предупреждение:

[pytest]
markers =
    integration: Integration test.

Вот и все. Это все, что нужно для создания новых испытаний для питоидов. Вы можете запустить их, устанавливая Pteest из Pypi и запустив pteest команда.

pip install pytest
pytest

Это так просто. 🎉

2. Пилинт – проверка стиля и обнаружение ошибок

Пилинт это интеллектуальный Инструмент анализа кода, который понимает ваш код Python. Он ловит общие ошибки, такие как имена переменных с ошибками с ошибками, чтобы скрыться, такие как не возвращающиеся ветви.

Почему это хорошо

В отличие от многих других инструментов для льминального кода Python, Pylint может обнаружить некоторые логические ошибки или код, который приведет к исключениям. Это также обеспечивает много лучших практик, таких как сохранение попробуй ... кроме Блоки сосредоточены на нескольких специфический Классы исключения, и избегая плохих аргументов по умолчанию, как пустые списки или словари.

Пилинт непревзойденция в строгоде – у него есть Лот проверки всего от лишних предупреждений до серьезных ошибок. Нижняя сторона использования пилинта иногда проверка просто неверна; Вы захотите сохранить свой .pylintrc Файл закрывается, когда вы знаете, что вы правы.

Как это использовать

Как и большинство инструментов Python, вы можете скачать Pylint из pypi, используя Пип :

pip install pylint
# Lint your project with the module (folder) name
pylint my_project

Вы можете также создать .pylintrc Файл для вашего проекта. Этот файл должен быть проверен в контроль источника. Пилинт может генерировать по умолчанию .pylintrc Файл для вас тоже:

pylint --generate-rcfile > .pylintrc

Есть также плагины для интеграции Pylint с Pтойцами, если вы не хотите использовать Task Runner или Builder, как GNU сделать Отказ

3. Черный – форматирование кода для Python

Зачем тратить энергию, украсить вашим кодом, когда вы можете передать работу на компьютер? Черный Является ли код для Python, который быстрый и 100% статический Он не импортирует код для его отформатирования.

Почему это хорошо

Лично, пока я люблю чистый и красивый код Python, это утомительный Чтобы отформатировать код вручную. Это намного проще просто бросить линии в исходный файл, не беспокоясь об обертывании, отступах или длинных функциональных сигнатурах.

Черный забирает всю эту ответственность от программиста, а форматирование самого кода. Это быстро и эффективно с по умолчанию, которые уменьшают «разные» размеры. У меня нет жалоб на черный – я люблю это.

Как это использовать

Просто устанавливайте черные из Pypi и отформатируйте свои файлы. Вы приятно идти! 🚀

pip install black
# Format everything in my_project/
black my_project

Для CI/CD трубопроводов вы можете проверить, что весь код отформатирован с черным. Вот что вариант чека для:

black my_project --check

--Кречьясь не пройдет тесты, если код уже не отформатирован.

4. Покрытие – легкое покрытие кода для Python

Если вы собираетесь на беду пишущих модульных тестов, вы также можете проверить, пропустите ли вы место. Охват Это простой способ проверить покрытие кода, используя практически любой существующий инструмент.

Почему это хорошо

Тестовое покрытие, в то время как не серебряная пуля, является отличным способом поддержания базы качества кода. Становится легко посмотреть, какие самые слабые тестовые зоны в проекте – просто проверьте отчеты!

Когда вы пишете новые функции, отчет о покрытии бездействия может помочь подтолкнуть вас в правильном направлении. Я обнаружил, что целевой номер много помогает с моей мотивацией для тестирования.

Как это использовать

Как и все остальное в этом списке, покрытие установлено из Pypy, используя Пип :

pip install coverage

Чтобы измерить покрытие вашего исходного кода, пройдите в каталог на Продолжительность покрытия :

# With Pytest
coverage run --source my_project pytest
# View the reports!
coverage report

Там тоже отличный плагин для Pтойцы, которые будут работать Охват рядом с питоидом. Это здорово, потому что вы можете увидеть номера покрытия каждый тест. 😎

5. Mypy – тип проверки на Python

Это относительно новое дополнение к моему списку, но до сих пор я люблю Marpy для TypeChecking Python. Иногда есть «gotchyas», если ваш код (AB) использует динамические особенности Python, но по большей части она становится все правильно.

Почему это хорошо

Быть хорошим тестовым покрытием подразделения может предотвратить много Типерроры , но Mypy может увеличить хороший тестовый набор, проверяя, как вы используете свои типы. Тип аннотации в Python также служат формой документации, демонстрируя, что точно Каждая функция и класс ожидает.

Единственный недостаток к MAPY – в основном тот факт, что Python – это динамический язык: Mypy Types, которые должны быть определены во внешних модулях, если вы хотите проверить, как вы также используете свой код, плюс он не обрабатывает такие вещи, как создание динамического класса.

Как это использовать

Mypy также легко использовать. Вы должны создать mypy.ini Файл, плюс установить его из pypi.

pip install mypy

Запустите mypy против вашего каталога исходного кода, используя Marpy команда.

mypy my_project

Если вы ничего не видите (и код выхода равен нулю 😉), поздравляю – это работает просто хорошо, и ваш код передан!

Упаковка

Качество кода в крупных проектах может быть серьезной болью, но во многих областях наши инструменты могут помочь. Снимите несколько из этих инструментов в вас CI/CD-трубопровод, легко начать! Отличный трубопровод CI/CD может сэкономить много (много) головной боли по дороге.

Psst: Я создал CookieCutter Это показывает пример того, как я интегрирую все это в мои проекты. Если вы заинтересованы, проверьте это!

Увидимся! Ваше здоровье.

Оригинал: “https://dev.to/madelyneriksen/5-awesome-tools-for-python-code-quality-2pc”