Подтвердить что ты не робот

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.

4b9b3361

Ответ 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