Pylint: Können geerbte öffentliche Methoden von Statistiken ausgeschlossen werden?

9

Pylint meldet weiterhin den Fehler ( R: 73,0:MyLogging: Too many public methods (22/20) ) für den folgenden Code:

%Vor%

Zuerst dachte ich, es wäre ein Fehler in Pylint, da MyLogging class genau 22 Zeilen Code hatte, aber als ich merkte, dass es alle öffentlichen Methoden von der Basisklasse logging.Logger mit einschließt, was 20 zu der Statistiken.

Wissen Sie, ob es möglich ist, öffentliche Basisklassenmethoden aus der Pylint-Statistik auszuschließen?

PS. Ich bin mir bewusst, dass ich max-public-methods zu höherer Zahl ändern kann, oder einmalige Ausnahme mit # pylint: disable=R0904

hinzufügen kann     
Jovik 15.01.2013, 13:41
quelle

2 Antworten

6

Es gibt Wege, aber keine davon ist gut.

Dies ist nicht konfigurierbar: Sie können den Code in pylint design_analysis.MisdesignChecker in def leave_class :

überprüfen %Vor%

Der obige Code iteriert einfach alle Methoden, die nicht mit "_" beginnen, und zählt sie als öffentliche Methoden.

Folglich sehe ich zwei Möglichkeiten, um das zu tun, was Sie tun möchten:

1) fork pylint und modifiziere diese Methode:

%Vor%

method.parent - der Klassenknoten, an dem diese Funktion definiert ist; Auch in Ihrer Funktion leave_class haben Sie einen Parameter node - was der Klassenknoten ist.

Vergleichen Sie sie können Sie verstehen, ob es die aktuelle Klasse ist oder nicht.

2) deaktiviere diese Regel in der pylint config und erstelle dein eigenes Plugin:

%Vor%

Im Grunde ist diese Implementierung der leicht modifizierte Auszug aus design_analysis.MisdesignChecker aus dem pylint Quellcode.

Weitere Informationen zu Plug-ins: Ссылка und im pylint-Quellcode.

    
RomanI 18.01.2013, 07:59
quelle
2

Es gibt derzeit keine Konfiguration in pylint, die es erlaubt, übergeordnete Methoden zu ignorieren. Sie können tun, was Romanl vorschlägt, indem Sie das Problem bestehen, bis das Problem, das ich für Ihre PB erstellt habe, stromaufwärts gelöst wird (http://www.logilab.org/ticket/116963)

    
sthenault 23.01.2013 14:08
quelle

Tags und Links