Тишина ложных срабатываний при использовании django
Я хочу, чтобы с помощью Django было безопасно отключить несколько ошибок pylint. Два из них, вызывающие наибольшее раздражение, возникают из django.db.models.Model и доступа к объектам и django.test.TestCase. Во-первых, pylint жалуется на любой код, который использует атрибут "объекты", говоря, что он не является членом. Во втором случае, после добавления семи тестов в тестовый пример, он жалуется на слишком много общедоступных методов (я предполагаю, что TestCase имеет четырнадцать)
Я знаю, что первая часть этого является дубликатом вопроса 115977, но этот вопрос немного стар, и ни одно из решений не очень хорошо, поэтому я подумал, что я буду сомневаться.
Я не хочу просто подавлять жалобы в pylint, так как мне нравится их видеть в других обстоятельствах.
Ответы
Ответ 1
Самый простой, если ваш проблемный код не вышел из-под контроля (например, автогенерируется), должен отключить жалобы в тех областях, которые, как вы знаете, являются ложными. Копирование примера из сообщения, впервые введёвшего это решение:
1 class foo:
2 # pylint: disable=W1234
3 def bar(self):
4 # pylint: disable=W4321
5 pass
6 def gnurz(self):
7 pass
Ответ 2
если вам не нравятся предупреждения pylint, такие как неисследованный член (E1101) и слишком много общедоступных методов (R0904), вы можете легко закрыть его с помощью
pylint --disable=E1101,R0904
Если вас интересует только несколько шашек, вы можете запустить pylint следующим образом:
pylint --enable=basic,variables,classes,design,imports,newstyle,exceptions,format,miscellaneous,metrics,similarities
Ответ 3
Мне не нравится повторять себя, но вот ответ, который действительно работает:
fooobar.com/info/52990/...
Из ответа:
Не отключайте и не ослабляйте функциональность Pylint, добавляя ignores
или generated-members
.
Используйте активно разработанный плагин Pylint, который понимает Django.
Этот плагин Pylint для Django работает достаточно хорошо:
pip install pylint-django
и при запуске pylint добавьте в команду следующий флаг:
--load-plugins pylint_django
Подробное сообщение в блоге здесь.