Exemplo n.º 1
0
def make_igt_metadata(block, options):
    md = Metadata()
    mi = 1

    if options['keep_headers'] and block.get('header_lines'):
        md.append(
            Meta(id='meta{}'.format(mi),
                 type='odin-header',
                 text='\n'.join(block.get('header_lines', []))))
        mi += 1

    lg_code = block.get('iso-639-3')
    if lg_code is None:
        lg_code = 'und'  # undetermined
    # should we title-case language?
    # language = (block.get('language') or '').strip().title()
    language = (block.get('language') or '').strip()

    subj = MetaChild('subject',
                     attributes={
                         qattrname('type', 'xsi'): 'olac:language',
                         qattrname('code', 'olac'): lg_code.strip()
                     },
                     text=language.title(),
                     namespace=_nsmap['dc'])
    lang = MetaChild('language',
                     attributes={
                         qattrname('type', 'xsi'): 'olac:language',
                         qattrname('code', 'olac'): 'en'
                     },
                     text='English',
                     namespace=_nsmap['dc'])
    md.append(Meta(id='meta{}'.format(mi), children=[subj, lang]))

    return md
Exemplo n.º 2
0
def default_decode_metadata(elem):
    if elem is None:
        return None
    ns, tag = _qname_split(elem.tag)
    assert tag == 'metadata'
    metadata = Metadata(
        id=elem.get('id'),
        type=elem.get('type'),
        attributes=get_attributes(elem, ignore=('id', 'type')),
        metas=[decode_meta(meta) for meta in elem.findall('meta')],
        namespace=ns,
        nsmap=elem.attrib.nsmap)
    elem.clear()
    return metadata