Esempio n. 1
0
 def test_fix_dashes(self):
     self.assertEqual(fix_dashes(u"A–A"), "A-A")
     self.assertEqual(fix_dashes(u'-–'), '-')
     self.assertEqual(fix_dashes(u'––'), '-')
     self.assertEqual(fix_dashes(u'–––'), '-')
Esempio n. 2
0
 def test_fix_dashes(self):
     """Test dashes."""
     self.assertEqual(fix_dashes(u"A–A"), "A-A")
     self.assertEqual(fix_dashes(u'-–'), '-')
     self.assertEqual(fix_dashes(u'––'), '-')
     self.assertEqual(fix_dashes(u'–––'), '-')
Esempio n. 3
0
 def _add_references(self, xml_doc, rec, refextract_callback=None):
     for label, authors, doi, issue, page, title, volume, year,\
             textref, ext_link, isjournal, comment, journal, publisher,\
             editors, book_title in self.get_references(xml_doc):
         subfields = []
         if textref and not authors:
             textref = textref.replace('\"', '\'')
             if refextract_callback:
                 ref_xml = refextract_callback(textref)
                 dom = xml.dom.minidom.parseString(ref_xml)
                 fields = dom.getElementsByTagName("datafield")[0]
                 fields = fields.getElementsByTagName("subfield")
                 for field in fields:
                     data = field.firstChild.data
                     code = field.getAttribute("code")
                     if code == 'r':
                         data = fix_dashes(data)
                     subfields.append((code, data))
                 if fields:
                     subfields.append(('9', 'refextract'))
             else:
                 subfields.append(('m', textref))
             if label:
                 label = re.sub("[\[\].)]", "", label)
                 subfields.append(('o', label))
             if subfields:
                 record_add_field(rec, '999', ind1='C', ind2='5',
                                  subfields=subfields)
         else:
             if doi:
                 subfields.append(('a', doi))
             for author in authors:
                 subfields.append(('h', author))
             if ext_link:
                 ext_link = fix_dashes(ext_link)
                 subfields.append(('r', ext_link))
             if title:
                 subfields.append(('t', title))
             elif textref:
                 subfields.append(('m', textref))
             if publisher:
                 subfields.append(('p', publisher))
             if volume:
                 subfields.append(('v', volume))
             if year:
                 subfields.append(('y', year))
             if comment:
                 subfields.append(('m', comment))
             for editor in editors:
                 subfields.append(('e', editor))
             if book_title:
                 subfields.append(('q', book_title))
             if label:
                 label = re.sub("[\[\].)]", "", label)
                 subfields.append(('o', label))
             if journal:
                 journal, vol = fix_journal_name(journal,
                                                 self.journal_mappings)
                 volume = vol + volume
                 if volume and page:
                     journal = journal + "," + volume + "," + page
                     subfields.append(('s', journal))
                 elif volume:
                     journal = journal + "," + volume
                     subfields.append(('s', journal))
                 else:
                     subfields.append(('s', journal))
             if textref:
                 subfields.append(('m', textref))
             if subfields:
                 record_add_field(rec, '999', ind1='C', ind2='5',
                                  subfields=subfields)
Esempio n. 4
0
 def _add_references(self, xml_doc, rec, refextract_callback=None):
     for label, authors, doi, issue, page, title, volume, year,\
             textref, ext_link, isjournal, comment, journal, publisher,\
             editors, book_title in self.get_references(xml_doc):
         subfields = []
         if textref and not authors:
             textref = textref.replace('\"', '\'')
             if refextract_callback:
                 ref_xml = refextract_callback(textref)
                 dom = xml.dom.minidom.parseString(ref_xml)
                 fields = dom.getElementsByTagName("datafield")[0]
                 fields = fields.getElementsByTagName("subfield")
                 for field in fields:
                     data = field.firstChild.data
                     code = field.getAttribute("code")
                     if code == 'r':
                         data = fix_dashes(data)
                     subfields.append((code, data))
                 if fields:
                     subfields.append(('9', 'refextract'))
             else:
                 subfields.append(('m', textref))
             if label:
                 label = re.sub("[\[\].)]", "", label)
                 subfields.append(('o', label))
             if subfields:
                 record_add_field(rec,
                                  '999',
                                  ind1='C',
                                  ind2='5',
                                  subfields=subfields)
         else:
             if doi:
                 subfields.append(('a', doi))
             for author in authors:
                 subfields.append(('h', author))
             if ext_link:
                 ext_link = fix_dashes(ext_link)
                 subfields.append(('r', ext_link))
             if title:
                 subfields.append(('t', title))
             elif textref:
                 subfields.append(('m', textref))
             if publisher:
                 subfields.append(('p', publisher))
             if volume:
                 subfields.append(('v', volume))
             if year:
                 subfields.append(('y', year))
             if comment:
                 subfields.append(('m', comment))
             for editor in editors:
                 subfields.append(('e', editor))
             if book_title:
                 subfields.append(('q', book_title))
             if label:
                 label = re.sub("[\[\].)]", "", label)
                 subfields.append(('o', label))
             if journal:
                 journal, vol = fix_journal_name(journal,
                                                 self.journal_mappings)
                 volume = vol + volume
                 if volume and page:
                     journal = journal + "," + volume + "," + page
                     subfields.append(('s', journal))
                 elif volume:
                     journal = journal + "," + volume
                     subfields.append(('s', journal))
                 else:
                     subfields.append(('s', journal))
             if textref:
                 subfields.append(('m', textref))
             if subfields:
                 record_add_field(rec,
                                  '999',
                                  ind1='C',
                                  ind2='5',
                                  subfields=subfields)