Ejemplo n.º 1
0
Archivo: cmd.py Proyecto: jayvdb/pubpdf
def convert_mods_to_bib(mods):
    # Fix unrecognised genre 'journal article'
    mods = mods.replace('genre>journal article<', 'genre>article-journal<')

    # This would workaround book chapter being misunderstood
    # mods = mods.replace('>book chapter<', '>instruction<')

    mods = re.sub(
        r'<mods:namePart type="given">([^< ]*) ([^<]*)</mods:namePart>',
        r'<mods:namePart type="given">\1</mods:namePart>\n<mods:namePart type="given">\2</mods:namePart>',
        mods)

    # workaround bug in bibutils
    # https://github.com/jayvdb/patches/blob/master/bibutils-une.diff
    mods = mods.replace('mods:original', 'mods:series')

    bibs = convert(mods, 'xml', 'bib', encoding='utf8')

    # workaround bibutils emitting issue & number,
    # and citeproc-py only parsing number.
    if 'issue=' in bibs:
        bibs = re.sub('number=.*', '', bibs)
        bibs = bibs.replace('issue=', 'number=')

    return bibs.replace('\nand ', ' and ')
Ejemplo n.º 2
0
def convert_mods_to_bib(mods):
    # Fix unrecognised genre 'journal article'
    mods = mods.replace('genre>journal article<', 'genre>article-journal<')

    # This would workaround book chapter being misunderstood
    # mods = mods.replace('>book chapter<', '>instruction<')

    mods = re.sub(
        r'<mods:namePart type="given">([^< ]*) ([^<]*)</mods:namePart>',
        r'<mods:namePart type="given">\1</mods:namePart>\n<mods:namePart type="given">\2</mods:namePart>',
        mods)

    # workaround bug in bibutils
    # https://github.com/jayvdb/patches/blob/master/bibutils-une.diff
    mods = mods.replace('mods:original', 'mods:series')

    bibs = convert(mods, 'xml', 'bib', encoding='utf8')

    # workaround bibutils emitting issue & number,
    # and citeproc-py only parsing number.
    if 'issue=' in bibs:
        bibs = re.sub('number=.*', '', bibs)
        bibs = bibs.replace('issue=', 'number=')

    return bibs.replace('\nand ', ' and ')
Ejemplo n.º 3
0
 def test_mods(self):
     mods = convert(self.data, 'bib', 'mods')
     _save_file('taalman_database_mods.xml', mods)
     assert mods.startswith('<?xml version="1.0" encoding="UTF-8"?>')
     assert mods.endswith('</modsCollection>\n')
     assert '<modsCollection xmlns="http://www.loc.gov/mods/v3">' in mods
     assert '<mods ID="Ful83">' in mods
     assert '<identifier type="citekey">Ful83</identifier>' in mods
     assert 'MacPherson’s graph construction' in mods
     assert '<namePart type="family">Sertöz</namePart>' in mods
Ejemplo n.º 4
0
 def test_mods(self):
     mods = convert(self.data, 'bib', 'mods')
     _save_file('taalman_database_mods.xml', mods)
     assert mods.startswith('<?xml version="1.0" encoding="UTF-8"?>')
     assert mods.endswith('</modsCollection>\n')
     assert '<modsCollection xmlns="http://www.loc.gov/mods/v3">' in mods
     assert '<mods ID="Ful83">' in mods
     assert '<identifier type="citekey">Ful83</identifier>' in mods
     assert 'MacPherson’s graph construction' in mods
     assert '<namePart type="family">Sertöz</namePart>' in mods
Ejemplo n.º 5
0
 def test_mods_conference(self):
     mods = convert(self.data, 'bib', 'mods')
     bib = convert(mods, 'mods', 'bib')
     assert '@InProceedings{Ful83' not in bib
Ejemplo n.º 6
0
 def test_mods_conference(self):
     mods = convert(self.data, 'bib', 'mods')
     bib = convert(mods, 'mods', 'bib')
     assert '@InProceedings{Ful83' not in bib