Есть ли способ заставить декораторов классов работать на Google App Engine , который ограничен Python 2.5
?
Или позвольте мне перефразировать это: можно ли изменить поведение синтаксического анализатора Python из того же процесса, который он уже выполняет? Пример:
good.py:
alter_python_parser()
import bad
bad.py:
@decorated
class Foo(object): pass
Или это просто невозможно.
Объяснение: я хочу использовать стороннюю библиотеку, которая сильно использует декораторы классов, но не хочу его разветвить и поддерживать свою версию. Альтернативой может быть запуск моего кода на Typhoon App Engine
с более новым питоном, но я боюсь, что Google не будет обновлять свою версию Python в течение длительного времени ...
РЕДАКТИРОВАТЬ:
Как насчет создания ловушки импорта нового стиля , которая будет выполнять подстановку строк на лету и загружать модуль из памяти? Это должно быть возможно. Я попробую, если реализации еще нет.
Но как я могу разобрать код Python 2.6+
из Python 2.5
? Есть ли парсер только для Python? Что использует PYPY
?