Как я могу сказать Pychecker игнорировать импортированную библиотеку?

Один из модулей, которые я импортирую в свой проект python, вызывает много предупреждений под Pychecker. Исправление этого внешнего модуля на самом деле не вариант, поэтому я хочу сказать, что Пичекер игнорирует его.

Кто-нибудь знает как это сделать? Я уверен, что это возможно, и, вероятно, довольно просто, но после того, как я некоторое время мучился с Google, я не нашел ни документации, ни примеров.

Спасибо Сэм

Изменить: я не могу пометить это с "pychecker", к сожалению, так как этот тег еще не существует, и мой представитель слишком низок для создания.

Edit 2 Bonus дополнительный вопрос: проверяет ли pychecker игнорируемые модули в любом случае, и просто не печатает ничего, что находит? или вы получаете некоторое ускорение, игнорируя некоторые модули?

3 ответа

Согласно документам,

Если вы хотите подавить предупреждения для модуля / функции / класса / метода, вы можете определить словарь подавлений в.pycheckrc. Примеры ключей: 'module', 'module.function', 'module.class', 'module.class.method' и т. Д. И т. Д.

IOW, в вашем .pycheckrc, если назван проблемный модуль foobarвы будете иметь

suppressions = {'foobar': '...'}

где ... значит, все варианты подавления вы хотите. использование pychecker -h получить список всех опций; Я думаю 'limit=0' будет делать то, что вы просите (покажите максимум 0 предупреждений для этого модуля, т.е. ни одного;-), но вы можете быть немного более избирательным (в конце концов, вам нужно только написать это раз и навсегда в .pycheckrcне на каждом месте, из которого вы звоните pychecker... что является удобством подхода pycheckrc!).

Я нашел другой вариант - вы можете занести в черный список, используя флаг -b. Например

python pychecker.py -b list,of,modules,to,ignore

Я не уверен, но я думаю, что это проверяет импортированные модули в любом случае, но просто не печатает предупреждения. Конечно, с флагом -b это выглядит не так быстро, как без - хотя бы предупреждения исчезли:-)

На бонусный дополнительный вопрос:

  • Pychecker всегда импортирует файлы, которые вы передаете, что приводит к его импорту независимо от того, что импортировать. Это так же, как Python. Это первый проход в pychecker.
  • Затем pychecker на самом деле проходит через загруженные модули, разбирает код и запускает все коды операций. Это второй проход.
  • В обоих случаях он отслеживает все предупреждения, генерируемые даже игнорируемыми модулями. Затем он отфильтровывает эти предупреждения перед их отображением.

Я рассматриваю, стоит ли менять pychecker, чтобы он вообще не смотрел на занесенные в черный список модули, или можно было бы разобрать только один файл (например, для интеграции в редакторе).

Другие вопросы по тегам