Pylint игнорировать по каталогу
Ниже приведено pylint docs:
--ignore=<file>
Add <file or directory> to the black list. It should be a base name, not a path. You may set this option multiple times. [current: %default]
Но мне не повезло, что часть каталога работает.
У меня есть каталог с именем migrations, у которого есть файлы миграции django-south. Когда я вхожу --ignore = migrations, он все равно продолжает давать мне ошибки/предупреждения в файлах внутри каталога миграций.
Может ли быть, что --ignore
не работает для каталогов?
Если бы я мог использовать regexp для соответствия игнорируемым файлам, это сработало бы, так как файлы django-south все назывались 0001_something, 0002_something...
Так как я не мог заставить игнорировать по каталогу работать, я прибегал к простому помещению # pylint: disable-msg-cat=WCREFI
поверх каждого файла миграции, который игнорирует все ошибки, предупреждения и информацию pilint.
Ответы
Ответ 1
Добавление:
[MASTER]
ignore=migrations
В мой .pylintrc работает с pylint 0.25. Мои проблемы с PyDev, которые (кажется) не соответствуют моим настройкам. Это связано, я думаю, с тем, что он запускает pylint per-file, который, как я думаю, обходит "игнорировать" проверки - будь то для модулей/каталогов или файлов. Вызов pylint из PyDev выглядит так:
/path/to/site-packages/pylint/lint.py --include-ids=y /path/to/project/migrations/0018_migration.py
Ответ 2
Вы не можете указать путь, а только "базовое имя" каталога. Например, используйте --ignore=lib
вместо --ignore-=appengine-toolkit/gaetk/lib
.
Проблема в том, что вы будете игнорировать все каталоги с именем lib
.
Ответ 3
Хотя это старый вопрос, он обнаружился в верхней части списка, когда мы искали переполнение стека, поэтому я публикую здесь наше решение в надежде, что оно может пригодиться кому-то еще.
Чтобы игнорировать подкаталоги в дереве каталогов с именем 3rdparty
, мы добавили следующую запись ignore-patterns
запись [MASTER]
в .pylintrc
.
# Add files or directories matching the regex patterns to the blacklist. The
# regex matches against base names, not paths.
# Ignore all .py files under the 3rdparty subdirectory.
ignore-patterns=**/3rdparty/**/*.py
Это исправило проблему для Pylint-1.7.1.
Мы были изначально смущены предложением "базовые имена" в комментариях. Очевидно, он принимает пути с подстановочными знаками. По крайней мере, это для нас. Ваш пробег может варьироваться.
Ответ 4
На самом деле с Pylint 2.3.1 есть открытый вопрос.
Если вы установите каталог в опциях игнорирования, он не будет игнорировать его.
Ответ 5
Затем вы можете использовать расширение Bash в своих интересах:
--ignore=migrations/{0000..1000}_something