def __init__(self, id=None, type=None, attributes=None, metadata=None, tiers=None, corpus=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Tier) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) XigtMetadataMixin.__init__(self, metadata) self._referent_cache = {} self._referrer_cache = {} self._parent = corpus self._itemdict = {} self.extend(tiers or []) self.refresh_indices()
def __init__(self, id=None, type=None, attributes=None, text=None, metas=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Meta) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) if text is not None: metadata_text_warning() if metas is not None: raise XigtError('text and metas cannot both be specified.') if isinstance(text, str): warnings.warn( 'String values of Metadata are deprecated; ' 'it will be put in an untyped Meta object.', DeprecationWarning) text = [Meta(text=text)] metas = text self.extend(metas or [])
def __init__(self, id=None, type=None, alignment=None, content=None, segmentation=None, attributes=None, metadata=None, items=None, igt=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Item) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) XigtReferenceAttributeMixin.__init__(self, alignment=alignment, content=content, segmentation=segmentation) XigtMetadataMixin.__init__(self, metadata) self._parent = igt self.extend(items or [])
def __init__( self, id=None, type=None, attributes=None, text=None, children=None, metadata=None, namespace=None, nsmap=None ): XigtContainerMixin.__init__(self, contained_type=MetaChild) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) self._parent = metadata self.text = text self.extend(children or [])
def __init__(self, name, attributes=None, text=None, children=None, parent=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=MetaChild) XigtAttributeMixin.__init__(self, id=None, type=None, attributes=attributes, namespace=namespace, nsmap=nsmap) if not name_re.match(name): raise ValueError("Invalid name for MetaChild: {}".format(name)) self.name = name self._parent = parent self.text = text self.extend(children or [])
def __init__(self, id=None, type=None, attributes=None, metadata=None, igts=None, mode=FULL, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Igt) XigtAttributeMixin.__init__( self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap ) XigtMetadataMixin.__init__(self, metadata) self.mode = mode if mode == FULL: self.extend(igts or []) else: self._generator = igts
def __init__(self, id=None, type=None, attributes=None, metadata=None, tiers=None, corpus=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Tier) XigtAttributeMixin.__init__( self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap ) XigtMetadataMixin.__init__(self, metadata) self._referent_cache = {} self._referrer_cache = {} self._parent = corpus self._itemdict = {} self.extend(tiers or []) self.refresh_indices()
def __init__(self, id=None, type=None, attributes=None, text=None, metas=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Meta) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) if text is not None: metadata_text_warning() if metas is not None: raise XigtError("text and metas cannot both be specified.") if isinstance(text, str): warnings.warn( "String values of Metadata are deprecated; " "it will be put in an untyped Meta object.", DeprecationWarning, ) text = [Meta(text=text)] metas = text self.extend(metas or [])
class XigtMetadataMixin(object): """ Enables the management of metadata. """ def __init__(self, metadata=None): self._md = XigtContainerMixin(container=self, contained_type=Metadata) if metadata is not None: self.metadata = metadata def __eq__(self, other): try: return self._md == other._md except AttributeError: return False @property def metadata(self): return self._md @metadata.setter def metadata(self, value): if isinstance(value, Metadata): raise XigtError("The metadata attribute must be a sequence " "of Metadata objects.") self._md.clear() self._md.extend(value) # possibly pending deprecation def get_meta(self, key, conditions=None, default=None, inherit=True): if conditions is None: conditions = [] metas = [] for metadata in self.metadata: if metadata.type != "xigt-meta": continue for meta in metadata.metas: if meta.type == key and all(c(meta) for c in conditions): metas.append(meta) if metas: return metas elif inherit and hasattr(self, "_parent") and self._parent is not None: return self._parent.get_meta(key, conditions, default, inherit) else: return default
def __init__(self, id=None, type=None, alignment=None, content=None, segmentation=None, attributes=None, metadata=None, items=None, igt=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Item) XigtAttributeMixin.__init__( self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap ) XigtReferenceAttributeMixin.__init__( self, alignment=alignment, content=content, segmentation=segmentation ) XigtMetadataMixin.__init__(self, metadata) self._parent = igt self.extend(items or [])
def __eq__(self, other): try: return ( self.text == other.text and XigtContainerMixin.__eq__(self, other) and XigtAttributeMixin.__eq__(self, other) ) except AttributeError: return False
def __iter__(self): if self.mode == FULL: for igt in XigtContainerMixin.__iter__(self): yield igt else: for igt in self._generator: if self.mode == INCREMENTAL: self.add(igt) yield igt self.mode = FULL
def __init__(self, id=None, type=None, attributes=None, text=None, children=None, metadata=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=MetaChild) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) self._parent = metadata self.text = text self.extend(children or [])
def __iter__(self): if self.mode == FULL: for igt in XigtContainerMixin.__iter__(self): yield igt else: for igt in self._generator: if self.mode == INCREMENTAL: self.add(igt) else: # don't add, but set the parent igt._parent = self yield igt self.mode = FULL
def __init__(self, id=None, type=None, attributes=None, metadata=None, igts=None, mode=FULL, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=Igt) XigtAttributeMixin.__init__(self, id=id, type=type, attributes=attributes, namespace=namespace, nsmap=nsmap) XigtMetadataMixin.__init__(self, metadata) self.mode = mode if mode == FULL: self.extend(igts or []) else: self._generator = igts
def __init__(self, name, attributes=None, text=None, children=None, parent=None, namespace=None, nsmap=None): XigtContainerMixin.__init__(self, contained_type=MetaChild) XigtAttributeMixin.__init__(self, id=None, type=None, attributes=attributes, namespace=namespace, nsmap=nsmap) if not name_re.match(name): raise ValueError('Invalid name for MetaChild: {}'.format(name)) self.name = name self._parent = parent self.text = text self.extend(children or [])
class XigtMetadataMixin(object): """ Enables the management of metadata. """ def __init__(self, metadata=None): self._md = XigtContainerMixin(container=self, contained_type=Metadata) if metadata is not None: self.metadata = metadata @property def metadata(self): return self._md @metadata.setter def metadata(self, value): if isinstance(value, Metadata): raise XigtError('The metadata attribute must be a sequence ' 'of Metadata objects.') self._md.clear() self._md.extend(value) # possibly pending deprecation def get_meta(self, key, conditions=None, default=None, inherit=True): if conditions is None: conditions = [] metas = [] for metadata in self.metadata: if metadata.type != 'xigt-meta': continue for meta in metadata.metas: if meta.type == key and all(c(meta) for c in conditions): metas.append(meta) if metas: return metas elif inherit and hasattr(self, '_parent') and self._parent is not None: return self._parent.get_meta(key, conditions, default, inherit) else: return default
def __eq__(self, other): return ( XigtMetadataMixin.__eq__(self, other) and XigtContainerMixin.__eq__(self, other) and XigtAttributeMixin.__eq__(self, other) )
def __init__(self, metadata=None): self._md = XigtContainerMixin(container=self, contained_type=Metadata) if metadata is not None: self.metadata = metadata
def __eq__(self, other): return XigtContainerMixin.__eq__(self, other) and XigtAttributeMixin.__eq__(self, other)