Как сериализовать объекты API Atom без потери "соединений"

Я использую основанный на Atom графический интерфейс Enaml, и я хотел бы сохранить / загрузить объекты Atom на / с диска.

Я пытался использовать рассол, но я теряю связь с графическим интерфейсом.

from atom.api import Atom, Unicode
import pickle

class test(Atom):
     name = Unicode

     def save(self)
          f = open('tester.p','w')
          pickle.dump(self.name,f)
          f.close()

     def load(self):
          f = open('tester.p','r')
          self.name = pickle(f)  # gui is not updated
          #self.name = 'this one works' #gui is updated
          f.close()

Как я могу сериализовать объекты Atom без потери графического интерфейса?

Изменить: я обнаружил, что если я делаю self.name = str(pickle(f)), я могу получить строку без потери соединений. Как я могу распространить эту идею на что-то более обобщаемое, например на словарь с произвольными объектами Atom?

1 ответ

Решение

Посмотрите этот вопрос и ответ на стекопоток, чтобы узнать, как использовать setattr для поддержания работоспособности механизма обновления Atom.

Другие вопросы по тегам