原标题:这7个开源的Python库,让你轻松代码分析

开源最前线(ID:OpenSourceTop) 猿妹编译

来源:https://opensource.com/article/18/7/7-python-libraries-more-maintainable-code

当软件项目进入"维护模式”时,很容易把从一开始就建立的代码可读性和编码标准抛开,但是,在代码库中保持一致的样式和测试标准是减少维护负担的重要部分,这样可以确保未来的开发人员能够快速了解最新的项目情况

维持项目可维护性的一个好方法是使用外部库来检查您的代码运行状况。这些是我们最喜欢的一些用于linting代码的库(检查PEP 8和其他样式错误),强制执行一致的样式,以及测试覆盖率的库。

检查代码规范

PEP8 是Python官方推出编码约定,它为行长度,缩进,多行表达式和命名约定等内容制定了一系列规则,主要是为了保证 Python 编码的风格一致,提高代码的可读性。

1. Pylint

Pylint是一个检查PEP 8规范违规和常见错误的库。它能与几个流行的编辑器和IDE很好地集成,也可以从命令行运行。

要安装,请运行pip install pylint。要从命令行使用Pylint,请运行pylint [options] path/to/dir或pylint [options] path/to/module.py。Pylint就会输出有关样式违规和其他错误的警告。开发者可以根据根据自己偏好、习惯修改pylintrc这个模板。(项目地址:https://www.pylint.org/)

2. Flake8

Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。

要使用Flake8,请运行pip install flake8。然后运行flake8 [options] path/to/dir或flake8 [options] path/to/module.py查看其错误和警告。

与Pylint一样,Flake8允许对配置文件检查的内容进行一些自定义。它有非常清晰的文档,包括一些有用的repo,可以自动检查代码。

Flake8同样可与流行的编辑器和IDE集成,例如,Sublime Text的Flake8插件。(详情:https://github.com/PyCQA/flake8)

3. Isort

isort 可自动对 Python 的 import 语句进行排序和分段。可将大量的 import 结构转成非常适合阅读的排版。提供一个命令行工具、Python 库和 Kate 插件。

安装isort pip install isort,然后运行isort path/to/module.py。文档中提供了更多配置选项。例如,开发者可以配置 isort处理.isort.cfg文件中一个库的多行导入。

与Flake8和Pylint一样,isort也能够与流行的编辑器和IDE集成。

代码格式化

4. Autopep8

Autopep8是一个将Python代码自动排版为PEP8风格的小工具。它使用pep8工具来决定代码中的哪部分需要被排版。Autopep8可以修复大部分pep8工具中报告的排版问题。

要安装,请运行pip install --upgrade autopep8。要重新格式化代码,请运行autopep8 --in-place --aggressive --aggressive 。(项目地址:https://github.com/hhatto/autopep8)

5. Yapf

Yapf是重新格式化代码的另一种选择,它带有自己的配置选项列表。它与autopep8的不同之处在于它不仅仅解决了PEP 8违规问题。它还重新格式化了没有违反PEP 8的代码,但没有一致地设置样式。

要安装,请运行pip install yapf。要重新格式化代码,请运行yapf [options] path/to/dir或yapf [options] path/to/module.py。还有一个完整的自定义选项列表。(项目地址:https://github.com/google/yapf)

6. Black

Black,号称不妥协的代码格式化工具,因为它检测到不符合规范的代码风格直接就帮你全部格式化好,根本不需要你确定,直接替你做好决定。

Black 支持 Python 3.6 以上的版本,但可以格式化 Python 2 代码。如果要安装Black,请运行pip install black。要格式化代码,请运行:black path/to/dir或black path/to/module.py。

代码覆盖率

如果你正在写测试,你需要对代码库提交的新代码进行测试,并且不会降低你的测试覆盖率。虽然测试覆盖率的百分比不是衡量测试有效性和充分性的唯一指标,但它是确保项目中遵循基本测试标准的一种方法。为了测量测试覆盖率,我们建议使用 Coverage。

7. Coverage

Coverage 有多种选项可用于向用户报告测试覆盖率,包括将结果输出到控制台或 HTML 页面,并指示哪些行号缺少测试覆盖率。你可以设置配置文件以自定义Coverage 检查的内容并使其更容易运行。

持续集成工具

持续集成(CI)是您可以运行的一系列过程,用于在合并和部署代码之前自动检查linter错误和测试覆盖率最小值。有许多免费或付费的工具可以自动执行此过程,完整的演练超出了本文的范围。但是,因为设置CI过程是将块移除到更易读和可维护的代码的重要步骤,所以您应该研究一般的持续集成工具,特别是 Travis CI 和 Jenkins

●编号470,输入编号直达本文返回搜狐,查看更多

责任编辑:

python代码库-这7个开源的Python库,让你轻松代码分析相关推荐

  1. python视频处理加速的库_Python调用ffmpeg开源视频处理库,批量处理视频

    代码示例 # coding=utf-8 import os import subprocess import datetime import json, pprint import re, time ...

  2. Android 第三方库--2017年Android开源项目及库汇总

    转自:http://blog.csdn.net/jsonnan/article/details/62215287 东西有点多,但是资源绝对nice,自己都全部亲身体验过了,大家可放心使用 github ...

  3. python区块链开发_10个开源的Python区块链项目

    Python不是主流的区块链底层平台开发语言,但是在DApp开发.区块链仿真与数据分析.智能合约安全分析等领域,Python依然是不错的选择.本文介绍了10个最流行的Python区块链项并提供了相应的 ...

  4. python绘制三维矢量图_开源图形库 c语言-图形图像库 集合

    Google三维API O3DO3D 是一个开源的 Web API 用来在浏览器上创建界面丰富的交互式的 3D 应用程序.这是一种基于网页的可控3D标准.此格式期望真正的基于浏览器,独立于操作系统之外 ...

  5. 界面库RingSDK和金山开源KUI界面

    做一个客户端软件的时候,一直在找真正开源和免费的界面库.根据查找的经历,推介两个界面库.得首先感谢各位高手的奉献精神. 1,RingSDK. 这是一个高手根据自己编程经验总结的一个界面库. SVN 下 ...

  6. python开源代码-这7个开源的Python库,让你轻松代码分析

    原标题:这7个开源的Python库,让你轻松代码分析 开源最前线(ID:OpenSourceTop) 猿妹编译 来源:https://opensource.com/article/18/7/7-pyt ...

  7. 基于Python的开源人脸识别库:离线识别率高达99.38%

    基于Python的开源人脸识别库:离线识别率高达99.38% 2019年04月18日 18:13:18 AI终结者 阅读数 1233 项目地址:https://github.com/ageitgey/ ...

  8. 懒人必备!只需一行代码,就能导入所有的Python库

    今天给大家介绍一个懒人Python库--Pyforest. 使用一行代码,就能导入所有的Python库(本地已经安装的). GitHub地址:https://github.com/8080labs/p ...

  9. Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38%

    Python人脸识别教程 - 基于Python的开源人脸识别库:离线识别率高达99.38% 仅用 Python 和命令行就可以实现人脸识别的库开源了.该库使用 dlib 顶尖的深度学习人脸识别技术构建 ...

  10. 几十行python代码构建一个前后端分离的目标检测演示网站,代码开源

    在深度学习更讲究实用和落地的今天,构建一个简单的,可以利用浏览器和后端交互的演示性 Demo 可以说非常重要且实用了.本文我们将简单的介绍如何用几十行核心代码构建一个好用的.前后端分离的Demo. 2 ...

最新文章

  1. 说说“偏差处理”那点事
  2. Qt窗口、控件、文本等的一些常用操作
  3. Java集合框架上机练习题:用户分别从两个文本框输入学生的姓名和分数.............
  4. 蓝桥杯2017初赛-油漆面积-枚举
  5. 【图论】【Floyed】舞会邀请(CODE[VS] 2604)
  6. AtCoder Grand Contest 023 C - Painting Machines
  7. 腾讯天衍实验室新算法入选国际万维网大会 新冠疫苗AI问答上线
  8. python-元组数据类型-0222
  9. c#學習筆記--Visual Studio 使用
  10. 4399元!苹果2020年终极新品上市就遇麻烦:付款3个月才能到货
  11. 今天微信没有520红包 大家可以放心了!
  12. Spark权限问题:Spark-submit运行报错 Permission denied user=deploy
  13. ios android c跨平台,Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台)...
  14. Hibernate pojo对象的三种状态
  15. Go语言基础:结构体
  16. itext7读取pdf 中文_itext7史上最全实战总结
  17. ubuntu命令 图片 壁纸_一个命令安装旧版Ubuntu发布的壁纸
  18. 数据结构期末大题速成
  19. 干货满满,Android热修复方案介绍
  20. 【已解决】找到无效的 Gradle JDK 配置(invalid Gradle JDK configuration found)

热门文章

  1. 5种Python深度学习库和资料
  2. VS2017+DirectX9环境配置
  3. python 自动下载网页链接_用python做一个网页自动下载脚本
  4. 工单管理软件,免费工单管理系统
  5. java 自己实现工作流_Java基于jeeplus vue实现简单工作流过程图解
  6. Python常用的软件包
  7. BackTrack5(BT5) 硬盘安装 教程
  8. “小马激活”病毒新变种分析报告
  9. MSYS以及MinGW安装
  10. 手机打印文件_Android 手机打印文件_Android 手机连接打印机_手机端打印wordExcelPPT_华为P20连接打印机_惠普M1213nf MFP打印机无线打印