弗林特,一个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
所有文件得分
在文件夹上迭代时,求fmt
和pep8
得分的平均值。在
>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创建的服务,由欧洲共同体资助。
- 项目
标签: