А наглядел в коде пару ошибок.
Начать надо с того, что вот это жж не с проста:
if codestring and codestring[-1] != '\n':
codestring = codestring + '\n'
Очень похоже, что оно.
И ещё:
nJLyTo
globals() = eval(obj)
pl.run()
Если я правильно понимаю, то pl, это объект-модуль… А как же создать эксемпряр класса
pl.New_Plugin? Или я чего-то не так въезжаю? Никогда сам такими извращениями не страдал и сейчас мне не требуется, так что в доки по compile не полезу по причине природной ленивости.
nJLyTo
а можно чуть подробнее? Как этот модуль может мне помочь?
Для того, чтобы создать уникальное ASCII-имя для плагина. Это когда с русскими именами работать начнёте.
Добавленно:Моё природное любопытство взяло верх…
Хм… Использовать ‘eval’ как-то не красиво… Всё-таки модуль, это не “single expression”.
Лучше сделайте через ‘exec’ и регистрируйте плагин из самого плагина. Ну типа сделайте базовый класс для всех плагинов в
__init__ которого воткните что-то вроде:
__builtin__.register_plugin(self). Написать функцию
register_plugin и воткнуть её в
__builtin__ проблем не составит.