当我运行一个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代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top