Exemple #1
0
 def test_vol_year_page(self):
     "<vol>, (<year>) <page> "
     ref_line = u"""24, (1930) 418"""
     r = find_numeration(ref_line)
     self.assertEqual(r['volume'], u"24")
     self.assertEqual(r['year'], u"1930")
     self.assertEqual(r['page'], u"418")
Exemple #2
0
 def test_vol_page_year(self):
     "<vol>, <page> (<year>)"
     ref_line = u"""24, 418 (1930)"""
     r = find_numeration(ref_line)
     self.assertEqual(r['volume'], u"24")
     self.assertEqual(r['year'], u"1930")
     self.assertEqual(r['page'], u"418")
 def test_vol_year_page(self):
     "<vol>, (<year>) <page> "
     ref_line = u"""24, (1930) 418"""
     r = find_numeration(ref_line)
     self.assertEqual(r['volume'], u"24")
     self.assertEqual(r['year'], u"1930")
     self.assertEqual(r['page'], u"418")
 def test_vol_page_year(self):
     "<vol>, <page> (<year>)"
     ref_line = u"""24, 418 (1930)"""
     r = find_numeration(ref_line)
     self.assertEqual(r['volume'], u"24")
     self.assertEqual(r['year'], u"1930")
     self.assertEqual(r['page'], u"418")
def look_for_implied_ibids(splitted_citations):
    def look_for_journal(els):
        for el in els:
            if el['type'] == 'JOURNAL':
                return True
        return False

    current_journal = None
    for citation in splitted_citations:
        if current_journal and not look_for_journal(citation):
            for el in citation:
                if el['type'] == 'MISC':
                    numeration = find_numeration(el['misc_txt'])
                    if numeration:
                        if not numeration['series']:
                            numeration['series'] = extract_series_from_volume(current_journal['volume'])
                        if numeration['series']:
                            volume = numeration['series'] + numeration['volume']
                        else:
                            volume = numeration['volume']
                        ibid_el = {'type'       : 'JOURNAL',
                                   'misc_txt'   : '',
                                   'title'      : current_journal['title'],
                                   'volume'     : volume,
                                   'year'       : numeration['year'],
                                   'page'       : numeration['page'],
                                   'page_end'   : numeration['page_end'],
                                   'is_ibid'    : True,
                                   'extra_ibids': []}
                        citation.append(ibid_el)
                        el['misc_txt'] = el['misc_txt'][numeration['len']:]

        current_journal = None
        for el in citation:
            if el['type'] == 'JOURNAL':
                current_journal = el

    return splitted_citations