Как я могу сказать 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, чтобы он вообще не смотрел на занесенные в черный список модули, или можно было бы разобрать только один файл (например, для интеграции в редакторе).