2013-05-15 7 views
12

In meinem Django-Projekt verwende ich eine extern geschriebene App, die schlecht geschrieben ist. Jetzt möchte ich diese App von meinem Pylint Bericht ignorieren, aber ich kann nicht pylint, um es zu ignorieren. Pylint ignoriert bereits die Süd-Migration, wie folgt aus:pylint: Ignoriere mehrere in rcfile

[MASTER] 
ignore=migrations 

jedoch die Dokumentation besagt, dass mehrere ignoriert angegeben werden können. Aber ich habe ein paar ausprobiert und konnte sie nicht zur Arbeit bringen.

funktioniert nicht:

[MASTER] 
ignore=migrations 
ignore=badapp 

Meine Projektstruktur ist wie folgt::

[MASTER] 
ignore=migrations,badapp 

auch nicht funktioniert

|-- goodapp 
| |-- models.py 
| |-- tests.py 
| +-- views.py 
|-- badapp 
| |-- models.py 
| |-- tests.py 
| +-- views.py 
|-- manage.py 

Ich möchte lieber nicht streuen meine Code mit # pylint: skip-file, sondern konfigurieren Sie pylint mit der RCFile.

+0

Ich denke, das funktioniert nicht, weil pylint die Datei __init__.py nicht in "goodapp" und "badapp" finden kann. – cwirz

Antwort

8

ignore kann mehrfach eingestellt werden, wenn als Befehlszeilenoption angegeben, zB

pylint --ignore=migrations --ignore=badapp mymodule.py 

Aber nicht in der Konfigurationsdatei (siehe ConfigParser Dokumentation). Aber

[MASTER] 
ignore=migrations,badapp 

sollte funktionieren, wenn nicht sollte das als ein Fehler gemeldet werden.

+0

ein kurzer Test vor Ort lässt mich denken, dass es wie erwartet funktioniert – sthenault

+1

funktioniert nicht für mich auf Pylint 1.3.1 (CentOS 6, Fedora 21 beide haben 1.3.1 pylint). vielleicht ist es ein Fehler. Ich habe 3 Verzeichnisse 'a, b, c' mit dem gleichen' tmp.py' erstellt und versucht, 'pylintrc' mit' ignore = a, b, c' zu verwenden und habe auch versucht '--ignore = a, b, c '. Die Konfigurationsdatei und die Befehlszeilenoption funktionierten beide nicht. –

1

Sie können --ignore=migrations,badapp tun, aber nicht zum Beispiel --ignore=lib/migrations,apps/badapp - pylint versteht nicht vollständige Pfade, nur Basisnamen. Auch in meiner Version ignoriert es alle multipe Instanzen von --ignore in der Befehlszeile mit nur dem letzten --ignore Parameter.