检查hasatt,这在plone项目中被认为是有害的。
flake8-plone-hasattr的Python项目详细描述
flake8 plone hasatt插件
python标准hasattr被认为是有害的(在plone项目中)。
hasattr的(隐藏的)问题是它会接受异常, 在你正常的商业逻辑中,你真的不想这么做。
特别是在plone上下文中,这可能意味着吞咽数据库错误, 或权限异常等。
以下面的代码为例:
>>>classFoo(object):...@property...defmy_attr(self):...raiseValueError('nope, nope, nope')...>>>bar=Foo()>>>bar.my_attrTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"<stdin>",line4,inmy_attrValueError:nope,nope,nope>>>hasattr(Foo,'my_attr')True>>>hasattr(bar,'my_attr')False>>>getattr(bar,'my_attr',None)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"<stdin>",line4,inmy_attrValueError:nope,nope,nope
此插件基于plone.recipe.codeanalysis中的python检查器。
安装
使用pip安装:
$ pip install flake8-plone-hasattr
要求
- Python2.7、3.3、3.4
- 薄片8
许可证
GPL 2.0
更改日志
0.2.post0(2017-05-31)
- 松开万向轮 [gforcada]
0.2(2017-05-31)
- 添加了对SubmiteText(stdin/filename处理)的支持 [IHAM]
0.1(2015-09-15)
- 初次发行 [gforcada]
- 创建flake8插件本身。 [gforcada]