¿Hay alguna manera de hacer que decoradores de clase trabajo sobre Google App Engine, que se limita a Python 2.5
?Decoradores de clase en Python 2.5?
O permítanme reformular eso: ¿es posible alterar el comportamiento del analizador de Python del mismo proceso que ya se está ejecutando? Ejemplo:
good.py:
alter_python_parser()
import bad
bad.py:
@decorated
class Foo(object): pass
O se trata tal vez sólo claramente imposible.
Explicación: Deseo utilizar una biblioteca de terceros que utilice decoradores de clase en gran medida, y no quiero bifurcarla y mantener mi propia versión. Una alternativa sería la de ejecutar el código en Typhoon App Engine
con un pitón más nuevo, pero me temo que Google no va a actualizar su versión de Python para muuuucho tiempo ...
EDIT:
¿Qué hay de la creación de una new-style import hook que haría la sustitución de cadenas sobre la marcha y cargar el módulo de la memoria? Eso debería ser posible. Lo intentaré, si no hay implementación ya disponible.
Pero, ¿cómo puedo analizar el código Python 2.6+
desde Python 2.5
? ¿Hay un analizador solo de Python? ¿Qué usa PYPY
?
Sé que es solo azúcar sintáctica. Pero no quiero mantener cambios masivos en el código que ya funciona. Por lo tanto, 'ast' probablemente sea útil. Si hubiera una implementación de Python del módulo '_ast', podría hacerlo sobre la marcha con un gancho de importación ... –
Solo funcionará con el módulo ast anterior a la versión 2.6. Dudo que puedas hacerlo sobre la marcha. –
Bien; Aunque lo intentaré. –