def encode(node, obj, errs): if node and obj: try: # FIXME: this doesn't look pretty classnode = xmlext.newNode(node, tag) obj.encode(classnode, errs) xmlext.addNode(node, '', classnode) except Error: if req == mandatory: # note: we can receive an error if obj has no content errs.append(_('Object cannot be encoded.')) else: if req == mandatory: errs.append(_('Mandatory argument not available.'))
def decode(node, errs, where): l = [] nodes = xmlext.getAllNodes(node, path) # print node, tag + '/' + comp_tag, nodes if len(nodes) == 0 and req == mandatory: errs.append(where + ': ' + _('Mandatory list "{0}" under "{1}" node is empty.' ).format(path, node.name())) ix = 1 for node in nodes: dummy = xmlext.newNode(node, "Dummy") xmlext.addNode(dummy, '', node) l.append( decode_item(dummy, errs, where + str("[{}]".format(ix)))) ix += 1 return l
def add(self, repo_name, repo_url, repo_type="remote"): repo_doc = self._get_doc() repo_node = xmlext.addNode(repo_doc, "Repo") xmlext.addText(repo_node, "Name", repo_name) xmlext.addText(repo_node, "Url", repo_url) xmlext.addText(repo_node, "Status", "active") xmlext.addText(repo_node, "Media", repo_type) self._update(repo_doc)
def encode(node, l, errs): if l: for item in l: if list_tagpath: listnode = xmlext.addNode(node, list_tagpath, branch=False) else: listnode = node encode_item(listnode, item, errs) # encode_item(node, item, errs) else: if req is mandatory: errs.append( _('Mandatory list "{0}" under "{1}" node is empty.'). format(path, node.name()))
def encode(self, node, errs): assert self.tag != '' for key in list(self.keys()): newnode = xmlext.addNode(node, self.tag) xmlext.setNodeAttribute(newnode, 'xml:lang', key) xmlext.addText(newnode, '', self[key])