diff --git a/Makefile b/Makefile index 79081f312..86a6d1363 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,7 @@ generate-page: repo/assets generateDS \ -f \ --root-element='PcGts' \ + --user-methods='ocrd_models/ocrd_page_user_methods.py' \ -o ocrd_models/ocrd_models/ocrd_page_generateds.py \ repo/assets/data/schema/data/$(PAGE_VERSION).xsd diff --git a/ocrd_models/ocrd_models/ocrd_page_generateds.py b/ocrd_models/ocrd_models/ocrd_page_generateds.py index 63cbf36d4..c6339957d 100644 --- a/ocrd_models/ocrd_models/ocrd_page_generateds.py +++ b/ocrd_models/ocrd_models/ocrd_page_generateds.py @@ -2,19 +2,20 @@ # -*- coding: utf-8 -*- # -# Generated Thu Feb 13 16:47:27 2020 by generateDS.py version 2.35.13. +# Generated Wed Feb 19 17:32:09 2020 by generateDS.py version 2.35.13. # Python 3.6.6 (default, Jul 24 2018, 16:39:20) [GCC 4.9.2] # # Command line options: # ('-f', '') # ('--root-element', 'PcGts') +# ('--user-methods', 'ocrd_models/ocrd_page_user_methods.py') # ('-o', 'ocrd_models/ocrd_models/ocrd_page_generateds.py') # # Command line arguments: # repo/assets/data/schema/data/2019.xsd # # Command line: -# /data/monorepo/venv3.6/bin/generateDS -f --root-element="PcGts" -o "ocrd_models/ocrd_models/ocrd_page_generateds.py" repo/assets/data/schema/data/2019.xsd +# /data/monorepo/venv3.6/bin/generateDS -f --root-element="PcGts" --user-methods="ocrd_models/ocrd_page_user_methods.py" -o "ocrd_models/ocrd_models/ocrd_page_generateds.py" repo/assets/data/schema/data/2019.xsd # # Current working directory (os.getcwd()): # core @@ -1088,6 +1089,11 @@ class underlineStyleType(Enum): class PcGtsType(GeneratedsSuper): __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('pcGtsId', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('Metadata', 'MetadataType', 0, 0, {'name': 'Metadata', 'type': 'MetadataType'}, None), + MemberSpec_('Page', 'PageType', 0, 0, {'name': 'Page', 'type': 'PageType'}, None), + ] subclass = None superclass = None def __init__(self, pcGtsId=None, Metadata=None, Page=None, gds_collector_=None, **kwargs_): @@ -1202,12 +1208,23 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Page = obj_ obj_.original_tagname_ = 'Page' + def __hash__(self): + return hash(self.id) # end class PcGtsType class MetadataType(GeneratedsSuper): """External reference of any kind""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('externalRef', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('Creator', 'string', 0, 0, {'name': 'Creator', 'type': 'string'}, None), + MemberSpec_('Created', 'dateTime', 0, 0, {'name': 'Created', 'type': 'dateTime'}, None), + MemberSpec_('LastChange', 'dateTime', 0, 0, {'name': 'LastChange', 'type': 'dateTime'}, None), + MemberSpec_('Comments', 'string', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'Comments', 'type': 'string'}, None), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('MetadataItem', 'MetadataItemType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'MetadataItem', 'type': 'MetadataItemType'}, None), + ] subclass = None superclass = None def __init__(self, externalRef=None, Creator=None, Created=None, LastChange=None, Comments=None, UserDefined=None, MetadataItem=None, gds_collector_=None, **kwargs_): @@ -1405,6 +1422,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.MetadataItem.append(obj_) obj_.original_tagname_ = 'MetadataItem' + def __hash__(self): + return hash(self.id) # end class MetadataType @@ -1413,6 +1432,13 @@ class MetadataItemType(GeneratedsSuper): E.g. imagePhotometricInterpretation E.g. RGB""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('type_', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('name', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('value', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('date', 'dateTime', 0, 1, {'use': 'optional'}), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + ] subclass = None superclass = None def __init__(self, type_=None, name=None, value=None, date=None, Labels=None, gds_collector_=None, **kwargs_): @@ -1566,6 +1592,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Labels.append(obj_) obj_.original_tagname_ = 'Labels' + def __hash__(self): + return hash(self.id) # end class MetadataItemType @@ -1575,6 +1603,13 @@ class LabelsType(GeneratedsSuper): (to be used as subject or object of an RDF triple) Prefix for all labels (e.g. first part of an URI)""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('externalModel', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('externalId', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('prefix', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('Label', 'LabelType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Label', 'type': 'LabelType'}, None), + ] subclass = None superclass = None def __init__(self, externalModel=None, externalId=None, prefix=None, comments=None, Label=None, gds_collector_=None, **kwargs_): @@ -1722,6 +1757,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Label.append(obj_) obj_.original_tagname_ = 'Label' + def __hash__(self): + return hash(self.id) # end class LabelsType @@ -1734,6 +1771,11 @@ class LabelType(GeneratedsSuper): (e.g. 'YYYY-mm-dd' for a date label). Can be used as predicate of an RDF triple.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('value', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('type_', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, value=None, type_=None, comments=None, gds_collector_=None, **kwargs_): @@ -1842,6 +1884,8 @@ def buildAttributes(self, node, attrs, already_processed): self.comments = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class LabelType @@ -1880,6 +1924,48 @@ class PageType(GeneratedsSuper): (lower-level definitions override the page-level definition). Confidence value for whole page (between 0 and 1)""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('imageFilename', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('imageWidth', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('imageHeight', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('imageXResolution', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('imageYResolution', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('imageResolutionUnit', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:PageTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('primaryLanguage', 'pc:LanguageSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('secondaryLanguage', 'pc:LanguageSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('primaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('secondaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('readingDirection', 'pc:ReadingDirectionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('textLineOrder', 'pc:TextLineOrderSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('conf', 'pc:ConfSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('AlternativeImage', 'AlternativeImageType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'AlternativeImage', 'type': 'AlternativeImageType'}, None), + MemberSpec_('Border', 'BorderType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'Border', 'type': 'BorderType'}, None), + MemberSpec_('PrintSpace', 'PrintSpaceType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'PrintSpace', 'type': 'PrintSpaceType'}, None), + MemberSpec_('ReadingOrder', 'ReadingOrderType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'ReadingOrder', 'type': 'ReadingOrderType'}, None), + MemberSpec_('Layers', 'LayersType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'Layers', 'type': 'LayersType'}, None), + MemberSpec_('Relations', 'RelationsType', 0, 1, {'minOccurs': '0', 'name': 'Relations', 'type': 'RelationsType'}, None), + MemberSpec_('TextStyle', 'TextStyleType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'TextStyle', 'type': 'TextStyleType'}, None), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('TextRegion', 'TextRegionType', 1, 1, {'name': 'TextRegion', 'type': 'TextRegionType'}, 1), + MemberSpec_('ImageRegion', 'ImageRegionType', 1, 1, {'name': 'ImageRegion', 'type': 'ImageRegionType'}, 1), + MemberSpec_('LineDrawingRegion', 'LineDrawingRegionType', 1, 1, {'name': 'LineDrawingRegion', 'type': 'LineDrawingRegionType'}, 1), + MemberSpec_('GraphicRegion', 'GraphicRegionType', 1, 1, {'name': 'GraphicRegion', 'type': 'GraphicRegionType'}, 1), + MemberSpec_('TableRegion', 'TableRegionType', 1, 1, {'name': 'TableRegion', 'type': 'TableRegionType'}, 1), + MemberSpec_('ChartRegion', 'ChartRegionType', 1, 1, {'name': 'ChartRegion', 'type': 'ChartRegionType'}, 1), + MemberSpec_('MapRegion', 'MapRegionType', 1, 1, {'name': 'MapRegion', 'type': 'MapRegionType'}, 1), + MemberSpec_('SeparatorRegion', 'SeparatorRegionType', 1, 1, {'name': 'SeparatorRegion', 'type': 'SeparatorRegionType'}, 1), + MemberSpec_('MathsRegion', 'MathsRegionType', 1, 1, {'name': 'MathsRegion', 'type': 'MathsRegionType'}, 1), + MemberSpec_('ChemRegion', 'ChemRegionType', 1, 1, {'name': 'ChemRegion', 'type': 'ChemRegionType'}, 1), + MemberSpec_('MusicRegion', 'MusicRegionType', 1, 1, {'name': 'MusicRegion', 'type': 'MusicRegionType'}, 1), + MemberSpec_('AdvertRegion', 'AdvertRegionType', 1, 1, {'name': 'AdvertRegion', 'type': 'AdvertRegionType'}, 1), + MemberSpec_('NoiseRegion', 'NoiseRegionType', 1, 1, {'name': 'NoiseRegion', 'type': 'NoiseRegionType'}, 1), + MemberSpec_('UnknownRegion', 'UnknownRegionType', 1, 1, {'name': 'UnknownRegion', 'type': 'UnknownRegionType'}, 1), + MemberSpec_('CustomRegion', 'CustomRegionType', 1, 1, {'name': 'CustomRegion', 'type': 'CustomRegionType'}, 1), + ] subclass = None superclass = None def __init__(self, imageFilename=None, imageWidth=None, imageHeight=None, imageXResolution=None, imageYResolution=None, imageResolutionUnit=None, custom=None, orientation=None, type_=None, primaryLanguage=None, secondaryLanguage=None, primaryScript=None, secondaryScript=None, readingDirection=None, textLineOrder=None, conf=None, AlternativeImage=None, Border=None, PrintSpace=None, ReadingOrder=None, Layers=None, Relations=None, TextStyle=None, UserDefined=None, Labels=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, MapRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, gds_collector_=None, **kwargs_): @@ -2764,6 +2850,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.CustomRegion.append(obj_) obj_.original_tagname_ = 'CustomRegion' + def __hash__(self): + return hash(self.id) # end class PageType @@ -2777,6 +2865,10 @@ class CoordsType(GeneratedsSuper): Paths must be planar (i.e. must not self-intersect). Confidence value (between 0 and 1)""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('points', 'pc:PointsType', 0, 0, {'use': 'required'}), + MemberSpec_('conf', 'pc:ConfSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, points=None, conf=None, gds_collector_=None, **kwargs_): @@ -2901,6 +2993,8 @@ def buildAttributes(self, node, attrs, already_processed): self.validate_ConfSimpleType(self.conf) # validate type ConfSimpleType def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class CoordsType @@ -2917,6 +3011,25 @@ class TextLineType(GeneratedsSuper): Position (order number) of this text line within the parent text region.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('primaryLanguage', 'pc:LanguageSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('primaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('secondaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('readingDirection', 'pc:ReadingDirectionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('production', 'pc:ProductionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('index', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('AlternativeImage', 'AlternativeImageType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'AlternativeImage', 'type': 'AlternativeImageType'}, None), + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + MemberSpec_('Baseline', 'BaselineType', 0, 1, {'minOccurs': '0', 'name': 'Baseline', 'type': 'BaselineType'}, None), + MemberSpec_('Word', 'WordType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Word', 'type': 'WordType'}, None), + MemberSpec_('TextEquiv', 'TextEquivType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'TextEquiv', 'type': 'TextEquivType'}, None), + MemberSpec_('TextStyle', 'TextStyleType', 0, 1, {'minOccurs': '0', 'name': 'TextStyle', 'type': 'TextStyleType'}, None), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + ] subclass = None superclass = None def __init__(self, id=None, primaryLanguage=None, primaryScript=None, secondaryScript=None, readingDirection=None, production=None, custom=None, comments=None, index=None, AlternativeImage=None, Coords=None, Baseline=None, Word=None, TextEquiv=None, TextStyle=None, UserDefined=None, Labels=None, gds_collector_=None, **kwargs_): @@ -3318,6 +3431,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Labels.append(obj_) obj_.original_tagname_ = 'Labels' + def __hash__(self): + return hash(self.id) # end class TextLineType @@ -3332,6 +3447,23 @@ class WordType(GeneratedsSuper): text line and/or text region. For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('language', 'pc:LanguageSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('primaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('secondaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('readingDirection', 'pc:ReadingDirectionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('production', 'pc:ProductionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('AlternativeImage', 'AlternativeImageType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'AlternativeImage', 'type': 'AlternativeImageType'}, None), + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + MemberSpec_('Glyph', 'GlyphType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Glyph', 'type': 'GlyphType'}, None), + MemberSpec_('TextEquiv', 'TextEquivType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'TextEquiv', 'type': 'TextEquivType'}, None), + MemberSpec_('TextStyle', 'TextStyleType', 0, 1, {'minOccurs': '0', 'name': 'TextStyle', 'type': 'TextStyleType'}, None), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + ] subclass = None superclass = None def __init__(self, id=None, language=None, primaryScript=None, secondaryScript=None, readingDirection=None, production=None, custom=None, comments=None, AlternativeImage=None, Coords=None, Glyph=None, TextEquiv=None, TextStyle=None, UserDefined=None, Labels=None, gds_collector_=None, **kwargs_): @@ -3705,6 +3837,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Labels.append(obj_) obj_.original_tagname_ = 'Labels' + def __hash__(self): + return hash(self.id) # end class WordType @@ -3714,6 +3848,22 @@ class GlyphType(GeneratedsSuper): word / text line / text region. For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('ligature', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('symbol', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('script', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('production', 'pc:ProductionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('AlternativeImage', 'AlternativeImageType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'AlternativeImage', 'type': 'AlternativeImageType'}, None), + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + MemberSpec_('Graphemes', 'GraphemesType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'Graphemes', 'type': 'GraphemesType'}, None), + MemberSpec_('TextEquiv', 'TextEquivType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'TextEquiv', 'type': 'TextEquivType'}, None), + MemberSpec_('TextStyle', 'TextStyleType', 0, 1, {'minOccurs': '0', 'name': 'TextStyle', 'type': 'TextStyleType'}, None), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + ] subclass = None superclass = None def __init__(self, id=None, ligature=None, symbol=None, script=None, production=None, custom=None, comments=None, AlternativeImage=None, Coords=None, Graphemes=None, TextEquiv=None, TextStyle=None, UserDefined=None, Labels=None, gds_collector_=None, **kwargs_): @@ -4046,6 +4196,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Labels.append(obj_) obj_.original_tagname_ = 'Labels' + def __hash__(self): + return hash(self.id) # end class GlyphType @@ -4060,6 +4212,15 @@ class TextEquivType(GeneratedsSuper): Refinement for dataType attribute. Can be a regular expression, for instance.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('index', 'integer', 0, 1, {'use': 'optional'}), + MemberSpec_('conf', 'pc:ConfSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('dataType', 'pc:TextDataTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('dataTypeDetails', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('PlainText', 'string', 0, 1, {'minOccurs': '0', 'name': 'PlainText', 'type': 'string'}, None), + MemberSpec_('Unicode', 'string', 0, 0, {'name': 'Unicode', 'type': 'string'}, None), + ] subclass = None superclass = None def __init__(self, index=None, conf=None, dataType=None, dataTypeDetails=None, comments=None, PlainText=None, Unicode=None, gds_collector_=None, **kwargs_): @@ -4261,12 +4422,17 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec value_ = self.gds_validate_string(value_, node, 'Unicode') self.Unicode = value_ self.Unicode_nsprefix_ = child_.prefix + def __hash__(self): + return hash(self.id) # end class TextEquivType class GridType(GeneratedsSuper): """Matrix of grid points defining the table grid on the page.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('GridPoints', 'GridPointsType', 1, 0, {'maxOccurs': 'unbounded', 'minOccurs': '2', 'name': 'GridPoints', 'type': 'GridPointsType'}, None), + ] subclass = None superclass = None def __init__(self, GridPoints=None, gds_collector_=None, **kwargs_): @@ -4364,6 +4530,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.GridPoints.append(obj_) obj_.original_tagname_ = 'GridPoints' + def __hash__(self): + return hash(self.id) # end class GridType @@ -4371,6 +4539,10 @@ class GridPointsType(GeneratedsSuper): """Points with x,y coordinates. The grid row index""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('index', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('points', 'pc:PointsType', 0, 0, {'use': 'required'}), + ] subclass = None superclass = None def __init__(self, index=None, points=None, gds_collector_=None, **kwargs_): @@ -4478,6 +4650,8 @@ def buildAttributes(self, node, attrs, already_processed): self.validate_PointsType(self.points) # validate type PointsType def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class GridPointsType @@ -4490,6 +4664,9 @@ class PrintSpaceType(GeneratedsSuper): It does not contain pagenumber (if not part of running title), marginals, signature mark, preview words.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + ] subclass = None superclass = None def __init__(self, Coords=None, gds_collector_=None, **kwargs_): @@ -4578,6 +4755,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Coords = obj_ obj_.original_tagname_ = 'Coords' + def __hash__(self): + return hash(self.id) # end class PrintSpaceType @@ -4588,6 +4767,11 @@ class ReadingOrderType(GeneratedsSuper): Groups may contain further groups. Confidence value (between 0 and 1)""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('conf', 'pc:ConfSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('OrderedGroup', 'OrderedGroupType', 0, 0, {'name': 'OrderedGroup', 'type': 'OrderedGroupType'}, 2), + MemberSpec_('UnorderedGroup', 'UnorderedGroupType', 0, 0, {'name': 'UnorderedGroup', 'type': 'UnorderedGroupType'}, 2), + ] subclass = None superclass = None def __init__(self, conf=None, OrderedGroup=None, UnorderedGroup=None, gds_collector_=None, **kwargs_): @@ -4719,6 +4903,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.UnorderedGroup = obj_ obj_.original_tagname_ = 'UnorderedGroup' + def __hash__(self): + return hash(self.id) # end class ReadingOrderType @@ -4726,6 +4912,10 @@ class RegionRefIndexedType(GeneratedsSuper): """Numbered regionPosition (order number) of this item within the current hierarchy level.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('index', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('regionRef', 'string', 0, 0, {'use': 'required'}), + ] subclass = None superclass = None def __init__(self, index=None, regionRef=None, gds_collector_=None, **kwargs_): @@ -4821,6 +5011,8 @@ def buildAttributes(self, node, attrs, already_processed): self.regionRef = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class RegionRefIndexedType @@ -4835,6 +5027,21 @@ class OrderedGroupIndexedType(GeneratedsSuper): previous column or page, for example)? For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('regionRef', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('index', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('caption', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:GroupTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('continuation', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('RegionRefIndexed', 'RegionRefIndexedType', 1, 0, {'name': 'RegionRefIndexed', 'type': 'RegionRefIndexedType'}, 3), + MemberSpec_('OrderedGroupIndexed', 'OrderedGroupIndexedType', 1, 0, {'name': 'OrderedGroupIndexed', 'type': 'OrderedGroupIndexedType'}, 3), + MemberSpec_('UnorderedGroupIndexed', 'UnorderedGroupIndexedType', 1, 0, {'name': 'UnorderedGroupIndexed', 'type': 'UnorderedGroupIndexedType'}, 3), + ] subclass = None superclass = None def __init__(self, id=None, regionRef=None, index=None, caption=None, type_=None, continuation=None, custom=None, comments=None, UserDefined=None, Labels=None, RegionRefIndexed=None, OrderedGroupIndexed=None, UnorderedGroupIndexed=None, gds_collector_=None, **kwargs_): @@ -5140,6 +5347,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.UnorderedGroupIndexed.append(obj_) obj_.original_tagname_ = 'UnorderedGroupIndexed' + def __hash__(self): + return hash(self.id) # end class OrderedGroupIndexedType @@ -5154,6 +5363,21 @@ class UnorderedGroupIndexedType(GeneratedsSuper): (from previous column or page, for example)? For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('regionRef', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('index', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('caption', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:GroupTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('continuation', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('RegionRef', 'RegionRefType', 1, 0, {'name': 'RegionRef', 'type': 'RegionRefType'}, 4), + MemberSpec_('OrderedGroup', 'OrderedGroupType', 1, 0, {'name': 'OrderedGroup', 'type': 'OrderedGroupType'}, 4), + MemberSpec_('UnorderedGroup', 'UnorderedGroupType', 1, 0, {'name': 'UnorderedGroup', 'type': 'UnorderedGroupType'}, 4), + ] subclass = None superclass = None def __init__(self, id=None, regionRef=None, index=None, caption=None, type_=None, continuation=None, custom=None, comments=None, UserDefined=None, Labels=None, RegionRef=None, OrderedGroup=None, UnorderedGroup=None, gds_collector_=None, **kwargs_): @@ -5459,11 +5683,16 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.UnorderedGroup.append(obj_) obj_.original_tagname_ = 'UnorderedGroup' + def __hash__(self): + return hash(self.id) # end class UnorderedGroupIndexedType class RegionRefType(GeneratedsSuper): __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('regionRef', 'string', 0, 0, {'use': 'required'}), + ] subclass = None superclass = None def __init__(self, regionRef=None, gds_collector_=None, **kwargs_): @@ -5546,6 +5775,8 @@ def buildAttributes(self, node, attrs, already_processed): self.regionRef = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class RegionRefType @@ -5558,6 +5789,20 @@ class OrderedGroupType(GeneratedsSuper): (from previous column or page, for example)? For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('regionRef', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('caption', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:GroupTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('continuation', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('RegionRefIndexed', 'RegionRefIndexedType', 1, 0, {'name': 'RegionRefIndexed', 'type': 'RegionRefIndexedType'}, 5), + MemberSpec_('OrderedGroupIndexed', 'OrderedGroupIndexedType', 1, 0, {'name': 'OrderedGroupIndexed', 'type': 'OrderedGroupIndexedType'}, 5), + MemberSpec_('UnorderedGroupIndexed', 'UnorderedGroupIndexedType', 1, 0, {'name': 'UnorderedGroupIndexed', 'type': 'UnorderedGroupIndexedType'}, 5), + ] subclass = None superclass = None def __init__(self, id=None, regionRef=None, caption=None, type_=None, continuation=None, custom=None, comments=None, UserDefined=None, Labels=None, RegionRefIndexed=None, OrderedGroupIndexed=None, UnorderedGroupIndexed=None, gds_collector_=None, **kwargs_): @@ -5850,6 +6095,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.UnorderedGroupIndexed.append(obj_) obj_.original_tagname_ = 'UnorderedGroupIndexed' + def __hash__(self): + return hash(self.id) # end class OrderedGroupType @@ -5862,6 +6109,20 @@ class UnorderedGroupType(GeneratedsSuper): (from previous column or page, for example)? For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('regionRef', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('caption', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:GroupTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('continuation', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('RegionRef', 'RegionRefType', 1, 0, {'name': 'RegionRef', 'type': 'RegionRefType'}, 6), + MemberSpec_('OrderedGroup', 'OrderedGroupType', 1, 0, {'name': 'OrderedGroup', 'type': 'OrderedGroupType'}, 6), + MemberSpec_('UnorderedGroup', 'UnorderedGroupType', 1, 0, {'name': 'UnorderedGroup', 'type': 'UnorderedGroupType'}, 6), + ] subclass = None superclass = None def __init__(self, id=None, regionRef=None, caption=None, type_=None, continuation=None, custom=None, comments=None, UserDefined=None, Labels=None, RegionRef=None, OrderedGroup=None, UnorderedGroup=None, gds_collector_=None, **kwargs_): @@ -6154,6 +6415,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.UnorderedGroup.append(obj_) obj_.original_tagname_ = 'UnorderedGroup' + def __hash__(self): + return hash(self.id) # end class UnorderedGroupType @@ -6161,6 +6424,9 @@ class BorderType(GeneratedsSuper): """Border of the actual page (if the scanned image contains parts not belonging to the page).""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + ] subclass = None superclass = None def __init__(self, Coords=None, gds_collector_=None, **kwargs_): @@ -6249,6 +6515,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Coords = obj_ obj_.original_tagname_ = 'Coords' + def __hash__(self): + return hash(self.id) # end class BorderType @@ -6257,6 +6525,9 @@ class LayersType(GeneratedsSuper): regions. An element with a greater z-index is always in front of another element with lower z-index.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Layer', 'LayerType', 1, 0, {'maxOccurs': 'unbounded', 'minOccurs': '1', 'name': 'Layer', 'type': 'LayerType'}, None), + ] subclass = None superclass = None def __init__(self, Layer=None, gds_collector_=None, **kwargs_): @@ -6354,11 +6625,19 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Layer.append(obj_) obj_.original_tagname_ = 'Layer' + def __hash__(self): + return hash(self.id) # end class LayersType class LayerType(GeneratedsSuper): __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('zIndex', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('caption', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('RegionRef', 'RegionRefType', 1, 0, {'maxOccurs': 'unbounded', 'minOccurs': '1', 'name': 'RegionRef', 'type': 'RegionRefType'}, None), + ] subclass = None superclass = None def __init__(self, id=None, zIndex=None, caption=None, RegionRef=None, gds_collector_=None, **kwargs_): @@ -6493,12 +6772,18 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.RegionRef.append(obj_) obj_.original_tagname_ = 'RegionRef' + def __hash__(self): + return hash(self.id) # end class LayerType class BaselineType(GeneratedsSuper): """Confidence value (between 0 and 1)""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('points', 'pc:PointsType', 0, 0, {'use': 'required'}), + MemberSpec_('conf', 'pc:ConfSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, points=None, conf=None, gds_collector_=None, **kwargs_): @@ -6623,6 +6908,8 @@ def buildAttributes(self, node, attrs, already_processed): self.validate_ConfSimpleType(self.conf) # validate type ConfSimpleType def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class BaselineType @@ -6631,6 +6918,9 @@ class RelationsType(GeneratedsSuper): objects (for example: DropCap - paragraph, caption - image).""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Relation', 'RelationType', 1, 0, {'maxOccurs': 'unbounded', 'minOccurs': '1', 'name': 'Relation', 'type': 'RelationType'}, None), + ] subclass = None superclass = None def __init__(self, Relation=None, gds_collector_=None, **kwargs_): @@ -6728,6 +7018,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.Relation.append(obj_) obj_.original_tagname_ = 'Relation' + def __hash__(self): + return hash(self.id) # end class RelationsType @@ -6748,6 +7040,15 @@ class RelationType(GeneratedsSuper): paragraph) For generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('type_', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('SourceRegionRef', 'RegionRefType', 0, 0, {'maxOccurs': '1', 'minOccurs': '1', 'name': 'SourceRegionRef', 'type': 'RegionRefType'}, None), + MemberSpec_('TargetRegionRef', 'RegionRefType', 0, 0, {'maxOccurs': '1', 'minOccurs': '1', 'name': 'TargetRegionRef', 'type': 'RegionRefType'}, None), + ] subclass = None superclass = None def __init__(self, id=None, type_=None, custom=None, comments=None, Labels=None, SourceRegionRef=None, TargetRegionRef=None, gds_collector_=None, **kwargs_): @@ -6925,6 +7226,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.TargetRegionRef = obj_ obj_.original_tagname_ = 'TargetRegionRef' + def __hash__(self): + return hash(self.id) # end class RelationType @@ -6951,6 +7254,29 @@ class TextStyleType(GeneratedsSuper): reversed against a background colour. Line style details if "underlined" is TRUE""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('fontFamily', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('serif', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('monospace', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('fontSize', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('xHeight', 'integer', 0, 1, {'use': 'optional'}), + MemberSpec_('kerning', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('textColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('textColourRgb', 'integer', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColourRgb', 'integer', 0, 1, {'use': 'optional'}), + MemberSpec_('reverseVideo', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('bold', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('italic', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('underlined', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('underlineStyle', 'pc:underlineStyleType', 0, 1, {'use': 'optional'}), + MemberSpec_('doubleUnderlined', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('subscript', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('superscript', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('strikethrough', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('smallCaps', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('letterSpaced', 'boolean', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, fontFamily=None, serif=None, monospace=None, fontSize=None, xHeight=None, kerning=None, textColour=None, textColourRgb=None, bgColour=None, bgColourRgb=None, reverseVideo=None, bold=None, italic=None, underlined=None, underlineStyle=None, doubleUnderlined=None, subscript=None, superscript=None, strikethrough=None, smallCaps=None, letterSpaced=None, gds_collector_=None, **kwargs_): @@ -7383,6 +7709,8 @@ def buildAttributes(self, node, attrs, already_processed): raise_parse_error(node, 'Bad boolean attribute') def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class TextStyleType @@ -7391,6 +7719,31 @@ class RegionType(GeneratedsSuper): Is this region a continuation of another region (in previous column or page, for example)?""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('continuation', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('AlternativeImage', 'AlternativeImageType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'AlternativeImage', 'type': 'AlternativeImageType'}, None), + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + MemberSpec_('UserDefined', 'UserDefinedType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'UserDefined', 'type': 'UserDefinedType'}, None), + MemberSpec_('Labels', 'LabelsType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'Labels', 'type': 'LabelsType'}, None), + MemberSpec_('Roles', 'RolesType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'Roles', 'type': 'RolesType'}, None), + MemberSpec_('TextRegion', 'TextRegionType', 1, 1, {'name': 'TextRegion', 'type': 'TextRegionType'}, 7), + MemberSpec_('ImageRegion', 'ImageRegionType', 1, 1, {'name': 'ImageRegion', 'type': 'ImageRegionType'}, 7), + MemberSpec_('LineDrawingRegion', 'LineDrawingRegionType', 1, 1, {'name': 'LineDrawingRegion', 'type': 'LineDrawingRegionType'}, 7), + MemberSpec_('GraphicRegion', 'GraphicRegionType', 1, 1, {'name': 'GraphicRegion', 'type': 'GraphicRegionType'}, 7), + MemberSpec_('TableRegion', 'TableRegionType', 1, 1, {'name': 'TableRegion', 'type': 'TableRegionType'}, 7), + MemberSpec_('ChartRegion', 'ChartRegionType', 1, 1, {'name': 'ChartRegion', 'type': 'ChartRegionType'}, 7), + MemberSpec_('SeparatorRegion', 'SeparatorRegionType', 1, 1, {'name': 'SeparatorRegion', 'type': 'SeparatorRegionType'}, 7), + MemberSpec_('MathsRegion', 'MathsRegionType', 1, 1, {'name': 'MathsRegion', 'type': 'MathsRegionType'}, 7), + MemberSpec_('ChemRegion', 'ChemRegionType', 1, 1, {'name': 'ChemRegion', 'type': 'ChemRegionType'}, 7), + MemberSpec_('MusicRegion', 'MusicRegionType', 1, 1, {'name': 'MusicRegion', 'type': 'MusicRegionType'}, 7), + MemberSpec_('AdvertRegion', 'AdvertRegionType', 1, 1, {'name': 'AdvertRegion', 'type': 'AdvertRegionType'}, 7), + MemberSpec_('NoiseRegion', 'NoiseRegionType', 1, 1, {'name': 'NoiseRegion', 'type': 'NoiseRegionType'}, 7), + MemberSpec_('UnknownRegion', 'UnknownRegionType', 1, 1, {'name': 'UnknownRegion', 'type': 'UnknownRegionType'}, 7), + MemberSpec_('CustomRegion', 'CustomRegionType', 1, 1, {'name': 'CustomRegion', 'type': 'CustomRegionType'}, 7), + ] subclass = None superclass = None def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, extensiontype_=None, gds_collector_=None, **kwargs_): @@ -7963,12 +8316,19 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.CustomRegion.append(obj_) obj_.original_tagname_ = 'CustomRegion' + def __hash__(self): + return hash(self.id) # end class RegionType class AlternativeImageType(GeneratedsSuper): """Confidence value (between 0 and 1)""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('filename', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('conf', 'pc:ConfSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, filename=None, comments=None, conf=None, gds_collector_=None, **kwargs_): @@ -8094,6 +8454,8 @@ def buildAttributes(self, node, attrs, already_processed): self.validate_ConfSimpleType(self.conf) # validate type ConfSimpleType def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class AlternativeImageType @@ -8101,6 +8463,11 @@ class GraphemesType(GeneratedsSuper): """Container for graphemes, grapheme groups and non-printing characters.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Grapheme', 'GraphemeType', 1, 0, {'name': 'Grapheme', 'type': 'GraphemeType'}, 8), + MemberSpec_('NonPrintingChar', 'NonPrintingCharType', 1, 0, {'name': 'NonPrintingChar', 'type': 'NonPrintingCharType'}, 8), + MemberSpec_('GraphemeGroup', 'GraphemeGroupType', 1, 0, {'name': 'GraphemeGroup', 'type': 'GraphemeGroupType'}, 8), + ] subclass = None superclass = None def __init__(self, Grapheme=None, NonPrintingChar=None, GraphemeGroup=None, gds_collector_=None, **kwargs_): @@ -8246,6 +8613,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.GraphemeGroup.append(obj_) obj_.original_tagname_ = 'GraphemeGroup' + def __hash__(self): + return hash(self.id) # end class GraphemesType @@ -8257,6 +8626,15 @@ class GraphemeBaseType(GeneratedsSuper): grapheme, group, or non-printing character element. For generic useFor generic use""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('id', 'string', 0, 0, {'use': 'required'}), + MemberSpec_('index', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('ligature', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('charType', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('custom', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('comments', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('TextEquiv', 'TextEquivType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'TextEquiv', 'type': 'TextEquivType'}, None), + ] subclass = None superclass = None def __init__(self, id=None, index=None, ligature=None, charType=None, custom=None, comments=None, TextEquiv=None, extensiontype_=None, gds_collector_=None, **kwargs_): @@ -8450,6 +8828,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.TextEquiv.append(obj_) obj_.original_tagname_ = 'TextEquiv' + def __hash__(self): + return hash(self.id) # end class GraphemeBaseType @@ -8458,6 +8838,9 @@ class GraphemeType(GraphemeBaseType): Smallest graphical unit that can be assigned a Unicode code point.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Coords', 'CoordsType', 0, 0, {'name': 'Coords', 'type': 'CoordsType'}, None), + ] subclass = None superclass = GraphemeBaseType def __init__(self, id=None, index=None, ligature=None, charType=None, custom=None, comments=None, TextEquiv=None, Coords=None, gds_collector_=None, **kwargs_): @@ -8550,6 +8933,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec self.Coords = obj_ obj_.original_tagname_ = 'Coords' super(GraphemeType, self).buildChildren(child_, node, nodeName_, True) + def __hash__(self): + return hash(self.id) # end class GraphemeType @@ -8559,6 +8944,8 @@ class NonPrintingCharType(GraphemeBaseType): Non-visual / non-printing / control character. Part of grapheme container (of glyph) or grapheme sub group.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + ] subclass = None superclass = GraphemeBaseType def __init__(self, id=None, index=None, ligature=None, charType=None, custom=None, comments=None, TextEquiv=None, gds_collector_=None, **kwargs_): @@ -8633,11 +9020,17 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(NonPrintingCharType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class NonPrintingCharType class GraphemeGroupType(GraphemeBaseType): __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('Grapheme', 'GraphemeType', 1, 1, {'name': 'Grapheme', 'type': 'GraphemeType'}, 9), + MemberSpec_('NonPrintingChar', 'NonPrintingCharType', 1, 1, {'name': 'NonPrintingChar', 'type': 'NonPrintingCharType'}, 9), + ] subclass = None superclass = GraphemeBaseType def __init__(self, id=None, index=None, ligature=None, charType=None, custom=None, comments=None, TextEquiv=None, Grapheme=None, NonPrintingChar=None, gds_collector_=None, **kwargs_): @@ -8763,12 +9156,17 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec self.NonPrintingChar.append(obj_) obj_.original_tagname_ = 'NonPrintingChar' super(GraphemeGroupType, self).buildChildren(child_, node, nodeName_, True) + def __hash__(self): + return hash(self.id) # end class GraphemeGroupType class UserDefinedType(GeneratedsSuper): """Container for user-defined attributes""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('UserAttribute', 'UserAttributeType', 1, 0, {'maxOccurs': 'unbounded', 'minOccurs': '1', 'name': 'UserAttribute', 'type': 'UserAttributeType'}, None), + ] subclass = None superclass = None def __init__(self, UserAttribute=None, gds_collector_=None, **kwargs_): @@ -8866,12 +9264,20 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.UserAttribute.append(obj_) obj_.original_tagname_ = 'UserAttribute' + def __hash__(self): + return hash(self.id) # end class UserDefinedType class UserAttributeType(GeneratedsSuper): """Structured custom data defined by name, type and value.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('name', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('description', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'string', 0, 1, {'use': 'optional'}), + MemberSpec_('value', 'string', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, name=None, description=None, type_=None, value=None, gds_collector_=None, **kwargs_): @@ -8993,6 +9399,8 @@ def buildAttributes(self, node, attrs, already_processed): self.value = value def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class UserAttributeType @@ -9002,6 +9410,13 @@ class TableCellRoleType(GeneratedsSuper): is 1)Number of columns the cell spans (optional; default is 1) Is the cell a column or row header?""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('rowIndex', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('columnIndex', 'int', 0, 0, {'use': 'required'}), + MemberSpec_('rowSpan', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('colSpan', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('header', 'boolean', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = None def __init__(self, rowIndex=None, columnIndex=None, rowSpan=None, colSpan=None, header=None, gds_collector_=None, **kwargs_): @@ -9141,11 +9556,16 @@ def buildAttributes(self, node, attrs, already_processed): raise_parse_error(node, 'Bad boolean attribute') def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): pass + def __hash__(self): + return hash(self.id) # end class TableCellRoleType class RolesType(GeneratedsSuper): __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('TableCellRole', 'TableCellRoleType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'TableCellRole', 'type': 'TableCellRoleType'}, None), + ] subclass = None superclass = None def __init__(self, TableCellRole=None, gds_collector_=None, **kwargs_): @@ -9234,6 +9654,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec obj_.build(child_, gds_collector_=gds_collector_) self.TableCellRole = obj_ obj_.original_tagname_ = 'TableCellRole' + def __hash__(self): + return hash(self.id) # end class RolesType @@ -9244,6 +9666,9 @@ class CustomRegionType(RegionType): map, music, chem, advert, noise, unknown). Information on the type of content represented by this region""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('type_', 'string', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, type_=None, gds_collector_=None, **kwargs_): @@ -9331,12 +9756,16 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(CustomRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class CustomRegionType class UnknownRegionType(RegionType): """To be used if the region type cannot be ascertained.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, gds_collector_=None, **kwargs_): @@ -9411,6 +9840,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(UnknownRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class UnknownRegionType @@ -9419,6 +9850,8 @@ class NoiseRegionType(RegionType): false data created by artifacts on the document or scanner noise.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, gds_collector_=None, **kwargs_): @@ -9493,6 +9926,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(NoiseRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class NoiseRegionType @@ -9505,6 +9940,10 @@ class AdvertRegionType(RegionType): Range: -179.999,180 The background colour of the region""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, bgColour=None, gds_collector_=None, **kwargs_): @@ -9620,6 +10059,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(AdvertRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class AdvertRegionType @@ -9632,6 +10073,10 @@ class MusicRegionType(RegionType): Range: -179.999,180 The background colour of the region""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, bgColour=None, gds_collector_=None, **kwargs_): @@ -9747,6 +10192,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(MusicRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class MusicRegionType @@ -9759,6 +10206,9 @@ class MapRegionType(RegionType): anti-clockwise rotation). Range: -179.999,180""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, gds_collector_=None, **kwargs_): @@ -9847,6 +10297,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(MapRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class MapRegionType @@ -9860,6 +10312,10 @@ class ChemRegionType(RegionType): -179.999,180 The background colour of the region""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, bgColour=None, gds_collector_=None, **kwargs_): @@ -9975,6 +10431,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(ChemRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class ChemRegionType @@ -9988,6 +10446,10 @@ class MathsRegionType(RegionType): Range: -179.999,180 The background colour of the region""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, bgColour=None, gds_collector_=None, **kwargs_): @@ -10103,6 +10565,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(MathsRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class MathsRegionType @@ -10117,6 +10581,10 @@ class SeparatorRegionType(RegionType): Range: -179.999,180 The colour of the separator""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('colour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, colour=None, gds_collector_=None, **kwargs_): @@ -10232,6 +10700,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(SeparatorRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class SeparatorRegionType @@ -10250,6 +10720,13 @@ class ChartRegionType(RegionType): Specifies whether the region also contains text""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:ChartTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('numColours', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('embText', 'boolean', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, type_=None, numColours=None, bgColour=None, embText=None, gds_collector_=None, **kwargs_): @@ -10423,6 +10900,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(ChartRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class ChartRegionType @@ -10443,6 +10922,16 @@ class TableRegionType(RegionType): Specifies whether the region also contains text""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('rows', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('columns', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('lineColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('lineSeparators', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('embText', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('Grid', 'GridType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'Grid', 'type': 'GridType'}, None), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, rows=None, columns=None, lineColour=None, bgColour=None, lineSeparators=None, embText=None, Grid=None, gds_collector_=None, **kwargs_): @@ -10652,6 +11141,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec self.Grid = obj_ obj_.original_tagname_ = 'Grid' super(TableRegionType, self).buildChildren(child_, node, nodeName_, True) + def __hash__(self): + return hash(self.id) # end class TableRegionType @@ -10669,6 +11160,12 @@ class GraphicRegionType(RegionType): Specifies whether the region also contains text.""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:GraphicsTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('numColours', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('embText', 'boolean', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, type_=None, numColours=None, embText=None, gds_collector_=None, **kwargs_): @@ -10815,6 +11312,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(GraphicRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class GraphicRegionType @@ -10831,6 +11330,12 @@ class LineDrawingRegionType(RegionType): Specifies whether the region also contains text""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('penColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('embText', 'boolean', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, penColour=None, bgColour=None, embText=None, gds_collector_=None, **kwargs_): @@ -10978,6 +11483,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(LineDrawingRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class LineDrawingRegionType @@ -10994,6 +11501,12 @@ class ImageRegionType(RegionType): Specifies whether the region also contains text""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('colourDepth', 'pc:ColourDepthSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('bgColour', 'pc:ColourSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('embText', 'boolean', 0, 1, {'use': 'optional'}), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, colourDepth=None, bgColour=None, embText=None, gds_collector_=None, **kwargs_): @@ -11154,6 +11667,8 @@ def buildAttributes(self, node, attrs, already_processed): def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collector_=None): super(ImageRegionType, self).buildChildren(child_, node, nodeName_, True) pass + def __hash__(self): + return hash(self.id) # end class ImageRegionType @@ -11190,6 +11705,24 @@ class TextRegionType(RegionType): The primary script used in the region The secondary script used in the region""" __hash__ = GeneratedsSuper.__hash__ + member_data_items_ = [ + MemberSpec_('orientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('type_', 'pc:TextTypeSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('leading', 'int', 0, 1, {'use': 'optional'}), + MemberSpec_('readingDirection', 'pc:ReadingDirectionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('textLineOrder', 'pc:TextLineOrderSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('readingOrientation', 'float', 0, 1, {'use': 'optional'}), + MemberSpec_('indented', 'boolean', 0, 1, {'use': 'optional'}), + MemberSpec_('align', 'pc:AlignSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('primaryLanguage', 'pc:LanguageSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('secondaryLanguage', 'pc:LanguageSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('primaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('secondaryScript', 'pc:ScriptSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('production', 'pc:ProductionSimpleType', 0, 1, {'use': 'optional'}), + MemberSpec_('TextLine', 'TextLineType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'TextLine', 'type': 'TextLineType'}, None), + MemberSpec_('TextEquiv', 'TextEquivType', 1, 1, {'maxOccurs': 'unbounded', 'minOccurs': '0', 'name': 'TextEquiv', 'type': 'TextEquivType'}, None), + MemberSpec_('TextStyle', 'TextStyleType', 0, 1, {'maxOccurs': '1', 'minOccurs': '0', 'name': 'TextStyle', 'type': 'TextStyleType'}, None), + ] subclass = None superclass = RegionType def __init__(self, id=None, custom=None, comments=None, continuation=None, AlternativeImage=None, Coords=None, UserDefined=None, Labels=None, Roles=None, TextRegion=None, ImageRegion=None, LineDrawingRegion=None, GraphicRegion=None, TableRegion=None, ChartRegion=None, SeparatorRegion=None, MathsRegion=None, ChemRegion=None, MusicRegion=None, AdvertRegion=None, NoiseRegion=None, UnknownRegion=None, CustomRegion=None, orientation=None, type_=None, leading=None, readingDirection=None, textLineOrder=None, readingOrientation=None, indented=None, align=None, primaryLanguage=None, secondaryLanguage=None, primaryScript=None, secondaryScript=None, production=None, TextLine=None, TextEquiv=None, TextStyle=None, gds_collector_=None, **kwargs_): @@ -11606,6 +12139,8 @@ def buildChildren(self, child_, node, nodeName_, fromsubclass_=False, gds_collec self.TextStyle = obj_ obj_.original_tagname_ = 'TextStyle' super(TextRegionType, self).buildChildren(child_, node, nodeName_, True) + def __hash__(self): + return hash(self.id) # end class TextRegionType diff --git a/ocrd_models/ocrd_page_user_methods.py b/ocrd_models/ocrd_page_user_methods.py new file mode 100644 index 000000000..507b8ff39 --- /dev/null +++ b/ocrd_models/ocrd_page_user_methods.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python + +# source: https://bitbucket.org/dkuhlman/generateds/src/default/gends_user_methods.py + +import re + +# +# You must include the following class definition at the top of +# your method specification file. +# +class MethodSpec(): + def __init__(self, name='', source='', class_names='', + class_names_compiled=None): + """MethodSpec -- A specification of a method. + Member variables: + name -- The method name + source -- The source code for the method. Must be + indented to fit in a class definition. + class_names -- A regular expression that must match the + class names in which the method is to be inserted. + class_names_compiled -- The compiled class names. + generateDS.py will do this compile for you. + """ + self.name = name + self.source = source + if class_names is None: + self.class_names = ('.*', ) + else: + self.class_names = class_names + if class_names_compiled is None: + self.class_names_compiled = re.compile(self.class_names) + else: + self.class_names_compiled = class_names_compiled + def get_name(self): + return self.name + def set_name(self, name): + self.name = name + def get_source(self): + return self.source + def set_source(self, source): + self.source = source + def get_class_names(self): + return self.class_names + def set_class_names(self, class_names): + self.class_names = class_names + self.class_names_compiled = re.compile(class_names) + def get_class_names_compiled(self): + return self.class_names_compiled + def set_class_names_compiled(self, class_names_compiled): + self.class_names_compiled = class_names_compiled + def match_name(self, class_name): + """Match against the name of the class currently being generated. + If this method returns True, the method will be inserted in + the generated class. + """ + if self.class_names_compiled.search(class_name): + return True + return False + def get_interpolated_source(self, values_dict): + """Get the method source code, interpolating values from values_dict + into it. The source returned by this method is inserted into + the generated class. + """ + source = self.source % values_dict + return source + def show(self): + print('specification:') + print(' name: %s' % (self.name, )) + print(self.source) + print(' class_names: %s' % (self.class_names, )) + print(' names pat : %s' % (self.class_names_compiled.pattern, )) + + +# +# Provide one or more method specification such as the following. +# Notes: +# - Each generated class contains a class variable _member_data_items. +# This variable contains a list of instances of class _MemberSpec. +# See the definition of class _MemberSpec near the top of the +# generated superclass file and also section "User Methods" in +# the documentation, as well as the examples below. + +# +# Replace the following method specifications with your own. + +# +# Hash by memory adress/id() +# +hash_by_id = MethodSpec(name='hash', + source='''\ + def __hash__(self): + return hash(self.id) +''', + class_names=r'^.*$', + ) +# +# Provide a list of your method specifications. +# This list of specifications must be named METHOD_SPECS. +# +METHOD_SPECS = ( + hash_by_id, + ) + + +def test(): + for spec in METHOD_SPECS: + spec.show() + +def main(): + test() + + +if __name__ == '__main__': + main()