弗林特,一个fortran代码过滤器

flinter的Python项目详细描述


燧石

Flint是fortran编程语言的源代码静态分析器和质量检查器。它打算遵循OMS Documentation Wiki page提到的编码约定

存在许多Fortran Linter软件,与侏儒flint相比,它们是充满智慧的巨人。Flint的目标是为持续集成提供一个免费的、快速安装的(很快就可以定制)linter。在

安装

从Python包索引“Flinter”安装Flint(因为Flint已经被取了=\

>pip install flinter

使用

FLint为当前实现的命令提供了一个CLI。在

^{pr2}$

格式化分数

要获得与编码约定相关的分数(最高0.2,唯一实施的约定是巨型大学惯例):

> flint fmt awesomecode.f90

 File NUMERICS/clip.f90

5:22:Missing space after ponctuation :
|SUBROUTINE clip ( neq,neqs,nnode,w_spec,w )
|                      ^
|SUBROUTINE clip ( neq, neqs, nnode, w_spec, w )

(...)

41:15:Missing space after ponctuation :
|      w_spec(k,n) = rho * Ymas
|               ^
|      w_spec(k, n) = rho * Ymas



 Broken rules:
--------------------------------------------------
Missing space after ponctuation : 11
Types should be lowercased : 5
Missing spaces around "=" : 2


 Score on 35 lines:
--------------------------------------------------
Your code has been rated at 4.86/10

PEP008得分

这个分数违反了从pep008获取的一些规则,以确保可读性和可维护性。在

>flint pep8 awesomecode.f90

  invalid-name : local var n is too short
   invalid-name : local var k is too short
   invalid-name : argument w is too short


 Broken rules:
--------------------------------------------------
invalid-name  : 3


 Score on 18 lines:
--------------------------------------------------
Your code has been rated at 1.67/10

所有文件得分

在文件夹上迭代时,求fmtpep8得分的平均值。在

>flint all-files ./AWESOME_FOLDER

133 Files parsed.


 Broken rules:
--------------------------------------------------
Missing space after ponctuation : 6804
Types should be lowercased : 1786
Missing spaces around operator : 542
Missing space before operator : 566
Missing space after operator : 545
Missing spaces around "=" : 1367
too-many-lines  : 68
too-many-arguments  : 99
invalid-name  : 361
too-many-locals  : 56
Line length > 132 characters : 141
line-too-long  : 256
Missing spaces : 23
too-many-levels  : 3
Useless ";" at end of line : 15
Missing space after separator : 1
Missing space before parenthesis : 4
Exactly one space after comment : 12
At least one space before comment : 1


 Score on 19202 lines:
--------------------------------------------------
Your code has been rated at 1.66/10

评分公式

分数公式取自pylint:

rate=10-(float(errors_nb*5+warnings_nb)/lines_nb)*10

fmt错误视为警告,pep8错误视为错误。在

局限性

Flint目前只使用一个约定。下一个版本将允许自定义约定(错误。。当然在一定程度上)

确认

Flint是在EXCELLERAT Center Of Excellence创建的服务,由欧洲共同体资助。 logo

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何读取、验证和移动数据。csv文件?   用于在线蛇游戏的java解析scaing   java JavaFX:在窗口上移动元素(阶段)调整大小   mysql如何使用java中的IOUtils包在jsp中显示多个图像?   Java dateFormat不可解析日期异常   spring mvc java。执行单元测试时lang.AssertionError   java在一个webapp中运行多个调度器有什么问题吗?   JAVAlang.ArrayIndexOutofBounds异常:1未来。get()多线程   java使用MDC或spring boot中的任何过滤器屏蔽日志消息中的密码,而不使用logback。xml文件   与应用服务器的java AJP和SSL通信   java Hibernate更新列表中的特定对象   Java小程序:使用keylistener移动多边形   java访问是一个独立于MainActivity的进程   来自服务器的java重复密钥或完整性约束冲突消息:“列“volume”不能为null”   java是否有任何方法可以确保在Flink on job cancel with savepoint上通知所有检查点侦听器检查点完成?