Автоматическая проверка орфографии строк документации и комментариев
Рассмотрим следующий пример кода:
# -*- 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
строка документации функции. И ваш редактор, вероятно, выделит это автоматически, например, вот как это делает Pycharm:
Благодаря теме https://stackru.com/questions/2151300/whats-the-best-way-to-spell-check-python-source-code теперь я знаю, что существует соответствующая библиотека для проверки орфографии, которая называется PyEnchant
это может быть использовано для обнаружения опечаток.
Моя конечная цель - автоматически обнаружить опечатки в проекте и сделать проверку орфографии частью непрерывной сборки, тестирования и проверки качества кода.
Есть ли способ добиться этого с pylint
? Если нет, я также буду признателен за любые советы по применению PyEnchant
к документации и комментариям по проекту (в этом случае pylint
или же pyflakes
плагин может быть сделан из него).
Пожалуйста, дайте мне знать, если я безумно беспокоюсь о качестве кода.
2 ответа
Pylint только что выпустил 1.4.0, который включает в себя spell-checker
, Вот начальный пулл-запрос.
Обратите внимание, что для того, чтобы проверка работала, вам необходимо установить pyenchant
модуль Python и есть enchant
библиотека установлена по всей системе. На Mac его можно установить через brew
:
$ brew install enchant
По умолчанию spelling
Pylint Checker выключен. Вы можете включить его либо в пилинте 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)
В Windows установите chant с помощьюpip install pyenchant
Затем, чтобы обеспечить проверку орфографии, в вашем.pylintrc
файл, в разделе[SPELLING]
, Добавлятьspelling-dict=en_US
.
Я также предлагаю вам добавить ваши часто используемые аббревиатуры в.txt
файл и указать его путь в опцииspelling-private-dict-file=
.
Например:
[SPELLING]
# Spelling dictionary name. Available dictionaries: none. To make it working
# install python-enchant package.
spelling-dict=en_US
# A path to a file that contains private dictionary; one word per line.
spelling-private-dict-file=private-dictionary.txt
И запустить с:pylint --rcfile=.pylintrc yourfile