def add_item(self, info, id=None): if id is None: id = info.get_id() if self.has_item(id): raise RuntimeError("item '%s' already exist in '%s'" % (id, self)) item = create_instance(info, id) self.__items.append(item) self.__items_dict[id] = item
def _load_instance(typ, node, id): if issubclass(typ, Item): obj = create_instance(typ, id) obj.load(node) else: val = node.get() # XXX if val is None and typ is str: obj = None else: obj = typ(val) return obj