2010-08-10 9 views
10

Ich würde gerne ein paar Pylint Fehler bei der Verwendung von Django ruhig. Die zwei, die die größte Irritation verursachen, sind, wenn sie von django.db.models.Model und zugreifenden Objekten abgeleitet werden, und django.test.TestCase. In der ersten beschwert sich pylint über irgendeinen Code, der das Attribut 'objects' verwendet und sagt, dass es kein Mitglied ist. In der zweiten, nach dem Hinzufügen von sieben Tests zu einem Testfall beschwert es sich über zu viele öffentliche Methoden (ich vermute, dass TestCase hat vierzehn)Beruhigende pylint falsch-positive bei der Verwendung von Django

Ich weiß, der erste Teil davon ist ein Duplikat der Frage 115977, aber das Frage ist ein wenig alt und keine der Lösungen sind sehr gut, so dass ich dachte, ich würde das Problem stecken.

Ich möchte nicht einfach die Beschwerden in Pylint unterdrücken, wie ich sie unter anderen Umständen gerne sehe.

Antwort

6

Am einfachsten, vorausgesetzt, Ihr problematischer Code liegt außerhalb Ihrer Kontrolle (z. B. automatisch generiert), um die Beschwerden in den Bereichen zu deaktivieren, von denen Sie wissen, dass sie unecht sind. ein Beispiel gerade aus the message that first introduced this solution Kopieren:

1 class foo: 
2 # pylint: disable=W1234 
3 def bar(self): 
4  # pylint: disable=W4321 
5  pass 
6 def gnurz(self): 
7  pass
+0

Danke für die Antwort, und das wäre toll, wenn sie einmal in der Klasse deaktiviert werden könnten, aber der Fehler wird jedes Mal gemeldet, wenn das Mitglied verwendet wird und muss an jeder Stelle deaktiviert werden, an der es verwendet wird. Nicht wirklich praktisch. – JivanAmara

4

, wenn Sie einige Pylint Warnungen nicht egal, wie unexistent Mitglied (E1101) und zu viele öffentliche Methoden (R0904), können Sie schließen Sie es einfach mit:

pylint --disable=E1101,R0904 

, wenn Sie mit wenigen Kontrolleure nur daran interessiert sind, können Sie Pylint wie folgt ausführen:

pylint --enable=basic,variables,classes,design,imports,newstyle,exceptions,format,miscellaneous,metrics,similarities 
+4

Das OP erwähnte, dass er diese Fehler nicht global unterdrücken möchte. –

4

ich mag mich nicht zu wiederholen, aber hier ist eine Antwort, die tatsächlich funktioniert: https://stackoverflow.com/a/31000713/78234
Von der Antwort: Deaktivieren oder schwächen Sie die Pylint-Funktionalität nicht durch Hinzufügen von ignores oder generated-members.
Verwenden Sie ein aktiv entwickeltes Pylint-Plugin, das Django versteht.
This Pylint plugin for Django funktioniert recht gut:

pip install pylint-django 

und beim Laufen Pylint das folgende Flag auf den Befehl hinzufügen:

--load-plugins pylint_django 

Detaillierte Blog-Post here.

+1

Dies sollte die Antwort sein, die Pyylint-Optionen optimieren und Fehler abschalten, es ist ein bisschen ein stumpfes Instrument, da jede Option global angewendet wird – Niyojan

Verwandte Themen