def make_persistent(value): """Counterpart to make_serializable(). Recursively turns all dicts and lists into PersistentMappings respectively PersistentLists. """ if isinstance(value, dict): retval = PersistentMapping() retval.update(value) elif isinstance(value, list): retval = PersistentList() for item in value: retval.append(item) else: retval = value return retval
def make_persistent(data): if isinstance(data, dict): new = PersistentMapping() for key, value in data.items(): new[make_persistent(key)] = make_persistent(value) return new elif isinstance(data, list): new = PersistentList() for value in data: new.append(make_persistent(value)) return new else: return data