【问题标题】:Automated docstring and comments spell check自动文档字符串和注释拼写检查
【发布时间】:2015-01-25 13:23:34
【问题描述】:

考虑以下示例代码:

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


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

pylint 给它 10 of 10,flake8 没有找到任何警告:

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

但是,如您所见,test 函数的文档字符串中有一个错字。而且,您的编辑器可能会自动突出显示它,例如,Pycharm 是这样做的:

感谢https://stackoverflow.com/questions/2151300/whats-the-best-way-to-spell-check-python-source-code 话题,现在我知道有一个相关的拼写检查库,叫做PyEnchant,可以用来检测拼写错误。

我的最终目标是自动检测项目中的拼写错误,并使拼写检查成为持续构建、测试和代码质量检查运行的一部分。

有没有办法通过pylint 实现这一目标?如果没有,我也很感激有关将 PyEnchant 应用于 docstrings 和 cmets 项目的任何提示(在这种情况下,可以使用 pylintpyflakes 插件)。

如果我非常担心代码质量,请告诉我。

【问题讨论】:

  • OP 在他的问题中确实已经提到了这一点。
  • @user3426575 这正是我提到这个话题的原因。
  • “如果我非常担心代码质量,请告诉我。” - 一点也不! :) 如果我有一个烦恼,那就是有拼写和/或语法错误的文档。程序员执行代码;他们阅读文档。因此,让您“什么?!”的文档打破了它最初存在的唯一目的。
  • @iCodez 唷,很高兴我们相信并遵循相同的原则。谢谢。

标签: python code-analysis pylint static-code-analysis


【解决方案1】:

Pylint 刚刚发布了 1.4.0,其中包括一个 spell-checker。这是最初的pull-request

请注意,要使检查器正常工作,您需要安装 pyenchant python 模块并在系统范围内安装 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)

【讨论】:

  • 感谢您添加说明!我在真实代码上试过,有点难:它不知道如何忽略代码示例、URL 和其他 ReST 标记,所以变量名被标记为拼写错误等。
  • 是的,可能有一个非常长的单词列表需要忽略(spelling-ignore-words 设置),最终可能难以维护。无论如何,我会在一个真正的项目上尝试一下。谢谢。
  • 对于非 Mac 用户 pip install -U pyenchant 应该可以完成这项工作。
  • 对我来说,这会检查所有内容(变量、类等)。我希望仅对 py 文件中的文档字符串和 cmets 执行此操作。我想我做错了什么,但我不确定是什么。 =)
猜你喜欢
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2018-04-23
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
相关资源
最近更新 更多