# --- datamodel.py --- from pickle import load, dump from os.path import join class Loader: PATH = '/tmp/persistent/pso/sessions' def load(self, id): return load(file(join(self.PATH, id))) def save(self, id, obj): dump(obj, file(join(self.PATH, id), 'w')) class Member(dict): IDKEY='memberId' LOADER = Loader() def load(classObj, id, loader=None): if loader is None: loader = classObj.LOADER try: return loader.load(id) except IOError: return load = classmethod(load) def __init__(self, **kwa): dict.__init__(self, kwa) def save(self, loader = None): if loader is None: loader = self.LOADER loader.save(self[self.IDKEY], self) if __name__ =='__main__': import sys id = sys.argv[1] member = Member.load(id) print member member['name']= 'Bond' member.save() secondComming = Member.load(id) print secondComming