Может ли программа форматирования python black использовать табуляторы вместо пробелов?

Я хочу использовать средство переформатирования кода python black в своих хуках перед фиксацией, но в моей компании решили использовать табуляторы в коде python вместо пробелов. Итак, я попытался изменить конфигурацию черного, но я не видел никакой возможности использовать табуляторы, единственное, на что вы можете повлиять, - это длина строки.

Неужели черный так сильно привязан к стандарту PEP8, что никогда не допустит табуляторов?

2 ответа

Это невозможно. Python Black поддерживает только пробелы.

Вот билет на это: https://github.com/psf/black/issues/47 (он содержит разговор, почему Python Black не поддерживает вкладки).

Как они сказали, закрывая билет:

Нет, табуляторы для отступов - черт. Настраиваемость противоречит философии Блэка.

Если черные не дадут вам выбора, просто обработайте результат...

      import sys, pathlib, re

def spaces2tabs(t):
    while True:
        t, n = re.subn('^(\t*) {4}', '\\1\t', t, flags=re.MULTILINE)
        if not n: return t

p = pathlib.Path(sys.argv[1])
p.write_text(spaces2tabs(p.read_text()))
Другие вопросы по тегам