2014-11-27 4 views
18

Betrachten Sie den folgenden Beispielcode:Automatisierte docstring und Kommentare Rechtschreibprüfung

# -*- coding: utf-8 -*- 
"""Test module.""" 


def test(): 
    """Tets function""" 
    return 10 

pylint es 10 von 10 gibt, flake8 keine Warnungen nicht findet:

$ pylint test.py 
... 
Global evaluation 
----------------- 
Your code has been rated at 10.00/10 
... 
$ flake8 test.py 
$ 

Aber, wie Sie sehen können , gibt es einen Tippfehler in der test Funktion Docstring. Und Ihr Editor wahrscheinlich markiert automagically würde zum Beispiel hier, wie PyCharm es tut:

enter image description here

Dank das https://stackoverflow.com/questions/2151300/whats-the-best-way-to-spell-check-python-source-code Thema, jetzt weiß ich, dass es eine entsprechende Rechtschreibprüfung ist Bibliothek PyEnchant genannt das kann verwendet werden, um Tippfehler zu erkennen.

Mein Endziel ist automatisch Tippfehler in dem Projekt zu erkennen und machen die Rechtschreibprüfung ein Teil einer kontinuierlichen Build-, Test-und Code-Qualitätsprüfung ausgeführt.

Gibt es eine Möglichkeit, das mit pylint zu erreichen? Wenn nicht, würde ich auch alle Hinweise zur Anwendung von PyEnchant auf DocStrings und Kommentare projektweise (in diesem Fall pylint oder pyflakes Plugin könnte daraus gemacht werden) zu schätzen wissen.

Bitte, lassen Sie mich auch wissen, wenn ich wahnsinnig besorgt über die Code-Qualität bin.

+0

möglich Duplikat [? Was ist der beste Weg, um die Rechtschreibprüfung Python Quellcode] (http://stackoverflow.com/ Fragen/2151300/Whats-the-best-Weg-zu-Rechtschreib-Python-Quellcode) – user3426575

+0

OP wörtlich bereits in seiner Frage verwiesen. – csmckelvey

+0

@ user3426575 das ist genau warum ich das Thema erwähnt habe. – alecxe

Antwort

17

Pylint gerade veröffentlicht 1.4.0, die eine spell-checker enthält. Hier ist die ursprüngliche pull-request.

Beachten Sie, dass das Prüforgan Arbeit zu machen, müssen Sie pyenchant Python-Modul installieren und haben eine enchant Bibliothek installiert systemweit. Auf dem Mac kann über brew installiert werden:

$ brew install enchant 

standardmäßig das spelling Pylint checker ausgeschaltet ist. Sie können es entweder in der Pylint rc Konfigurationsdatei oder von der Kommandozeile aktivieren:

$ cat test.py 
# I am the tyop 

$ pylint --disable all --enable spelling --spelling-dict en_US test.py 
C: 1, 0: Wrong spelling of a word 'tyop' in a comment: 
# I am the tyop 
      ^^^^ 
Did you mean: 'typo' or 'top' or 'tip' or 'topi'? (wrong-spelling-in-comment) 
+0

Danke für das Hinzufügen der Anweisungen! Ich habe es an echtem Code ausprobiert, und es ist irgendwie schwierig: Es kann Codebeispiele, URLs und andere ReST-Markups nicht ignorieren, daher werden Variablennamen als Rechtschreibfehler usw. gekennzeichnet. –

+0

Ja, da könnte ein sehr-sehr lange Liste von Wörtern, die ignoriert werden sollen (Einstellung "Rechtschreib-ignorieren-Wörter"), die eventuell schwierig zu warten ist. Ich werde es trotzdem an einem echten Projekt versuchen. Vielen Dank. – alecxe

+0

Für Nicht-Mac-Benutzer sollte 'pip install -U pyenchant' die Aufgabe übernehmen. –