Flake8_quakemaker

Flake8_quakemakerFlake8简介转载自:http://www.malike.net.cn/blog/2013/10/23/flake8-tutorial/| COMMENTSFlake8包装了下列工具:PyFlakes:静态检查Python代码逻辑错误的工具。pep8:静态检查PEP8编码风格的工具。NedBatchelder’sMcCabescript:静态

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Flake8简介

转载自:http://www.malike.net.cn/blog/2013/10/23/flake8-tutorial/

COMMENTS

Flake8包装了下列工具:

它综合上述三者的功能,在简化操作的同时,还提供了扩展开发接口。

安装

这里仅介绍Ubuntu的安装方法,其他安装方法见Flake8官网。

  • 添加ppa:cjohnston/flake8。Ubuntu 12.04、12.10和13.04官方源仅提供pep8的包,而该PPA不仅提供了最新的python-flake8包,还提供最新的pep8包。Ubuntu 13.10和14.04默认已经提供最新的pep8和python-flake8,所以可以跳过这一步。
1
2
3
sudo add-apt-repository ppa:likemartinma/python sudo apt-get update sudo apt-get -y --force-yes dist-upgrade
  • 安装python-flake8

1
sudo apt-get install python-flake8 

使用

  • 递归检查当前目录的所有Python文件:

1
flake8 . 
  • 检查指定文件

1
flake8 foo.py bar.py 
  • 通过setup.py检查工程的所有Python文件:

1
python setup.py flake8 

为了保证其在其他环境中正确运行,需要将flake8增加到setup_requires中,例如:

1
2
3
4
5
6
7
8
setup(  name="project",  packages=["project"],   setup_requires=[  "flake8"  ] ) 
  • 由于默认禁用代码条件复杂度检查,需要通过–max-complexity激活该功能:

1
flake8 --max-complexity 12 . 

该功能对于发现代码过度复杂非常有用,根据Thomas J. McCabe, Sr(Cyclomatic complexity的创造者)研究,代码复杂度不宜超过10,而Flake8官网建议值为12。

配置

  • 用户相关的配置存在~/.config/flake8中,如:

1
2
[flake8] max-complexity=12 

个人感觉除了代码复杂度因子(max-complexity)外,其他参数的默认值已经很好,基本不需要再作配置。

  • 工程相关的设置,可以存放在工程顶级目录的tox.ini或setup.cfg,格式与用户相关的配置一致。

与Git整合

在.git/hooks目录中,创建Git的pre-commit钩子脚本,Flake8可以对每次提交的代码进行检查。该脚本如下:

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/python  import sys from flake8.run import git_hook  COMPLEXITY = 12 STRICT = True  if __name__ == '__main__':  sys.exit(git_hook(complexity=COMPLEXITY, strict=STRICT)) 

若strict为True,任何warning都将阻挡提交。否则(或缺省),warning仅会被打印到标准输出。

与vim整合

这里仅介绍vim插件vim-flake8的安装和配置

  • 安装vim插件pathogen:

1
2
3
mkdir -p ~/.vim/autoload ~/.vim/bundle curl -Sso ~/.vim/autoload/pathogen.vim \  https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim 
  • 添加下列配置至~/.vimrc中:

1
2
3
execute pathogen#infect() syntax on filetype plugin indent on 
  • 安装vim-flake8:

1
2
cd ~/.vim/bundle git clone git://github.com/nvie/vim-flake8.git 

至此,当vim打开Python源码后,按F7就会执行Flake8对当前文件进行检查。

插件

Flake8相比pep8的优势在于其良好的扩展性,pep8 1.4.6尚未支持命名规范的检查,却已有人开发Flake8的插件pep8-naming来弥补这个缺陷。

pep8-naming处于早期开发阶段,尚无人为其制作deb包。我花时间做了deb包,并上传到我的ppa:likemartinma/python上。通过下述步骤可以轻松安装它:

1
2
3
4
sudo add-apt-repository ppa:likemartinma/python sudo apt-get update sudo apt-get -y --force-yes dist-upgrade sudo apt-get install pep8-naming 

由于Python部分核心库的函数命令存在“历史遗留”问题,与PEP 8并不保持完全一致,如xml.parsers.expat.xmlparser.StartElementHandler,这给pep8-naming带来一定的误报困扰。

解决的办法是这样的代码行追加 # noqa 的注释,从避免flake8发出类似warning。

存在的问题

由于pep8尚未支持docstring规范的检查,也没有相关Flake8的插件。目前仅能用pep257来完成docstring规范的检查。期待pep257早日衍生成Flake8的插件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194221.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月10日 上午8:43
下一篇 2025年11月10日 上午9:15


相关推荐

  • 软件工程需求分析实验_实验设备管理系统需求分析

    软件工程需求分析实验_实验设备管理系统需求分析一、系统的问题描述1.系统简介每学年要对实验室设备使用情况进行统计、更新。其中:(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。(4)随时对现有设备及其

    2022年10月13日
    4
  • 漂亮的表格样式(使用CSS样式表控制表格样式)

    漂亮的表格样式(使用CSS样式表控制表格样式)

    2021年9月7日
    55
  • python获取图像坐标点[通俗易懂]

    python获取图像坐标点[通俗易懂]importcv2importnumpyasnp#144621、142832、142836、142744、142739、142733、145448、#图片路径img=cv2.imread(‘./data/data/img/RK03AA8U142922_01_145435_ok.jpg’)a=[]b=[]defon_EVENT_LBUTTONDOWN(event,x,y,flags,param):ifevent==cv2.EVENT_LBUT

    2025年10月26日
    5
  • EJB 原理

    EJB 原理EJB 到底是什么 真的那么神秘吗 分类 nbsp JAVA 学习 基础篇 nbsp 2010 08 0221 26 nbsp 1488 人阅读 nbsp 评论 8 nbsp 收藏 nbsp 举报 1 nbsp 我们不禁要问 什么是 服务集群 什么是 企业级开发 nbsp 既然说了 EJB 是为了 服务集群 和 企业级开发 那么 总得说说什么是所谓的 服务集群 和 企业级开发 吧 这个问题其实挺关键的 因为 J2EE 中并没有说明白 也没

    2026年3月16日
    2
  • Cursor基础篇一:入门与基础配置

    Cursor基础篇一:入门与基础配置

    2026年3月16日
    3
  • 关于微信小程序反编译获取源码

    关于微信小程序反编译获取源码记录一下微信小程序如果反编译获取源码需要用到的工具 1 获取 root 权限的安卓手机 或者直接用模拟器 推荐用网易 mumu 模拟器 不推荐用夜神 mumu 模拟器下载地址 http mumu 163 com mac index html2 反编译脚本 当下最流行的脚本是 wxappunpacke 不过目前作者已经删除了 但是很多网友都有存档 电脑需要安装 node js 不过本篇教程不需要任何脚本 不需要 node js 即可实现反编译 第一步 安装 mumu 模拟器 1

    2026年3月20日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号