Python: черный не переносит длинные строки

Я использую black==20.8b1.

У меня длинная строка вроде:

return f"{self.name}, a {adjective.to_name()} {kin_string}{self._type.to_name()} who works for the {target.get_relationship_target_string()}."

Я бегу:

$ black -l 80 . -t py38
All done! ✨  ✨
2 files left unchanged.

Почему строка не оборачивается? я думал такblack теперь поддерживает упаковку строк (на основе проблем в github).

3 ответа

В настоящее время мы должны добавить --experimental-string-processingтег к нему. Думаю, в будущих версиях это будет по умолчанию.

black -l 80 --experimental-string-processing file.py

Начиная с 22.1.0, вы должны запускать Black с --preview.

В настоящее время Black не оборачивает длинные строки или длинные комментарии. Вы можете увидеть открытую проблему в их проекте GitHub:

В настоящее время черный не переносит длинные строковые литералы и не объединяет строковые литералы, которые оказались в одной строке. [...] Это потребует изменения AST, что не на 100% безопасно и имеет кучу крайних случаев, с которыми нужно иметь дело.

Другие вопросы по тегам