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

19

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

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

Благодаря ссылке , теперь я знаю, что существует соответствующая библиотека проверки орфографии под названием PyEnchant , которая может использоваться для обнаружения опечаток.

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

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

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

    
задан alecxe 27.11.2014 в 03:51
источник
  • возможный дубликат Что лучший способ проверить орфографический код python? –  user3426575 27.11.2014 в 03:53
  • OP буквально уже упоминал это в своем вопросе. –  csmckelvey 27.11.2014 в 03:53
  • @ user3426575 Именно поэтому я упомянул тему. –  alecxe 27.11.2014 в 03:54
  • «Пожалуйста, дайте мне знать, если я буду безумно обеспокоен качеством кода». - Ни в малейшей степени! :) Если у меня есть одно домашнее животное, это документация с орфографическими и / или грамматическими ошибками. Программисты выполняют код; они читают документацию. Таким образом, документация, которая оставляет вас «Что ?!» побеждает единственную цель для того, чтобы быть там в первую очередь. –  iCodez 27.11.2014 в 04:26
  • @iCodez phew, рад, что мы верим и следуем тем же принципам. Спасибо. –  alecxe 27.11.2014 в 04:57

1 ответ

18

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

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

$ brew install enchant

По умолчанию проверка spelling pylint отключена. Вы можете включить его либо в файле конфигурации palint 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)
    
ответ дан Ned Batchelder 27.11.2014 в 04:04
  • Спасибо за добавление инструкций! Я пробовал это на реальном коде, и это довольно сложно: он не знает, как игнорировать примеры кода, URL-адреса и другую разметку ReST, поэтому имена переменных отмечены как орфографические ошибки и т. Д. –  Ned Batchelder 27.11.2014 в 16:16
  • Да, может быть очень-очень длинный список слов, которые нужно игнорировать (настройка орфографических игнорируемых слов), которые в конечном итоге могут быть трудно поддерживать. В любом случае, я дам ему попробовать настоящий проект. Благодарю. –  alecxe 27.11.2014 в 17:56
  • Для пользователей, не являющихся малыми пользователями, install install -U pyenchant должен выполнять эту работу. –  Steve Barnes 28.03.2016 в 18:18
  • Для меня это проверяет все (переменные, классы и т. д.). Я хотел бы, чтобы это делалось только для docstrings и комментариев в файле py. Полагаю, я делаю что-то не так, но я не уверен, что. знак равно –  Giampaolo Rodolà 29.11.2016 в 03:34