Conversation
Contributor
Author
|
src -- это путь к файлам или папкам, которые Black должен проверить. src: "." и так по умолчанию, так что можно не писать |
petrCher
approved these changes
Jul 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Изменения
Разобрался с новой версией форматирования black:
В начале 2026 произошел переход со стиля Black 2023 на новый стабильный стиль (26...). Создатели этого не делали три года, так что разницы в форматировании накопилось.
Основная причина: Новый Black не ломается, а запускается в режиме: black --check --diff и завершает работу с кодом 1, потому что часть файлов проекта была отформатирована по правилам Black 23.11.0, а Black 24–26 использует уже другой стабильный стиль. Код 1 здесь означает «файлы необходимо переформатировать», а не ошибку установки или несовместимость с Python.
В проекте есть две независимые версии:
uses: psf/black@23.11.0 (YAML) -- это версия GitHub Action.
А в requirements.dev.txt находится: black==23.11.0 - это версия самого Python-пакета Black.
При использовании: uses: psf/black@stable action по умолчанию устанавливает последнюю версию Black из PyPI. Версия action и версия установленного форматтера не обязаны совпадать.
Вообще, согласно официальному источнику:
Black гарантирует неизменность стабильного форматирования в рамках одного календарного года. В первой версии нового года разработчики могут переводить новые правила из preview-режима в stable. Поэтому большой переход с 23.11.0 на 26.x включает сразу изменения стиля 2024, 2025 и 2026 годов
То есть код всего лишь нужно один раз переформатировать новым Black и закоммитить изменения. Я собственно это и сделал.
Вот инструкция, как поступать со всеми репозиториями:
Локально развернуть проект, создать новую ветку и подключиться к ней, далее:
python -m pip install --upgrade "black~=26.0" isort
python -m isort .
python -m black --check --diff .
python -m black .
git diff
После проверки изменений:
git add .
git commit -m "Reformat code with Black 26"
Также в requirements я заменил:
black~=26.0
А в checks.yml:
with:
version: "~=26.0"
options: "--check --diff"
src: "."
Официальная документация Black рекомендует использовать psf/black@stable, а версию самого форматтера задавать отдельно через параметр version.
Также после форматирования и новой версии black возникла несогласованность правил isort и нового Black.
Я удалил из из pyproject.toml:
multi_line_output = 3
lines_after_imports = 2
include_trailing_comma = true
Оставив:
[tool.isort]
line_length = 120
profile = "black"
так как они уже входят в профиль profile = "black".
В новой версии Black после импортов идет 1 пустая строка.
Теперь конфликта нет и команды:
python -m isort --check-only .
python -m black --check .
не выдают ошибок с linting.
Closes #252