Konfigurieren Pyflakes mit Zopes „Script (Python)“ Objekte im Dateisystem arbeiten

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

  •  10-07-2019
  •  | 
  •  

Frage

Wenn ich laufe Pyflakes auf einer Zope-Dateisystem Verzeichnisansicht Datei (wie es viele in plone gefunden) es gibt immer viele Warnungen, die meine Parameter und spezielle Werte wie ‚Kontext‘ sind nicht definiert, was wahr wäre, wäre es ein echter python-Skript, aber für ein Filesystem-Verzeichnis Script ansehen, sie durch Magie Kommentare an der Spitze definiert werden, zum Beispiel:

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

Ist diese Art von Python überall außer Zope verwendet?

Ist es oder kann es durch Pyflakes, Pylint oder ähnliche Werkzeuge unterstützt werden?

War es hilfreich?

Lösung

Ein möglicher Ansatz, den ich nur versucht, vorverarbeitet, das Zope fspython Skript so dass es vaild ist. Ich habe ein paar Anrufe verwendet sed (unten):

#!/bin/bash
sed "s/\(^[^#]\)/  \1/" $1 | \
sed "s/^##bind [a-z]*=\([a-z][a-z]*\)$/import \1/" | \
sed "s/^##parameters=\(.*\)/def foo(\1):/" | pyflakes

Es wäre gut, dies mit einem Python-Skript zu ersetzen, die Pyflakes umschlingt und verändert nicht normalen Python-Skripte.

Andere Tipps

Nein, diese Art von Python ist nicht überall außer Zope, und in der Tat fast ausschließlich in Plone heutzutage verwendet. Und die Plone-Community bewegt weg von ihm, weil es viele Nachteile hat, dies ist einer von ihnen.

Pyflakes ist nicht sehr konfigurierbar, zumindest nicht in einer dokumentierten Weise. Pylint kann so konfiguriert werden einige Fehlermeldungen zu überspringen, aber diejenigen, müssen Sie diejenigen überspringen wäre, die am nützlichsten sind, so dass wahrscheinlich nicht hilfreich entweder ist.

So die kurze Antwort lautet: Nein kann man sich nicht Syntax überprüfen. Auf der anderen Seite müssen Sie nicht den Server neu starten, um sie auszuführen, so dass die Syntaxprüfung werden Sie nicht sparen so viel Zeit, die es mit anderen Python-Code in der Zope-Welt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top