Y at-il une manière que je peux faire décorateurs de classe travail sur Google App Engine, qui se limite à Python 2.5
?Décorateurs de classe en Python 2.5?
Ou laissez-moi reformuler: est-il possible de modifier le comportement de l'analyseur de Python à partir du même processus qui est déjà en cours d'exécution? Exemple:
good.py:
alter_python_parser()
import bad
bad.py:
@decorated
class Foo(object): pass
Ou est-ce peut-être juste simplement impossible.
Explication: Je veux utiliser une bibliothèque tierce partie qui utilise beaucoup de décorateurs de classe, et ne veulent pas à la fourchette et maintenir ma propre version. Une alternative serait d'exécuter mon code sur Typhoon App Engine
avec un python plus récent, mais je crains que Google ne sera pas mise à jour leur version de Python pour un temps looooooongues ...
EDIT:
Que diriez-vous de créer un new-style import hook qui ferait la substitution de chaîne à la volée et charger le module de la mémoire? Cela devrait être possible. Je vais essayer, s'il n'y a pas encore de mise en œuvre.
Mais comment puis-je analyser le code Python 2.6+
de Python 2.5
? Y a-t-il un analyseur python seulement? Que utilise PYPY
?
Je sais que c'est que le sucre syntaxique. Mais je ne veux pas maintenir des changements massifs au code qui fonctionne déjà. Donc, 'ast' aiderait probablement. S'il y aurait une implémentation Python du module '_ast', je pourrais peut-être le faire à la volée avec un hook d'import ... –
Cela ne fonctionnera qu'avec le module ast au dessus de la version 2.6. Je doute que tu sois capable de le faire à la volée. –
D'accord; Je vais essayer. –