def upgrade_languages(root, data): langs = XPath('./opf:metadata/dc:language')(root) if langs: for lang in langs: lang.attrib.clear() else: # EPUB spec says dc:language is required metadata = XPath('./opf:metadata')(root)[0] l = metadata.makeelement(DC('language')) l.text = 'und' metadata.append(l)
def remove_invalid_attrs_in_dc_metadata(root, data): for tag in XPath('//*[namespace-uri() = "{}"]'.format(DC('')[1:-1]))(root): for k in tuple(tag.attrib): if k != 'id': del tag.attrib[k]