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

четверг, 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 г.

Black, Giga, Python. Code Format, Tools

Black, Giga, Python. Code Format, Tools

https://giga.chat/link/gcsObBTGeV

Black — это популярный форматировщик кода для Python,

известный своей агрессивной нормализацией и стремлению убрать разногласия касательно стиля оформления.

Главное преимущество Black — он принимает минимальное участие со стороны разработчика:

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

Черты Black:

  1. Четкая философия:
  2. Black применяет единую стратегию форматирования, основанную на правилах, близких к PEP 8, но гораздо более строгих.
  3. Всё форматируется одинаково, вне зависимости от предпочтений автора.
  4. Агрессивное изменение стиля:
  5. Black меняет абсолютно всё:
  6. пробелы, отступы, перенос строк, скобки и многое другое. Нет никакой промежуточной зоны — либо принимаешь предлагаемый стиль,
  7. либо вообще не используешь Black.
  8. Быстродействие:
  9. Быстро обрабатывает даже большие проекты, обеспечивая минимальные задержки при выполнении.
  10. Оптимальная поддержка длинных строк:
  11. Вместо жёсткого ограничения в 80 символов Black предпочитает линию длиной около 88 символов,
  12. давая пространство для сложных выражений.
  13. Простота использования:
  14. Интерфейс предельно прост, никаких сложностей с настройками и управлением процессом.

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

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

pip install black

2. Применение к одному файлу:

black my_file.py

3. Применение ко всему проекту:

black .

4. Настройка исключения файлов:

Можно настроить исключение файлов или целых директорий через специальный файл .gitignore или файл конфигурации .pyproject.toml:

[tool.black]
exclude = r"/migrations|generated/"

5. Автозапуск при сохранении файла:

Многие IDE (Visual Studio Code, PyCharm) поддерживают автозагрузку Black при сохранении файла.

Просто добавьте соответствующий плагин и включите соответствующую опцию.

Правила Black:

Некоторые интересные моменты, касающиеся правил Black:

  • Код выравнивается строго вертикально.
  • Пробелы вокруг операторов ставятся равномерно.
  • Длина строки стремится к максимуму в 88 символов.
  • Комментарии переносятся вместе с соответствующими конструкциями.
  • Массивы и длинные конструкции принудительно переносятся.

Преимущества Black:

  • Однозначный стиль оформления устраняет споры о стиле.
  • Экономия времени на решение вопросов форматирования.
  • Последовательность и чистота кода на протяжении всей команды.

Альтернативы:

  • autopep8: Менее радикален, сохраняет больше оригинального стиля.
  • Yapf: Немного больше настроек, ближе к Google style guide.
  • isort: Только сортировка импортов, менее амбициозен, чем Black.

Заключение:

Black станет отличным помощником любому Python-разработчику,

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

Идеально подходит для командных проектов, где важны единообразие и ясность оформления.

Black, Autopep8, yapf, isort, Install, Tools

Black, Autopep8, yapf, isort, Install, Tools

# Установить black через conda-forge

conda install -c conda-forge black

# Установить autopep8 через conda-forge

conda install -c conda-forge autopep8

# Установить yapf через conda-forge

conda install -c conda-forge yapf

# Установить isort через conda-forge

conda install -c conda-forge isort

Black, Giga, Python. Code Format

Black, Giga, Python. Code Format 

https://giga.chat/link/gcsObBTGeV

1. Black

Black — один из наиболее известных автоформаттеров кода.

Его цель — сделать код красивым автоматически, без особых настроек от разработчика.

Он строго придерживается определённых правил стиля и делает работу программиста проще,

устраняя споры о стиле кода.

Для установки и использования:

pip install black

Использование:

black my_script.py

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

Black, Giga

Black, Giga

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

Black — это инструмент для автоматического форматирования Python-кода,

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

Основное отличие Black от других аналогичных инструментов состоит в том,

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

Принцип работы Black:

Black берёт исходный код и преобразует его согласно строгим правилам, сохраняя единую и ясную структуру:

  • Ограничение длины строки до 88 символов (можно изменить, но рекомендуется придерживаться дефолта).
  • Четкая и единообразная расстановка скобок, пробелов и отступов.
  • Прозрачная логика именования объектов и структур.
  • Единая стратегия вывода длинных выражений.

Причины популярности Black:

  1. Нет настроек:
  2. единственное решение для формата кода избавляет от споров в команде.
  3. Быстродействие:
  4. высокая производительность и способность быстро форматировать большие объемы кода.
  5. Совместимость:
  6. Black прекрасно сочетается с другими инструментами, такими как linters (Flake8, Ruff) и системами CI/CD.
  7. Универсальность:
  8. поддерживает разные версии Python и популярные редакторы кода (VSCode, PyCharm, Sublime Text и др.).

Применение Black:

Чтобы начать использовать Black, установите его через pip:

pip install black

Затем примените его к вашему проекту:

black my_project_directory

Black изменит все файлы в указанной директории, приведя их к заданному стилю.

Настройки Black:

По умолчанию Black строго следует своим внутренним правилам, однако вы можете слегка адаптировать

его поведение через конфигурационный файл (pyproject.toml):

[tool.black]
line-length = 100
target-version = ['py37']
exclude = 'migrations/'

Когда использовать Black:

Рекомендуется включить Black в свою ежедневную практику разработки, особенно в коллективных проектах.

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

Черты идеального форматтера:

  • Самодостаточность: решает проблему без вмешательства человека.
  • Повторяемость: каждый запуск Black даёт одинаковый результат.
  • Безопасность: преобразования сохраняют семантику кода.

Итоги:

Black — незаменимый помощник для Python-разработчиков,

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

Благодаря своей простоте и строгим правилам,

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