#python #git #pre-commit-hook #pre-commit #pre-commit.com
Вопрос:
Мы используем предварительную фиксацию для форматирования нашего кода Python с использованием черного цвета со следующей конфигурацией в .pre-commit-config.yaml
:
repos:
- repo: https://github.com/ambv/black
rev: 20.8b1
hooks:
- id: black
language_version: python3.7
Поскольку наши пакеты тестируются и используются в различных версиях Python (например 3.7
, 3.8
, 3.9
) Я хочу иметь возможность использовать крючок предварительной фиксации в разных версиях Python. Но при фиксации кода , например, на Python 3.8
, я получаю ошибку из language_version
-за моей конфигурации (см. Выше):
C:UsersFooBarDocumentsProgrammierungfoo (dev -> origin)
λ git commit -m "Black file with correct black version"
[INFO] Initializing environment for https://github.com/ambv/black.
[INFO] Installing environment for https://github.com/ambv/black.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('c:\users\FooBar\anaconda\python.exe', '-mvirtualenv', 'C:\Users\FooBar\.cache\pre-commit\repobmlg3b_m\py_env-python3.7', '-p', 'python3.7')
return code: 1
expected return code: 0
stdout:
RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3.7'
stderr: (none)
Check the log at C:UsersFooBar.cachepre-commitpre-commit.log
Как я могу включить крючок предварительной фиксации в разных версиях Python, например, только в Python 3?
Заранее спасибо!
Комментарии:
1. Я мог бы решить эту проблему с помощью
language_version: python3
!
Ответ №1:
одним из способов было бы установить language_version: python3
(раньше это было по умолчанию black
) — фактическое language_version
использование там не имеет большого значения, поскольку black не использует его для выбора целевого языка форматирования (это отдельная опция).
как правило, однако, вам не нужно устанавливать language_version
либо (1) сам крючок установит правильный, либо (2) по умолчанию он будет соответствовать вашему текущему python
примечание также: вы используете дважды устаревший URL-адрес для черного-теперь он psf/black
__
отказ от ответственности: Я создал предварительную фиксацию, и я черный участник
Комментарии:
1. Спасибо за ваш ответ и подсказку о новейшей конфигурации. Теперь это работает как заклинание!
2. Возможно, вы также могли бы добавить конфигурацию в свой ответ: black.readthedocs.io/en/stable/integrations/…