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

Тишина ложных срабатываний при использовании django

Я хочу, чтобы с помощью Django было безопасно отключить несколько ошибок pylint. Два из них, вызывающие наибольшее раздражение, возникают из django.db.models.Model и доступа к объектам и django.test.TestCase. Во-первых, pylint жалуется на любой код, который использует атрибут "объекты", говоря, что он не является членом. Во втором случае, после добавления семи тестов в тестовый пример, он жалуется на слишком много общедоступных методов (я предполагаю, что TestCase имеет четырнадцать)

Я знаю, что первая часть этого является дубликатом вопроса 115977, но этот вопрос немного стар, и ни одно из решений не очень хорошо, поэтому я подумал, что я буду сомневаться.

Я не хочу просто подавлять жалобы в pylint, так как мне нравится их видеть в других обстоятельствах.

4b9b3361

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

Подробное сообщение в блоге здесь.