2009-06-24 2 views
3

Когда я запускаю pyflakes в файле представления каталога Zope File System View (как много найдено в plone), он всегда возвращает много предупреждений о том, что мои параметры и специальные ценности, как «контекста» не определены, что было бы справедливо, если бы она была реальной питон скрипт, но для Filesystem каталогов Просмотреть сценарий, они определяются магическими комментариями в верхней части, например:Настроить pyflakes для работы с объектами Zapp's script (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 или аналогичными инструментами?

ответ

2

Возможный подход, который я только что пробовал, - предварительно обработать скрипт zope fspython, чтобы он был vaild. Я использовал несколько звонков, чтобы СЭД (ниже):

#!/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.

+0

Интересный подход. Удивительно, как мы всегда заканчиваем сценарии bash и gnu utils для многих «неразрешимых» проблем ... –

1

Нет, этот вид питона не используется нигде, кроме Zope, и фактически почти исключительно в Plone в настоящее время. И сообщество Plone отходит от него, потому что оно имеет много недостатков, это один из них.

Pyflakes не очень настраивается, по крайней мере, не документированным способом. Pylint может быть настроен для пропуска некоторых сообщений об ошибках, но те, которые вам нужно пропустить, будут теми, которые наиболее полезны, так что, вероятно, это тоже не полезно.

Итак, короткий ответ: Нет, вы не можете синтаксис проверить их. С другой стороны, вам не нужно перезапускать сервер для их запуска, поэтому проверка синтаксиса не будет экономить вас столько времени, что и с другим кодом Python в мире Zope.

 Смежные вопросы

  • Нет связанных вопросов^_^