2009-06-24 46 views
3

當我在Zope文件系統目錄視圖文件上運行pyflakes(就像在plone中發現的那樣)時,它總是返回很多警告,我的參數和特殊將pyflakes配置爲在文件系統上使用Zope的「腳本(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 

是:像「語境」沒有定義,如果它是一個真正的python腳本,但對於一個文件系統目錄視圖的腳本,它們被魔術註釋在頂部定義,例如這將是真正的價值這種Python除Zope之外的任何地方使用?

這是,還是可以由pyflakes,pylint或類似工具支持?

回答

2

我剛剛嘗試的一種可能的方法是預處理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腳本來代替此。

+0

有趣的方法。令人驚訝的是,我們總是以bash腳本和gnu utils結束了很多「無法解決」的問題。 – 2011-04-25 22:52:06

1

不,這種python除Zope外沒有其他用途,實際上現在幾乎全部用於Plone。而Plone社區正在擺脫它,因爲它有許多缺點,這就是其中之一。

Pyflakes不是非常可配置的,至少不是以文檔方式。 Pylint可以配置爲跳過一些錯誤消息,但是你需要跳過的錯誤消息將是最有用的,所以這可能也沒有幫助。

所以簡短的回答是:不,你不能語法檢查它們。另一方面,您不需要重新啓動服務器來運行它們,因此語法檢查不會爲您節省很多時間,這與Zope世界中的其他Python代碼會有所不同。

相關問題