编程语言
首页 > 编程语言> > 配置pyflakes以与文件系统上的Zope的“脚本(python)”对象一起使用

配置pyflakes以与文件系统上的Zope的“脚本(python)”对象一起使用

作者:互联网

当我在Zope文件系统目录视图文件上运行pyflakes(在plone中经常发现)时,它总是返回很多警告,提示我的参数和特殊值(例如“ context”)未定义,如果它是真实的python,则为true脚本,但是对于文件系统目录视图脚本,它们由顶部的魔术注释定义,例如:

## 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以外,是否在其他任何地方使用这种python?

是,还是可以由pyflakes,pylint或类似工具支持?

解决方法:

我刚刚尝试过的一种可能方法是对zope fspython脚本进行预处理,以使其有效.我使用了几个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脚本.

标签:zope,python
来源: https://codeday.me/bug/20191210/2102796.html