2014-11-27 6 views
18

Рассмотрим следующий пример кода:Автоматизированное и комментарии строка документации проверка орфографии

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


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

pylint дает ей 10 из 10, flake8 не находит каких-либо предупреждений:

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

Но, как вы можете видеть, , есть опечатка в docstring функции test. И, ваш редактор, вероятно, выделить его автомагически, к примеру, вот как PyCharm делает это:

enter image description here

Благодаря https://stackoverflow.com/questions/2151300/whats-the-best-way-to-spell-check-python-source-code теме, теперь я знаю, что есть соответствующая проверка орфографии библиотека называется PyEnchant, которая может используется для обнаружения опечаток.

Моей конечной целью является автоматически определить опечатки в проекте и сделать проверку орфографии частью непрерывной сборки, проверки и проверки качества кода.

Есть ли способ достичь этого с помощью pylint? Если нет, я бы также оценил любые рекомендации по применению PyEnchant к docstrings и комментариям по проекту (в этом случае можно было бы сделать из него плагин pylint или pyflakes).

Пожалуйста, также сообщите мне, если я безумно обеспокоен качеством кода.

+0

возможный дубликат [Что это лучший способ проверки орфографии исходного кода Python] (http://stackoverflow.com/ вопросы/2151300/whats-the-best-way-to-spell-check-python-source-code) – user3426575

+0

OP буквально уже упоминал это в своем вопросе. – csmckelvey

+0

@ user3426575 Именно поэтому я упомянул тему. – alecxe

ответ

17

Pylint только что выпустил 1.4.0, который включает в себя spell-checker. Вот начальный pull-request.

Обратите внимание, что для выполнения проверки необходимо установить модуль python pyenchant и установить библиотеку enchant в системе. На Mac, он может быть установлен с помощью brew:

$ brew install enchant 

По умолчанию spelling pylint проверки отключена. Вы можете включить его либо в файле конфигурации pylint rc, или из командной строки:

$ 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

Спасибо за добавление инструкций! Я пробовал это на реальном коде, и это довольно сложно: он не знает, как игнорировать примеры кода, URL-адреса и другую разметку ReST, поэтому имена переменных отмечены как орфографические ошибки и т. Д. –

+0

Да, может быть очень длинный список слов для игнорирования (параметр 'spelling-ignore-words'), который в конечном итоге может быть сложно поддерживать. В любом случае, я дам ему попробовать настоящий проект. Благодарю. – alecxe

+0

Для пользователей, не являющихся малыми пользователями, необходимо выполнить настройку «pip install -U pyenchant». –

Смежные вопросы