Example #1
0
 def test_journal_extract(self):
     r = extract_journal_reference(
         "Science Vol. 338 no. 6108 (2012) pp. 773-775")
     self.assertEqual(r['year'], u'2012')
     self.assertEqual(r['volume'], u'338')
     self.assertEqual(r['page'], u'773-775')
     self.assertEqual(r['title'], u'Science')
Example #2
0
        if not recid or recid == -1:
            # Try again with p_r_s
            arxiv_id = get_minimal_arxiv_id(record)
            if arxiv_id:
                results = perform_request_search(p="reportnumber:%s" %
                                                 (arxiv_id, ),
                                                 of='id')
                if len(results) > 0:
                    # FIXME: Ambiguous results may happen. Now just taking first result..
                    recid = results[0]

        # 773 RefExtract PubNote extraction
        for field in record_get_field_instances(record, '773'):
            for value in field_get_subfield_values(field, 'x'):
                extract = extract_journal_reference(value)
                if extract:
                    subfields = [('x', value)]
                    if extract.get('volume', False):
                        subfields.append(('v', str(extract['volume'])))
                    if extract.get('title', False):
                        subfields.append(('p', str(extract['title'])))
                    if extract.get('year', False):
                        subfields.append(('y', str(extract['year'])))
                    if extract.get('page', False):
                        subfields.append(('c', str(extract['page'])))
                    new_field = create_field(subfields,
                                             global_position=field[4])
                    record_replace_field(record, '773', new_field, field[4])
                    break
        else:
            recid = retrieve_rec_id(record, "")

        if not recid or recid == -1:
            # Try again with p_r_s
            arxiv_id = get_minimal_arxiv_id(record)
            if arxiv_id:
                results = perform_request_search(p="reportnumber:%s" % (arxiv_id,), of='id')
                if len(results) > 0:
                    # FIXME: Ambiguous results may happen. Now just taking first result..
                    recid = results[0]

        # 773 RefExtract PubNote extraction
        for field in record_get_field_instances(record, '773'):
            for value in field_get_subfield_values(field, 'x'):
                extract = extract_journal_reference(value)
                if extract:
                    subfields = [('x', value)]
                    if extract.get('volume', False):
                        subfields.append(('v', str(extract['volume'])))
                    if extract.get('title', False):
                        subfields.append(('p', str(extract['title'])))
                    if extract.get('year', False):
                        subfields.append(('y', str(extract['year'])))
                    if extract.get('page', False):
                        subfields.append(('c', str(extract['page'])))
                    new_field = create_field(subfields, global_position=field[4])
                    record_replace_field(record, '773', new_field, field[4])
                    break

        # 710 Remove collaboration from a 710__g
 def test_journal_extract(self):
     r = extract_journal_reference("Science Vol. 338 no. 6108 (2012) pp. 773-775")
     self.assertEqual(r['year'], u'2012')
     self.assertEqual(r['volume'], u'338')
     self.assertEqual(r['page'], u'773-775')
     self.assertEqual(r['title'], u'Science')