J'ai un problème avec Python (2.7) - J'ai un projet cookiecutter qui demande une entrée (via CLI) et génère mon projet basé sur cette entrée.Problèmes avec catch eval() SyntaxError using cookiecutter
Un de mes champs est une description, et je l'ai vu que l'ajout de guillemets dans, à savoir « Bonjour ceci est « ma » description » provoquera une erreur de syntaxe quand je passe à travers eval:
File "/var/folders/4b/gzszrl3d5fn1q7vvv05s63vmf014cj/T/tmpnJWgqK.py", line 53
parameters = eval("{u'description': u'Hello this is "my" description'}")
SyntaxError: invalid syntax
ERROR: Stopping generation because pre_gen_project hook script didn't exit successfully
la section de l'exécution du code est ce:
try:
parameters = eval("{{ cookiecutter }}")
except:
print('An error occurred!')
sys.exit(1)
Mon problème est le code entre la clause ne except
, donc je n'ai aucune chance de sortir avec élégance.
Y at-il un moyen de mieux gérer cela?
P.S. Je sais que je peux désinfecter l'entrée en utilisant des filtres Jinja2, mais je cherche une solution qui me permet de gérer une erreur sans modifier l'entrée.
Cela n'atteindra pas la except car il est un sens 'SyntaxError' que l'erreur se trouve lors de l'analyse, qui se produit avant d'exécuter votre code. Donc, vous devez vous débarrasser de tout 'SyntaxError's pour votre sauf pour travailler. –