Исключите автоматически генерируемые Django файлы в pre-commit-config.yaml с помощью REGEX
Поскольку автоматически сгенерированные файлы Django не удовлетворяют многочисленным требованиям pylint, моя проверка pre-commit не работает:
Обычно файлы выглядят следующим образом:
Похоже, что они автоматически располагаются в подпапке под названием "migrations":
Теперь я попытался использовать выражения pre-commit exclude expressions с помощью правильного REGEX.
Этот вариант, похоже, сработал на онлайн REGEX-тестере:
[\w-]+\d+[^\\]*.py
Теперь, если поместить это в мой pylint pre-commit checker, то, к сожалению, ничего не получается:
Я также пытался просто исключить папку "migrations", но также не смог найти рабочего выражения. Как я могу заставить это работать?
Используйте следующее, чтобы найти и исключить все файлы, содержащие подпапку "migrations":
exclude: (migrations)
ваш regex, который вы тестировали, и regex, который вы использовали, отличаются:
# one you tested
[\w-]+\d+[^\\]*.py
# the one you tried
^[\w-]+\d+[^\\]*.py
привязка ^
к началу строки, что не то, что вы хотите (ваши файлы находятся в подкаталоге, а не в корне хранилища)
дополнительно, слеши всегда будут прямыми слешами для сопоставления файлов в pre-commit'е, поэтому вместо этого вы должны исключить (и проверить против) прямые слеши:
[\w-]+\d+[^/]*.py
незначительная ошибка заключается в том, что вы можете встретить whatever1_py
из-за неэскейпированного .
(возможно, это не проблема, но вот улучшение):
[\w-]+\d+[^/]*\.py
вы также используете javascript regex тестер - хотя это не имеет значения для функций, которые вы используете здесь, вы, вероятно, хотите использовать python, так как шаблоны здесь python регулярные выражения
попробуйте следующее:
exclude: '[\w-]+\d+[^/]*\.py'
Отказ от ответственности: я написал pre-commit, хотя здесь это имеет меньшее значение, поскольку это просто путаница в regex