配置pyflakes与Zope的工作“脚本(蟒蛇)”对象的文件系统
题
当我运行一个Zope文件系统目录查看文件pyflakes(如被发现有很多在Plone)总是返回大量的警告,我的参数和像“语境”的特殊值没有定义,如果它是这将是真实的一个真正的python脚本,但对于一个文件系统目录视图的脚本,它们被魔术注释在顶部定义,例如:
## Python Script "Name"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=foo, bar, baz
##
from AccessControl import getSecurityManager
user = getSecurityManager().getUser()
from Products.PythonScripts.standard import html_quote
request = container.REQUEST
RESPONSE = request.RESPONSE
return foo + bar + baz
时这种蟒的任何地方使用除的Zope?
时,或者可以将其通过pyflakes,pylint的或类似的工具来支持?
解决方案
一个可能的方法中我只是试图是预先处理Zope的fspython脚本,使其是vaild。我已经使用了几个电话到sed的(下图):
#!/bin/bash
sed "s/\(^[^#]\)/ \1/" $1 | \
sed "s/^##bind [a-z]*=\([a-z][a-z]*\)$/import \1/" | \
sed "s/^##parameters=\(.*\)/def foo(\1):/" | pyflakes
这将是很好的与环绕pyflakes,不改变正常的Python脚本Python脚本来替换这一点。
其他提示
没有,那种蟒蛇没有任何地方在Plone使用Zope的除外,而事实上几乎完全时下。和Plone社区远离它移动,因为它有很多缺点,这是其中之一。
Pyflakes不是很配置的,至少不会在形成文件的方式。 pylint的可以被配置为跳过一些错误的信息,但是你需要跳过将是最有用的的那些,所以这可能是没有帮助的任何。
所以,简单的答案是:不,你不能语法检查它们。在另一方面,你不需要重新启动服务器来运行它们,所以语法检查也救不了你那么多的时间,它会随着Zope的世界其他Python代码。
不隶属于 StackOverflow