Есть ли способ, что я могу сделать декораторов класса работы на Google App Engine, который ограничен Python 2.5
?Декораторы класса в Python 2.5?
Или позвольте мне перефразировать это: возможно ли изменить поведение парсера Python из того же самого процесса, который уже выполняется? Пример:
good.py:
alter_python_parser()
import bad
bad.py:
@decorated
class Foo(object): pass
Или это может быть просто явно невозможно.
Пояснение: Я хочу использовать стороннюю библиотеку, которая в значительной степени использует декораторы классов и не хочет ее разворачивать и поддерживать мою собственную версию. В качестве альтернативы можно запустить свой код на Typhoon App Engine
с новым питоном, но я боюсь, Google не будет обновлять свою версию Python для займут слишком много времени ...
EDIT:
Как о создании new-style import hook, который будет выполнять замену строки «на лету» и загрузить модуль из памяти? Это должно быть возможно. Я попробую, если там уже нет реализации.
Но как я могу разобрать Python 2.6+
код от Python 2.5
? Есть ли только синтаксический анализатор на основе python? Что делает PYPY
?
Я знаю, что это только синтаксический сахар. Но я не хочу поддерживать массовые изменения кода, который уже работает. Таким образом, `ast`, вероятно, поможет. Если бы была реализация Python модуля `_ast`, я мог бы сделать это« на лету »с помощью импортного крючка ... – 2010-11-29 20:28:08