#python #formatter #pep8 #pep8-checker
#python #форматировщик #pep8 #pep8-проверка
Вопрос:
Недавно я пытался ознакомиться с Google / yapf. Но почему-то я не могу настроить .style.yapf
и даже setup.cfg
. Я не уверен, где разместить эти файлы. В настоящее время я использую любой / или оба файла в моем текущем каталоге, но глобальные настройки всегда переопределяют мои .style.yapf/setup.cfg
файлы. Может кто-нибудь, пожалуйста, помогите мне, я не получаю ожидаемых результатов, используя их ручки с примерами примеров, приведенных на github / yapf
Ответ №1:
Из документов:
YAPF будет искать стиль форматирования следующим образом:
- Указано в командной строке
- В разделе [style] a .style .файл yapf либо в текущем каталоге, либо в одном из его родительских каталогов.
- В разделе [yapf] файла setup.cfg либо в текущем каталоге, либо в одном из его родительских каталогов.
- В файле ~/.config/yapf/style в вашем домашнем каталоге.
Если ни один из этих файлов не найден, используется стиль по умолчанию (PEP8).
Если я использую следующий ввод Python для тестирования:
class Example: # This is an example
def __init__(self):
pass
Запуск yapf example.py
не приводит к изменениям:
class Example: # This is an example
def __init__(self):
pass
Но если я создам .style.yapf
в текущем каталоге следующий контент:
[style]
SPACES_BEFORE_COMMENT=5
BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF=true
И затем повторный yapf example.py
запуск, я получаю:
class Example: # This is an example
def __init__(self):
pass
Если бы я хотел, чтобы эти изменения применялись глобально, я бы создал вместо ~/.config/yapf/style
этого тот же контент.
Я также мог бы создать файл с именем setup.cfg
в текущем каталоге (или родительском) со следующим содержимым:
[yapf]
SPACES_BEFORE_COMMENT=5
BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF=true
Комментарии:
1. Могу ли я использовать это с FormatCode или FormatFile с
in_place
параметром, установленным в True ?2. Из документов похоже, что вам нужно передать явное
style_config
значение любому из этих методов, но если вы посмотрите на исходный код , вы можете увидеть, как это делает инструмент командной строки.