функция предварительной фиксации yapf возвращает результаты, отличные от выполнения yapf в командной строке

#pre-commit-hook #pre-commit.com #yapf

#предварительная фиксация-крюк #pre-commit.com #япф

Вопрос:

При запуске файла с помощью командной строки и yapf мои теги следующие:

-я-многословный-стиль «google»

При использовании того же, что и выше, в качестве аргументов для предварительной фиксации, мой крючок предварительной фиксации всегда возвращает «Pass».

Это было проверено на том же файле для тех же изменений, поэтому я ожидал бы аналогичных результатов. Если я исключу --style "google" , мой крючок предварительной фиксации, по крайней мере, изменит формат моего файла, но не в том стиле, в котором я этого хочу.

Может кто-нибудь сказать мне, что я делаю не так с аргументами?

Файл Python, содержащий пример:

 def hello_world():  print("hello world")      if 5 == 5: print("goodbye world")  

.предварительная фиксация-файл конфигурации.yaml:

 - repo: https://github.com/pre-commit/pre-commit-hooks.git  sha: v4.0.1  hooks:  - id: trailing-whitespace  - id: end-of-file-fixer   - repo: https://github.com/google/yapf  rev: v0.31.0  hooks:  - id: yapf  name: "yapf"  

При фиксации мой файл изменится, и предварительная фиксация сообщила мне, что yapf изменил мой файл на следующий:

 def hello_world():  print("hello world")   if 5 == 5: print("goodbye world")  

Если я вернусь к тому же файлу python и обновлю свой файл .pre-commit-config.yaml до этого:

 - repo: https://github.com/pre-commit/pre-commit-hooks.git  sha: v4.0.1  hooks:  - id: trailing-whitespace  - id: end-of-file-fixer   - repo: https://github.com/google/yapf  rev: v0.31.0  hooks:  - id: yapf  name: "yapf"  args: [--style "google" ]  

Выполнение фиксации обеспечит Pass вместо внесения каких-либо изменений, даже тех, которые были ранее

Правка 1: Файл .pre-commit.config.yaml был обновлен до:

 - repo: https://github.com/pre-commit/pre-commit-hooks.git  sha: v4.0.1  hooks:  - id: trailing-whitespace  - id: end-of-file-fixer  - repo: https://github.com/google/yapf  rev: v0.31.0  hooks:  - id: yapf  name: "yapf"  args: [--style, google]  

Запуск pre-commit run только показывает Passed , а не переформатирует. Я также попытался вставить pep8 и другие произвольные слова в качестве замены google. Все это приводит к Passed . Может быть, на моем конце есть что-то, где игнорируется стиль arg, что приводит к сбою всего yapf?

Комментарии:

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

2. @AnthonySottile извините за это, просто добавил явный пример файла python вместе с моей конфигурацией.

3. у вас опечатка, вы хотите args: [--style, google]

4. @AnthonySottile Хм, к сожалению, это, похоже, все еще не работает. Изменение его на это все еще просто дает мне Passed

5. Я не могу воспроизвести, когда я args правильно отформатировал, это исправляет код, который вы предоставили в этом посте