파일 시스템에서 Zope의 "스크립트 (Python)"객체와 함께 작동하도록 Pyflakes 구성

StackOverflow https://stackoverflow.com/questions/1038863

  •  10-07-2019
  •  | 
  •  

문제

Zope FileSystem 디렉토리보기 파일에서 pyflakes를 실행할 때 (Plone에서 많이 발견되는 것처럼) 항상 '컨텍스트'와 같은 내 매개 변수와 특수 값이 정의되지 않았다는 많은 경고를 반환합니다. 스크립트이지만 파일 시스템 디렉토리보기 스크립트의 경우 예를 들어 맨 위에 마법의 주석으로 정의됩니다.

## 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

이것을 Pyflake 주위를 감싸고 일반적인 Python 스크립트를 바꾸지 않는 Python 스크립트로 교체하는 것이 좋습니다.

다른 팁

아니요, 그런 종류의 파이썬은 Zope를 제외한 어느 곳에서나 사용되지 않으며 실제로는 거의 독점적으로 Plone에 사용됩니다. 그리고 Plone Community는 많은 단점이 있기 때문에 멀어지고 있습니다.

Pyflakes는 적어도 문서화되지 않은 방식으로 구성 가능하지 않습니다. Pylint는 일부 오류 메시지를 건너 뛰도록 구성 할 수 있지만 건너 뛰는 데 필요한 메시지는 가장 유용한 메시지이므로 도움이되지 않을 것입니다.

짧은 대답은 다음과 같습니다. 아니요 구문을 확인할 수 없습니다. 반면에 서버를 실행하기 위해 서버를 다시 시작할 필요는 없으므로 구문 검사를 통해 Zope 세계의 다른 Python 코드와 함께 많은 시간을 절약하지 못합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top