2014-11-27 16 views
18

Rozważmy następujący przykładowy kod:Zautomatyzowane docstring i komentarze sprawdzanie pisowni

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


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

pylint daje mu 10 z 10, flake8 nie znaleźliśmy żadnych ostrzeżeń:

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

Ale, jak widać , jest literówka w docstringu funkcji test. I edytor prawdopodobnie podświetlić go automagicznie, na przykład, oto jak pycharm robi:

enter image description here

Dzięki temacie https://stackoverflow.com/questions/2151300/whats-the-best-way-to-spell-check-python-source-code, teraz wiem, że nie jest istotne biblioteki sprawdzania pisowni zwany PyEnchant które mogą służy do wykrywania literówek.

Moim celem końcowym jest automatyczne wykrywanie literówek w projekcie i sprawdzenie pisowni części ciągłego procesu budowania, testowania i sprawdzania jakości kodu.

Czy istnieje sposób na osiągnięcie tego celu za pomocą pylint? Jeśli nie, chciałbym również docenić wszelkie wskazówki dotyczące stosowania PyEnchant do docstrings i komentarze projektowo (w tym przypadku można zrobić z niego wtyczkę pylint lub).

Proszę również poinformować mnie, jeśli niepokoi mnie niepokój związany z jakością kodu.

+0

możliwym duplikatu [? Jaki jest najlepszy sposób na sprawdzanie pisowni kodu źródłowego python] (http://stackoverflow.com/ pytania/2151300/whats-the-best-way-to-spell-check-python-source-code) – user3426575

+0

OP dosłownie już odwoływał się do tego w swoim pytaniu. – csmckelvey

+0

@ user3426575 Właśnie dlatego wspomniałem o temacie. – alecxe

Odpowiedz

17

Pylint właśnie wydał 1.4.0, który obejmuje spell-checker. Oto początkowy pull-request.

Należy pamiętać, że aby sprawdzić działanie kontrolera, należy zainstalować moduł python pyenchant i zainstalować całą bibliotekę enchant. Na mac, można go zainstalować poprzez brew:

$ brew install enchant 

Domyślnie kontroler spelling pylint jest wyłączony. Można włączyć go albo w pliku konfiguracyjnym pylint rc lub z linii poleceń:

$ 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

Dzięki za dodanie instrukcji! Próbowałem go na prawdziwym kodzie i jest to trochę trudne: nie wie, jak zignorować przykłady kodu, adresy URL i inne znaczniki ReST, więc nazwy zmiennych są oznaczone jako błędy pisowni itp. –

+0

Tak, może być bardzo, bardzo długa lista słów do zignorowania (ustawienie "pisownia-ignoruj ​​słowa"), które mogą być ostatecznie trudne do utrzymania. I tak spróbuję prawdziwego projektu. Dzięki. – alecxe

+0

Dla użytkowników niebędących użytkownikami mac 'pip install -U pyenchant' powinien wykonać zadanie. –

Powiązane problemy