Source code for yael.opfmetadatum
#!/usr/bin/env python
# coding=utf-8
"""
An abstract OPF metadatum, that is, a child of `<metadata>`.
It has three subclasses:
1. :class:`yael.opfdc.OPFDC`
2. :class:`yael.opfmeta2.OPFMeta2`
3. :class:`yael.opfmeta3.OPFMeta3`
"""
from yael.element import Element
from yael.jsonable import JSONAble
__author__ = "Alberto Pettarin"
__copyright__ = "Copyright 2015, Alberto Pettarin (www.albertopettarin.it)"
__license__ = "MIT"
__version__ = "0.0.6"
__email__ = "alberto@albertopettarin.it"
__status__ = "Development"
[docs]class OPFMetadatum(Element):
"""
An abstract OPF metadatum, that is, a child of `<metadata>`.
You should not use this class,
but rather one of its subclasses:
1. :class:`yael.opfdc.OPFDC`
2. :class:`yael.opfmeta2.OPFMeta2`
3. :class:`yael.opfmeta3.OPFMeta3`
"""
def __init__(self, internal_path=None, obj=None, string=None):
self.refinements = []
Element.__init__(
self,
internal_path=internal_path,
obj=obj,
string=string)
def json_object(self, recursive=True):
obj = {
"refinements": len(self.refinements),
}
if recursive:
obj["refinements"] = JSONAble.safe(self.refinements)
return obj
def parse_object(self, obj):
pass
[docs] def add_refinement(self, refinement):
"""
Add a refinement, that is,
store a reference to the refinement metadatum.
:param refinement: the refinement metadatum
:type refinement: :class:`yael.opfmetadatum.OPFMetadatum`
"""
self.refinements.append(refinement)