2010-03-23 3 views
18

Ниже следует pylint docs:pylint игнорировать директория

--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] 

Но я не имею счастья получать часть работы каталога.

У меня есть каталог, называемый миграциями, который имеет файлы миграции django-south. Когда я вхожу --ignore = migrations, он все равно продолжает давать мне ошибки/предупреждения в файлах внутри каталога миграций.

Не может быть, что --ignore не работает для каталогов?

Если бы я мог даже использовать регулярное выражение, чтобы соответствовать игнорируемые файлы, которые будут работать, так как Джанго-юг файлы все названные 0001_something, 0002_something ...


Поскольку я не мог заставить игнорировать директорией в Я прибегал к простому размещению # pylint: disable-msg-cat=WCREFI поверх каждого файла миграции, который игнорирует все ошибки, предупреждения и информацию о pylint.

+2

В настоящее время pylint уважает только последнюю опцию '--ignore' в вашем имени пути. Возможно, вы используете '--ignore' несколько раз? http://www.logilab.org/ticket/22273 – badp

+0

Связано ли это с pydev? Возможно, добавьте теги, такие как pydev или eclipse? Я тоже ищу это. – michuelnik

ответ

12

Добавление:

[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 
+0

Я могу подтвердить, что 'ignore = migrations' по-прежнему работает с pylint 1.3.1 – Peterino

+0

Это сделало * не * работать для меня. , используя ** module-name ** сделал трюк. Поэтому для пакета типа 'foo/bar' мне пришлось использовать' foo.bar' вместо 'bar'. – exhuma

-1

Вы можете использовать расширение Bash в вашу пользу:

--ignore=migrations/{0000..1000}_something 
+2

Это не сработает из-за http://www.logilab.org/ticket/22273 – badp

+1

Я думаю, что игнорирование допускает только * basename *, поэтому 'migrations /' не будет работать. Также я развиваюсь под Windows, поэтому, думаю, Bash не может быть и речи. – Ciantic

+0

Это сообщение выглядит немного длинным, поэтому я снова спрошу. Может, что-то изменилось. Можно ли исключить весь каталог 'migrations'? Я тоже на Windows. :(Спасибо. –

5

Вы не можете дать путь, но только «базовое имя» каталога. Например. используйте --ignore=lib вместо --ignore-=appengine-toolkit/gaetk/lib.

Проблема заключается в том, что вы проигнорируете bold все каталоги с именем lib.

Смежные вопросы