Автоматическая проверка орфографии и комментариев
Рассмотрим следующий пример кода:
# -*- 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
может быть сделан из него).
Пожалуйста, также дайте мне знать, если я безумно обеспокоен качеством кода.
Ответы
Ответ 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)