Source code for sigfeat.base.metadata

"""Mixin for Metadata.

Adds methods ``add_metadata()``, ``extend_metadata()`` and
``fetch_metadata_as_attrs()`` to the class.

Metadata will be extracted into Sink. So created feature datasets
contain metadata for e.g. features and sources.

"""


[docs]class MetadataMixin: """MetadataMixin class Adding metadata functionality to classes. Overrides: - ``._metadata`` - ``.metadata`` - ``._init_metadata_list`` - ``.add_metadata`` - ``.extend_metadata`` - ``.fetch_metadata_as_attrs`` """ _metadata = None def _init_metadata_list(self): if self._metadata is None: self._metadata = [('classname', self.__class__.__name__)]
[docs] def add_metadata(self, name, value): """Appends the key value pair to metadata list.""" self._init_metadata_list() self._metadata.append((name, value))
[docs] def extend_metadata(self, mdata): """Extends the metadata with the given list of key value pairs.""" self._init_metadata_list() for name, value in mdata: self._metadata += [(name, value)]
[docs] def fetch_metadata_as_attrs(self): """Sets metadata as attributes of self.""" self._init_metadata_list() for name, value in self.metadata: setattr(self, name, value)
@property def metadata(self): """Returns metadata.""" self._init_metadata_list() return self._metadata