def _addTags(service, user, item, tagList): i = TagItem.get_by(type_id=service, item_id=item) if not i: i = TagItem(type_id=service, item_id=item) if not isinstance(tagList, list) or len(tagList) == 0: raise TypeError, "Need a list of tags" for t in i.tags: if t.name not in set(tagList): t = Tag.get_by(name=tag) if not t: t = Tag(name=tag) i.tags.append(t)