2014-04-09 10 views
13

Ist es möglich, eine Inspektion für die gesamte Datei in PyCharm zu deaktivieren?PyCharm noinspection für ganze Datei?

Der Grund dafür ist py.test. Es verwendet Fixtures, die scheinbar Funktionsparameter verdecken und gleichzeitig nicht aufgelöste Referenzen verursachen. z.B .:

from myfixtures import user # Unused import statement warning 

def test_is_awesome(user): # Shadows name 'user' from outer scope warning 
    assert user.is_awesome() 

Es gibt auch andere Warnungen von py.test, wie die Verwendung von pytest.raises() ein verursacht „nicht gefunden Referenz‚wirft‘“ in pytest.py.

Vielleicht gibt es einen anderen Weg, um diese Probleme zu beheben? Vielleicht verwende ich py.test falsch?

Antwort

14

Ist es möglich, eine Inspektion für die gesamte Datei in PyCharm zu deaktivieren?

Ja. Diese Antwort ist nur für diese Frage (und nicht über "Vielleicht gibt es eine andere Möglichkeit, diese Probleme zu beheben? Vielleicht verwende ich py.test falsch?").

  1. "Einstellungen | Scopes"
  2. neuen Bereich erstellen, die solche "unerwünschte" Datei (en)
  3. "Einstellungen | Inspektionen" umfassen würde
  4. finden "problematisch" Inspektion
  5. Recht klicken und wählen Sie "Add scope"
  6. dass Inspektion Deaktivieren Sie für diesen speziellen Anwendungsbereich

Alternativ (kann funktionieren oder auch nicht: abhängig von der tatsächlichen Prüfung .. und ich bin nicht sicher, ob es in PyCharm tatsächlich funktioniert auf diese Weise - kein PyCharm Benutzer selbst leider)

  1. Alt + Enter während caret auf Fehler/Warnung Stelle im Code steht
  2. richtigen Eintrag Wählen Sie aus Popup-Menü erscheint
  3. mit Arrow Right Schlüssel erweitern Untermenü
  4. Geben Sie für „Unterdrückt inspection“ Option

Dies ist, wie es in PhpStorm aussieht (Screenshot zeigt Option "für Anweisung unterdrücken" und nicht "unterdrücken für ganze Datei"):

enter image description here

Verwandte: https://stackoverflow.com/a/20803118/783119

+2

Danke:

... # noinspection PyUnusedLocal instance = mommy.make(Contact) 

am Anfang der Datei, um sie für die gesamte Datei unterdrückt. Dies ist besonders praktisch, da Sie diese Einstellungen für die Quellcodeverwaltung freigeben können. –

6

zu beantworten die "Vielleicht verwende ich py.test falsch?" Frage:

Import Fixtures ist nicht das beste Muster zu folgen. Stattdessen ist es besser, Fixtures in eine conftest.py-Datei des Pakets zu stecken, das sie benötigt. Wenn ein Fixture in zwei Paketen verwendet wird, lege einfach ein conftest.py in das übergeordnete Verzeichnis und lege das Fixture dorthin. Dies sollte die nicht verwendeten Import- und Shadowing-Warnungen beseitigen.

Wie für das Namespace-Problem pytest.raises, ich glaube nicht, dass es derzeit eine Lösung gibt. Dies ist etwas, das auch Pylint leidet (und ich denke, es ist ein Versuch, ein py.test Plugin zu erstellen, um Pylint diese Dinge anzusprechen). Also denke ich, am Ende des Tages wird der Linter immer noch etwas über py.test wissen müssen.

0

Ich fand, dass die pro-Anweisung Inspektion setzen:

from django.urls import reverse 


# noinspection PyUnusedLocal