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

Статический анализ оснастки: Как три модных слова мои новые лучшие друзья

На этой неделе в моих приключениях OSD600 мы узнаем о статическом анализе инструментов: три модных слова … Помечено с OpenSource, Git, Github, Python.

На этой неделе в моих приключениях OSD600 мы изучаем статическую инструмент Anaylsis: три модных слова, которые в основном приравниваются к смарт-малышу в классе ( Кто вы тайно ненавидят ) Это доказательство читает вашу плохо написанную бумагу и указывает больше ошибки, чем вы хотели бы.

Мы на самом деле не говорим об этом ребенке. Это действительно имеет значение, что Marvin теперь работает как инженер-программист для Faang? Нет, потому что Марвин обрабатывает шесть цифр, чтобы написать код качества, водить Тесла, поставить вниз на дом, Но Вы Доберитесь до работы с промежуточным программным обеспечением и качественным воскресным лекциям.

Инструменты статического анализа – это куски программного обеспечения, которые используются в статическом анализе кода, процесс определения того, что код вы о том, чтобы толчок в мусорное ведро – корка для пиццы, или гнилая корочка пиццы. 🍕🗑️🔥.

Для лаборатории этой недели мне пришлось реализовать два инструмента, мои когда-либо развивающиеся Проект проверки ссылок : код код называется Черный и код литерата под названием Flake8 Отказ

Черные форматы ваш код таким образом, что делает его более читаемым и легче понять. Это превращает ваш спагетти в Пенне. Ваш беспорядок в порядке. Это великолепно.

Flake8 просматривает ваш код и сканирует его для подозрительных строк кода. Эти линии могут быть стилистическими ошибками, которые могут в конечном итоге, как ошибка по дороге.

По сути, вы можете думать о черном в качестве проверки орфографии и Flake8 в качестве грамматической проверки.

Как только я выбрал свои инструменты, пришло время RTFM и установить их в моем проекте.

Примечание. Я использую Windows и, таким образом, эти программы и настройки файлов будут варьироваться в зависимости от вашей ОС.

Первый шаг должен был установить и настроить черный: PIP Установить Git + Git://github.com/psf/black

Так как мой проект использует setup.py Файл, я также добавил черный на install_requires часть так, чтобы любой, кто хочет настроить проект, просто типы Установка PIP.

Следующий шаг тестирует: Черный образец/HDJ_UTIL.PY Какой удивительный Просто работал , общая фаза, которую я беспокоюсь о себе, при работе с Python. Пока вещи не сделают. Тогда я боржущаяся невестки. Он автоматически прететт – если мой HDJ_UTIL.PY файл.

После этого я настроил Pycharm, чтобы запустить черный проект на каждом сохранении к любому файлу, на котором я сейчас работаю:

  1. Файл -> Настройки -> Инструменты -> Внешние инструменты Нажмите значок +, чтобы добавить новый внешний инструмент и добавить следующие значения:
Name: Black
Description: Black is the uncompromising Python code formatter.
Program: C:\Users\Chris\AppData\Local\Programs\Python\Python39\Scripts
Arguments: $FilePath$

Обратите внимание на Программа: Путь, очевидно, будет отличаться в зависимости от вашей машины. Просто найдите Black.exe Файл в вашей системе и укажите это к этому.

Отсюда вы можете пойти в Инструменты -> Внешние инструменты -> черный Чтобы запустить черный в текущем открытом файле, или вы можете настроить Pycharm, чтобы запустить черный на каждом файле. Это требует Посылки файлов плагин работать.

  1. Перейдите к настройкам или настройкам -> Инструменты -> Файловые наблюдения и нажмите +, чтобы добавить новый пользовательский наблюдатель:
Name: Black
File type: Python
Scope: Project Files
Program: C:\Users\Chris\AppData\Local\Programs\Python\Python39\Scripts\black.exe
Arguments: $FilePath$
Output paths to refresh: $FilePath$
Working directory: $ProjectFileDir$

Uncheck "Auto-save edited files to trigger the watcher" in Advanced Options
  1. Создать pyproject.toml Файл Чтобы настроить черный проект:
[tool.black]
line-length = 88
include = '\.pyi?$'
exclude = '''
/(
    \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist
)/
'''

Длина строки : Форматы строки в течение длины 88 символов до более красивой версии. Вы можете увидеть, что происходит в GIF выше. включить бегает черным только .py файлы (таким образом, исключая файлы, такие как .gitignore. .) Исключить Красивая самоуверенность: «Не беги черных на этих папках или файлах».

С черной настроек, давайте перейдем на наш следующий шаг и настроив Flake8: Python -m Pipp установить flake8 .

Опять же, мой проект использует setup.py Файл, так что я также добавил Flake8 на install_requires часть.

Следующий шаг тестирует: Flake8 образец ( Образец – это каталог, который содержит мой код ), который еще раз Просто работал … хотя может быть слишком хорошо … ворчать ворчать

Процесс, чтобы получить это, чтобы запустить сэкономить, получил немного Google-Fu, но мне удалось настроить его.

Мы должны просто добавить файловый наблюдатель, как указано выше:

  1. Перейдите к настройкам или настройкам -> Инструменты -> Файловые наблюдения и нажмите +, чтобы добавить новый пользовательский наблюдатель:
Name: Flake8
File type: Python
Scope: Current File
Program: C:\Users\Chris\AppData\Local\Programs\Python\Python39\Scripts\flake8.exe
Arguments: $FileDir$/$FileName$

Check "Auto-save edited files to trigger the watcher" in Advanced Options
Output filters: $FILE_PATH$:$LINE$:$COLUMN$: $MESSAGE$
  1. Перейти к настройкам или настройкам -> редактор -> проверки -> файловые наблюдатели -> проблемы с файлами наблюдателя, и измените серьезность к предупреждению.

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

Это либо замечательно, либо ужасно, в зависимости от вашей точки зрения, или однако многие бокалы вина у вас были в тот вечер, что для этого автора, соответственно, ужасно и многие.

  1. Создать .flake8 Файл для настройки Flake My Project8:
[flake8]
ignore=E501, W503
exclude =
    .idea,
    .git,
    __pycache__,
    assets,
    build,
    dist,
    docs

Ignore = E501, W503 : E501 просто игнорирует Линия слишком длинная Предупреждение, а W503 игнорирует Перерыв линии произошла перед бинарным оператором правило. Потому что я анал, но не что анальный. Исключить Опять же, довольно самочувствие: «Не бегайте Flake8 на этих папках или файлах».

Здорово! Мы все сделаны.

Между двумя инструментами ни один из них не находит ТОО много вопросов. Черные изменили все четыре файлов Python в моем проекте, который ожидал (притворяется, что это говорит изменился ):

… и Flake8 закричал о … Ну, много вещей. Но это нормально. Это были просто незначительные вещи, либо вещи, которые Я хотел бы починить все равно Отказ

В общем, у меня не было слишком много, чтобы исправить. Также довольно круто, что с помощью корпуса кода и Linter установлен глобально, я могу запустить любой из них на CLI, и просто укажите каталог или файл, чтобы запустить их. По-настоящему батареи включены.

слепки монитор Теперь пришло время заставить этих плохих мальчиков бежать на каждом совершать потому что страдания действительно строят характер. Или программное обеспечение.

Гитские крючки потрясающие. Они действительно есть. Представьте себе, что люди заставляют людей запускать скрипт, прежде чем они смогут сделать что-то в вашем проекте. Удивительный. Могу поспорить, что есть много забавных трюков, которые просто оскорбляют пользователей при совершении … Пишет вниз Отказ

Это было удивительно легко настроить GIT-крюк для запуска этих программ после совершения, он просто потребовал немного чтения. Мы собираемся использовать что-то под названием Pre-Commun Framework сделать это. Это также настроено с Ямл , что довольно круто. Это еще одна отметка языка, который я никогда не использовал:

  1. Установите предварительный коммит: PIP Установите предварительный коммит. `
  2. Добавлено Предварительный коммит к моему setup.py Отказ
  3. Создать .Pre-Compad-config.yaml С крючками, необходимыми в трубопроводе: `repos:
  4. РЕПО: https://github.com/ambv/black Rev: Стабильные крючки:

    • ID: Black Language_Version: Python3.9
  5. РЕПО: https://gitlab.com/pycqa/flake8 Rev: 3.8.4 крючки:

    • ID: Flake8 `
  6. Беги Предварительный коммит установить который устанавливает Git крючки в .git/каталог моего проекта.

Я в основном пришлось выкопать для правильных REPOS и версий для использования. Я думал, что мне придется конфигнуть это еще немного, потому что я использую новую версию Python Но на удивление мне не пришлось.

Аккуратный.

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

Я также к сожалению узнал о другом инструменте под названием Пилама ( Что это с сообществом Python и животных? ), который является оба Код Fixatter и Linter! Я должен будет иметь в виду мой следующий большой проект.

Я думаю, что мы делаем инструменты CI на следующей неделе! Это будет здорово, я не могу ждать.

Бороться не было слишком плохим, но все стоит того, чтобы это сладко, сладкое быстро вперед ребазе и слияние Отказ

Оригинал: “https://dev.to/chrispinkney/static-analysis-tooling-how-three-fancy-words-are-my-new-best-friends-4cgp”