X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/7231c2b5e9364aefd27a0bc8a1033de90bb3d878..bd97f61d25eb0c3e51a29286c7de509146eceb37:/src/librarian/document.py diff --git a/src/librarian/document.py b/src/librarian/document.py index ea8a47a..6cdf191 100644 --- a/src/librarian/document.py +++ b/src/librarian/document.py @@ -40,9 +40,9 @@ class WLDocument: def build(self, builder, base_url=None, **kwargs): return builder(base_url=base_url).build(self, **kwargs) - def assign_ids(self): + def assign_ids(self, existing=None): # Find all existing IDs. - existing = set() + existing = existing or set() que = [self.tree.getroot()] while que: item = que.pop(0) @@ -101,7 +101,10 @@ class WLDocument: def _compat_assigns_section_ids_in_elem(elem, prefix='sec'): for i, child in enumerate(elem): idfier = '{}{}'.format(prefix, i + 1) - child.attrib['_compat_section_id'] = idfier + try: + child.attrib['_compat_section_id'] = idfier + except: + pass _compat_assigns_section_ids_in_elem(child, idfier + '-') _compat_assigns_section_ids_in_elem(self.tree.getroot().master) @@ -115,3 +118,5 @@ class WLDocument: persons.remove(None) return persons + def references(self): + return self.tree.findall('.//ref')