Code Duplication    Length = 17-17 lines in 2 locations

src/ocrd_models/ocrd_page_generateds.py 2 locations

@@ 10917-10933 (lines=17) @@
10914
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
10915
            self.buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
10916
        return self
10917
    def buildAttributes(self, node, attrs, already_processed):
10918
        value = find_attr_value_('name', node)
10919
        if value is not None and 'name' not in already_processed:
10920
            already_processed.add('name')
10921
            self.name = value
10922
        value = find_attr_value_('description', node)
10923
        if value is not None and 'description' not in already_processed:
10924
            already_processed.add('description')
10925
            self.description = value
10926
        value = find_attr_value_('type', node)
10927
        if value is not None and 'type' not in already_processed:
10928
            already_processed.add('type')
10929
            self.type_ = value
10930
        value = find_attr_value_('value', node)
10931
        if value is not None and 'value' not in already_processed:
10932
            already_processed.add('value')
10933
            self.value = value
10934
    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
10935
        pass
10936
    def __hash__(self):
@@ 8497-8513 (lines=17) @@
8494
            nodeName_ = Tag_pattern_.match(child.tag).groups()[-1]
8495
            self.buildChildren(child, node, nodeName_, gds_collector_=gds_collector_)
8496
        return self
8497
    def buildAttributes(self, node, attrs, already_processed):
8498
        value = find_attr_value_('id', node)
8499
        if value is not None and 'id' not in already_processed:
8500
            already_processed.add('id')
8501
            self.id = value
8502
        value = find_attr_value_('type', node)
8503
        if value is not None and 'type' not in already_processed:
8504
            already_processed.add('type')
8505
            self.type_ = value
8506
        value = find_attr_value_('custom', node)
8507
        if value is not None and 'custom' not in already_processed:
8508
            already_processed.add('custom')
8509
            self.custom = value
8510
        value = find_attr_value_('comments', node)
8511
        if value is not None and 'comments' not in already_processed:
8512
            already_processed.add('comments')
8513
            self.comments = value
8514
    def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None):
8515
        if nodeName_ == 'Labels':
8516
            obj_ = LabelsType.factory(parent_object_=self)