Показаны сообщения с ярлыком Flake8. Показать все сообщения
Показаны сообщения с ярлыком Flake8. Показать все сообщения

четверг, 26 июня 2025 г.

Black, isort, flake8, mypy, pyright, giga, gitlab,ci

Black, isort, flake8, mypy, pyright, giga, gitlab,ci

Процесс работы GitLab CI

Шаг 1: Отправка коммита

Когда ты отправляешь новый коммит в GitLab, GitLab CI автоматически запускает все этапы, описанные в файле .gitlab-ci.yml.

Шаг 2: Начало работы CI

GitLab CI считывает конфигурацию из .gitlab-ci.yml и начинает выполнение заданий последовательно по стадиям (stages).

Что делает GitLab CI:

Stage: before_script

  • Сначала выполняются общие предварительные операции:
    • Устанавливается Poetry.
    • Деактивируется создание виртуальных сред (так как мы работаем в контейнере).
    • Загружаются зависимости проекта через poetry install --no-root.

Stage: format

  • Этот этап отвечает за форматирование и очистку кода:
    • Black применяет форматирование кода.
    • Isort очищает и упорядочивает импорты.

Stage: type-check

  • Здесь осуществляется проверка аннотаций типов:
    • Mypy проверяет корректность аннотаций и сигнализирует о проблемах.
    • Pyright также осуществляет проверку аннотаций, работая параллельно с Mypy.

Stage: lint

  • Завершается процессом линта, проверяющим стиль и качество кода:
    • Flake8 ищет стилистические ошибки и выдает предупреждения.

Какие результаты можно ожидать:

  1. Лог выполнения:
    • Вся активность CI записывается в журнал.
    • Ты можешь посмотреть отчёт о результатах в панели CI/CD на странице проекта в GitLab.
  2. Уведомления об успехе или неудаче:
    • Если все этапы выполнены успешно, ты увидишь зелёный значок успеха возле последнего коммита.
    • Если какая-то проверка завершилась неудачей, напротив соответствующего этапа появится красный индикатор.
  3. Детализация ошибок:
    • Щёлкнув по этапу, ты можешь изучить детализированный лог ошибок или уведомлений,
    • полученных от каждой утилиты (например, Flake8, Mypy, Pyright).

Просмотр отчётов

После выполнения всех проверок CI на GitLab ты можешь увидеть результаты следующим образом:

  1. Зайди в страницу своего проекта в GitLab.
  2. Перейди в раздел CI/CD -> Pipeline.
  3. Среди последних Pipeline'ов найди последний коммит.
  4. Наведи мышью на каждую стадию и щёлкни по ссылке для просмотра журнала.

В журнале ты увидишь точные уведомления о любых нарушениях, возникающих при проверке,

будь то неправильное форматирование,

нарушение стандартов PEP8 или проблемы с аннотациями типов.

Пример отчёта:

Предположим, ты отправил код с неправильными отступами. Тогда в логе ты увидишь что-то подобное:

src/annotation_ci_proj/basic_any.py:4:1: E302 expected 2 blank lines, found 1

Или, если Mypy нашел проблему с типизацией:

src/annotation_ci_proj/some_module.py:10: error: Argument 1 to "some_function" has incompatible type "float"; expected "int"

Заключение:

Процесс GitLab CI выстроен таким образом,

чтобы обеспечивать высокое качество кода и своевременно реагировать на любые отклонения от стандартов и требований.

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

понедельник, 2 июня 2025 г.

Flake8, Giga, Python. Code Format, Tools

Flake8, Giga, Python. Code Format, Tools

https://giga.chat/link/gcsObBTGeV

Flake8 — это популярный инструмент для статического анализа и проверки стиля кода на языке Python.

Основное его применение — выявление ошибок, несоответствий стилю кода и повышение общего качества программного обеспечения.

Почему выбирают Flake8?

  1. Простота использования:
  2. Достаточно вызвать одну команду, и Flake8 проверит ваш код на предмет множества распространенных ошибок и нарушений стиля.
  3. Следование PEP 8:
  4. Flake8 помогает соблюдать рекомендации по стилю, изложенные в документе PEP 8,
  5. что способствует повышению читаемости и последовательности кода.
  6. Комбинация инструментов:
  7. Flake8 объединяет несколько полезных инструментов:
    • pycodestyle:
    • проверяет соответствие стилю PEP 8.
    • pyflakes:
    • ищет ошибки в коде, такие как неопознанные переменные, дублирующиеся выражения и неиспользуемые импортированные модули.
    • mccabe:
    • оценивает цикломатическую сложность функций.
  8. Настраиваемость:
  9. Flake8 позволяет легко изменять уровень строжайшей проверки и отключать определенные предупреждения.
  10. Широкая поддержка:
  11. Имеет большое сообщество и богатую коллекцию плагинов, расширяющих его возможности
  12. (например, plugin для анализа документации, проверки безопасности и др.).

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

1. Установка:

pip install flake8

2. Базовая проверка:

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

flake8 my_project/

3. Игнорирование правил:

Иногда встречаются ситуации, когда вы хотите обойти конкретное правило.

Для этого можно добавить аннотацию # noqa в строке с нарушением:

long_variable_name = "this_is_a_very_long_string"  # noqa: E501

Также можно проигнорировать целые классы ошибок через конфигурационный файл:

[flake8]
ignore = E501,W503
max-line-length = 120

4. Расширенная настройка:

Flake8 допускает тонкую настройку через конфигурационные файлы (setup.cfg, tox.ini, .flake8).

Например, вы можете изменить максимальную длину строки, включить или выключить определенные группы ошибок и т.д.:

[flake8]
select = E,F,W,C,N,B
extend-ignore = E203

Примеры сообщений от Flake8:

  • E*: Нарушение правил стиля (например, лишние пробелы, неправильные отступы).
  • W*: Лёгкие предупреждения (например, смешивание табуляции и пробелов).
  • F*: Логические ошибки (например, использование переменной до объявления).
  • C*: Высокая цикломатическая сложность.

Заключение:

Flake8 — мощный и гибкий инструмент для проверки Python-кода, который позволит вам улучшить качество ваших проектов,

уменьшить количество ошибок и сохранить последовательность стиля.

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


Flake8, Giga, Python. Code Format, Tools

Flake8, Giga, Python. Code Format, Tools

https://giga.chat/link/gcsObBTGeV

Flake8 — это популярная утилита для проверки качества кода на языке Python.

Ее основное предназначение — находить нарушения стилей и распространенные ошибки в коде,

а также помогать соблюдать соглашение по стилю написания кода (PEP 8).

Какие задачи решает Flake8?

  • Проверка стиля кода:
  • Следование руководствам по стилю (PEP 8) и предупреждение отклонений от лучших практик.
  • Статический анализ:
  • Нахождение распространенных ошибок и потенциальных проблем
  • (например, неиспользуемых переменных, отсутствующих отступов и т.д.).
  • Объединение нескольких инструментов:
  • Flake8 объединяет в себе три инструмента:
    • pycodestyle: Проверяет соответствие стилю кода (PEP 8).
    • pyflakes: Проводит статический анализ и ищет проблемы в коде.
    • mccabe: Оценивает сложность функций (цикломатическая сложность).

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

  1. Установка:
pip install flake8
Базовая проверка:Просто запустите команду в терминале, передав ей путь к вашему проекту или отдельному файлу:
flake8 my_project/
Конфигурация:Flake8 позволяет настраивать правила проверки через конфигурационный файл setup.cfg или tox.ini. 
Например, чтобы отключить правило проверки длины строки:
[flake8]
max-line-length = 120
ignore = W503,E203
Игнорирование определенных сообщений:
Иногда бывают случаи, когда определенное правило нарушает удобство восприятия или реализацию конкретной части кода. 
Тогда вы можете подавлять отдельные предупреждения в коде:
# noqa: E501
long_variable_name = (
    "this_is_a_very_long_string_that_will_trigger_an_error_in_flake8_but_we_dont_care_here"
)

Типичные типы ошибок, которые находит Flake8:

  • E* — Нарушения соглашений по стилю (пробелы, длина строки, табуляция и т.д.).
  • W* — Потенциальные проблемы (например, отсутствие пробелов вокруг операторов).
  • F* — Сообщения от pyflakes (неиспользованные переменные, неопределённые имена и т.д.).
  • C* — Цикломатическая сложность (сложность функций оценивается по числу ветвлений).

Полезные плагины для Flake8:

  • flake8-docstrings: Проверяет правильность оформления docstring.
  • flake8-bugbear: Ищет антипаттерны и нерекомендуемый код.
  • flake8-bandit: Безопасностный аудит кода.
  • flake8-isort: Проверяет порядок импорта.

Почему стоит использовать Flake8?

  • Помогает соблюдать стандарты стиля кода, повышая читаемость и поддержку.
  • Предупреждает возможные ошибки и плохие паттерны проектирования.
  • Легкость настройки и интеграции в рабочие процессы.
  • Широкий выбор плагинов для расширения функциональности.

Заключение:

Flake8 — полезный инструмент для тех,

кто хочет следить за качеством своего кода и следовать лучшим практикам Python-разработки.

Он доступен,

легок в использовании и прекрасно интегрируется в повседневные процедуры тестирования и сборки проектов.

воскресенье, 1 июня 2025 г.

Flake8, Giga

Flake8, Giga

https://giga.chat/link/gcsJhXtnzn Python, Project Structure

Flake8 — это универсальный инструмент для анализа и оценки качества Python-кода.

Flake8 объединяет в себе три основных компонента:

  1. pycodestyle (ранее известный как pep8): проверка соответствия стилю кода рекомендациям PEP 8.
  2. pyflakes: выявление распространенных ошибок и недостатков в коде, таких как неиспользованные переменные,
  3. циклы без тела итерации и неоптимальные конструкции.
  4. mccabe: вычисляет сложность функций, основанную на метрике цикломатической сложности Маккейба.

Цель Flake8 — упростить обнаружение нарушений стандартов, облегчить чтение и сопровождение кода,

минимизировать ошибки и способствовать повышению общего уровня качества программного обеспечения.

Возможности Flake8:

  • Стилевые рекомендации: соблюдение общепринятых рекомендаций по оформлению кода (PEP 8),
  • включая длину строк, отступы, имена переменных и комментарии.
  • Выявление логических ошибок: предупреждение о таких ошибках, как использование переменных до объявления,
  • неопределенные символы, неиспользуемые аргументы функций.
  • Анализ сложности: оценка сложности функций и методов с целью предотвращения сложных конструкций,
  • затрудняющих восприятие и обслуживание.
  • Расширяемость: возможность подключения плагинов для дополнительного анализа и отчетности.

Установка и использование Flake8:

Для начала работы с Flake8 достаточно установить его через pip:

pip install flake8

Затем можно применить команду к своему проекту:

flake8 my_project_directory

Flake8 выдаёт отчёт обо всех найденных нарушениях и предупреждениях,

сопровождаемый указанием номеров строк и описанием нарушения.

Настройки Flake8:

Настройки Flake8 хранятся в файле .flake8 или определяются аргументами командной строки.

К примеру, можно отключить некоторые категории сообщений или ограничить максимальную длину строки:

# .flake8
max-line-length = 100
ignore = W503,E203

Полезные советы по работе с Flake8:

  • Включите регулярный запуск Flake8 в вашу среду разработки (IDE или редактор).
  • Добавляйте проверку Flake8 в конвейер непрерывной интеграции (CI), чтобы гарантировать постоянное следование стандартам.
  • Периодически обновляйте Flake8 и подключаемые плагины, чтобы пользоваться последними изменениями и улучшениями.

Итоги:

Flake8 — важный компонент в арсенале каждого Python-разработчика,

направленный на повышение качества и удобства сопровождения кода.

С его помощью вы сможете сократить число мелких ошибок, улучшив общий стиль и читаемость ваших программ.