code质量检测
mypy
pylint
flake8
isort
autopep8
yapf
black
coverage
PEP 8 是 Python 代码风格规范,它规定了类似行长度、缩进、多行表达式、变量命名约定等内容。尽管你的团队自身可能也会有稍微不同于
PEP 8 的代码风格规范,但任何代码风格规范的目标都是在代码库中强制实施一致的标准,使代码的可读性更强、更易于维护。下面三个库就可
以用来帮助你美化代码。
mypy:旨在结合动态类型和静态类型的优点 # 参数name后面跟了:str 代表name期望是str类型 # 参数括号后面跟了->str代表返回类型为str类型 def greeting(name: str) -> str: return 'Hello ' + name x: str = 'xxx' # 声明一个变量为str类型 greeting(x) # Hello xxx greeting(123) # TypeError: can only concatenate str (not "int") to str
Pylint 是一个检查违反 PEP 8 规范和常见错误的库。 pip install pylint 配置文件 .pylintrc
Flake8 是“将 PEP 8、Pyflakes(类似 Pylint)、McCabe(代码复杂性检查器)和第三方插件整合到一起,以检查 Python 代码风格和
质量的一个 Python 工具”。 pip install flake8 配置文件 .flake8 有非常清晰的文档,包括一些有用的提交钩子,可以将自动检查代码纳入到开发工作流程之中。
Isort 这个库能将你在项目中导入的库按字母顺序排序,并将其正确划分为不同部分(例如标准库、第三方库、自建的库等)。这样提高了代码的可读性,
并且可以在导入的库较多的时候轻松找到各个库。 pip install isort
配置 .isort.cfg
Autopep8 可以自动格式化指定的模块中的代码,包括重新缩进行、修复缩进、删除多余的空格,并重构常见的比较错误(例如布尔值和 None 值)
pip install autopep8
Yapf 是另一种有自己的配置项列表的重新格式化代码的工具。它与 Autopep8 的不同之处在于它不仅会指出代码中违反 PEP 8 规范的地方,
还会对没有违反 PEP 8 但代码风格不一致的地方重新格式化,旨在令代码的可读性更强。 pip install yapf
Black 在代码检查工具当中算是比较新的一个。它与 Autopep8 和 Yapf 类似,但限制较多,没有太多的自定义选项。
这样的好处是你不需要去决定使用怎么样的代码风格,让 Black 来给你做决定就好。你可以在这里查阅 Black
有限的自定义选项以及如何在配置文件中对其进行设置。
Coverage 有数种显示测试覆盖率的方式,包括将结果输出到控制台或 HTML 页面,并指出哪些具体哪些地方没有被覆盖到。
你可以通过配置文件自定义 Coverage 检查的内容,让你更方便使用。
pip install coverage