У Python есть отличный автоформаттер — black. Быстрый, простой и, главное, бескомпромиссный и почти не настраиваемый. Похож на gofmt у Go.
Но black предлагает использование двойных кавычек для строк, в то время как большинство питонистов привыкло к одинарным, т.е. "foo"
вместо 'foo'
. Этого оказалось достаточно для появления клона-близнеца — автоформаттера blue. Он использует black под капотом, поэтому отличия минимальны (см. документацию).
Официальный экстеншн Python в VS Code знает про black, но не знает про blue, документация тоже молчит. Но так как совместимость гарантируется, то достаточно в настройках указать blue как путь для форматтера black.
Итого:
poetry add --dev blue
. Если до этого уже был установлен black, то, скорее всего, придется его удалить poetry remove --dev black
т.к. может быть конфликт версий.
{
"python.formatting.provider": "black",
"python.formatting.blackPath": "blue",
}
Использование:
"editor.formatOnSave": true,
но это не всегда удобный вариантНастройка:
"python.formatting.blackArgs": ["--line-length", "100"],
— все там же, в json файлеpyproject.toml
:
[tool.blue]
line-length = 100