Подтвердить что ты не робот

Автоматическая проверка орфографии и комментариев

Рассмотрим следующий пример кода:

# -*- 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
$

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

enter image description here

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

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

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

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

4b9b3361

Ответ 1

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

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

$ brew install enchant

По умолчанию контрольная панель spelling отключена. Вы можете включить его либо в конфигурационном файле 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)