+def fix_tables(doc):
+ for kol in doc.iter(tag='kol'):
+ if kol.tail is not None:
+ if not kol.tail.strip():
+ kol.tail = None
+ for table in chain(doc.iter(tag='tabela'), doc.iter(tag='tabelka')):
+ if table.get('ramka') == '1' or table.get('ramki') == '1':
+ table.set('_format', '|' + 'X|' * len(table[0]))
+ else:
+ table.set('_format', 'X' * len(table[0]))
+
+
+def mark_subauthors(doc):
+ root_author = ', '.join(elem.text for elem in doc.findall('./' + RDFNS('RDF') + '//' + DCNS('creator_parsed')))
+ last_author = None
+ # jeśli autor jest inny niż autor całości i niż poprzedni autor
+ # to wstawiamy jakiś znacznik w rdf?
+ for subutwor in doc.xpath('/utwor/utwor'):
+ author = ', '.join(elem.text for elem in subutwor.findall('.//' + DCNS('creator_parsed')))
+ if author not in (last_author, root_author):
+ subutwor.find('.//' + RDFNS('RDF')).append(etree.Element('use_subauthor'))
+ last_author = author
+
+