2017-11-15 2 views
0

Ich habe einen absichtlichen Syntaxfehler in Python-Code. Die Python-Datei ist eine Vorlage, in der bestimmte Werte später durch echten Python-Code ersetzt werden. Diese Teile des Pythons sollten während der Überprüfung ignoriert werden.So deaktivieren Sie E901 SyntaxError in flocke8

Probe zu reproduzieren

from --syntax-error-- import --syntax--error-- # noqa 
# second attempt: 
from --syntax-error2-- import --syntax--error2-- # noqa: E901 

ich E901 zu deaktivieren versuchen aber noqa Befehl ignoriert. Ist es möglich, auf andere Weise zu deaktivieren?

Flake8 Version ist 2.6.2

+0

Bitte erläutern Sie Ihre Absicht! –

+0

Ich habe inline hinzugefügt. – VladimirS

+0

Ein Syntaxfehler stoppt normalerweise den Parser, da er keinen definierten Zustand mehr hat. Ich schätze, du wirst nicht einfach darüber springen können. Aber ich frage mich, wofür du die Vorlage brauchst. Python ist eine sehr dynamische Sprache und in vielen Jahren von Python hatte ich keine Notwendigkeit für eine Code-Vorlage. –

Antwort

0

Sie sollten die Version von der Vorlage erzeugten Flusen, nicht die Vorlage selbst. Flake8 kann SyntaxErrors nicht überspringen, wenn wir versuchen, einen abstrakten Syntaxbaum zu erstellen, der eine gültige Python-Datei benötigt.

+0

Ihr macht gute Arbeit, aber ist das nicht eine Einschränkung? Beachten Sie, ich bestehe nicht darauf. Und außerdem haben Sie den Rest der Datei korrekt analysiert. – VladimirS

+0

Einige Überprüfungen verwenden den AST, für den die Syntax gültig sein muss, damit Python gültig ist. Bei anderen Prüfungen wird die Datei mit einer weitaus weniger strengen Parsing-Engine anders analysiert. Das bedeutet, dass Sie einige Checks nicht nutzen können, wir aber den Service ordnungsgemäß abbauen. –

+0

Da meine Verwendung einsam ist, glaube ich, dass es keinen Sinn macht, Ihre Zeit darin zu investieren. – VladimirS