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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gamma校正什么意思_串联滞后校正对系统性能的影响

    gamma校正什么意思_串联滞后校正对系统性能的影响【Gamma的由来】首先,要区分照度和亮度,照度是一个客观的量,亮度是一个主观的量,不同的人看相同照度的物体所感受到的亮度是不一样的。对于照度线性变化的物体,人眼感受到的亮度不是线性的。人眼对于低照度的物体更敏感,这意味着对于照度为2、3、4的三个物体,人眼能够区分,而对于照度为222、223、224的三个物体,人眼不能区分。其次,我们存储颜色的空间是有限的,常用的RGBA32格式,每个颜色通道只有8位,最多能表示256种照度,而现实世界中的照度远超256。基于人眼对照度的感知特点,我们不能线性的去

    2022年9月22日
    0
  • PySpark-prophet预测

    PySpark-prophet预测简介Prophet是facebook开源时间序列预测工具,使用时间序列分解与机器学习拟合的方法进行建模预测。关于prophet模型优点我不打算说,网络上的文章非常多,各种可视化,和参数的解释与demo演示。但是在正在用到工业上大规模的可供学习的中文材料并不多。本文打算使用pyspark进行多序列预测建模,会给出一个比较详细的脚本,供交流学习,重点在于使用hive数据/分布式,以及中间数据预处理,以及pandas_udf对多条序列进行循环执行。背景说明,在十万级别的sku序列上使用prophet预测每

    2022年6月20日
    45
  • 武侠世界大拯救(金庸小说是一个世界观吗)

    2018年10月30日晚,成都地铁一号线,Jerry手机app上突然弹出来一条金庸去世的新闻。Jerry识字很早,小学一年级就开始蹭我父亲的《射雕英雄传》看了。小时候,我爸工作的车间里有一位领导,退休后把自己家的一个房间腾出来,满满两个落地书架摆满了各种武侠小说。每逢寒暑假,Jerry的父亲就会带着我去那里租小说回家看,一本书一天的租金是一角钱。Jerry至今都要感激我的父母,在我小的时候,没有…

    2022年4月17日
    103
  • SpringMVC 处理器适配器详解[通俗易懂]

    SpringMVC 处理器适配器详解[通俗易懂]0x00:介绍处理器适配器HandlerAdapter:作用是根据映射器找到的处理器Handler信息,按照特定的规则去执行相关的处理器Handler。其配置方式有两种,一种是基于xml的资源配置,也就是非注解的配置方式。另外一种就是基于Annotation注解的配置。其注解在代码中做上特殊标记,这些标记就可以编译、类加载、运行时被读取,然后去执行相应的处理。0x01:…

    2022年6月8日
    62
  • bt3使用_手机怎么下载视频到u盘上

    bt3使用_手机怎么下载视频到u盘上BT3U盘版下载软件类型:国产软件授权方式:免费软件界面语言:简体中文软件大小:783M文件类型:.iso运行环境:Win2003,WinXP,Win2000,Win9X软件等级:★★★★★发布时间:2010-12-26官方网址:http://www.backtrack-linux.org演示网址:http://www.backtrack-linux.org下载次数:

    2022年10月1日
    0
  • 操作系统中常用的进程调度算法有_调度算法有哪些

    操作系统中常用的进程调度算法有_调度算法有哪些1、先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直

    2022年9月29日
    0

发表回复

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

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