def get_persistent_identifiers_keys(keys):
    """
    Acording with @persistent_identifier it recollects all the fields that
    could be considered as persistent identifiers
    """
    from invenio.bibfield_config_engine import BibFieldParser

    def smart_set_element(the_list, index, value):
        try:
            the_list[index] = value
        except IndexError:
            for i in xrange(len(the_list), index+1):
                the_list.append(None)
            the_list[index] = value

    tmp = []
    for key in keys:
        try:
            if not BibFieldParser.field_definitions()[key]['persistent_identifier'] is None:
                smart_set_element(tmp, BibFieldParser.field_definitions()[key]['persistent_identifier'], key)
        except TypeError:
            # Work arround for [0] and [n]
            for kkey in BibFieldParser.field_definitions()[key]:
                if BibFieldParser.field_definitions()[kkey]['persistent_identifier']:
                    smart_set_element(tmp, BibFieldParser.field_definitions()[key]['persistent_identifier'], key)
        except:
            continue

    return filter(None, tmp)
 def setUpClass(cls):
     from invenio.bibfield_config_engine import BibFieldParser
     BibFieldParser.reparse()
示例#3
0
 def field_definitions(self):
     return FieldParser.field_definitions()
 def setUp(self):
     """Loads bibfield configuration test files"""
     BibFieldParser._field_definitions = {}
     BibFieldParser._legacy_field_matchings = {}
     parser = BibFieldParser(main_config_file="test_bibfield.cfg")._create()
     self.config_rules = BibFieldParser.field_definitions()
 def setUp(self):
     """Loads bibfield configuration test files"""
     super(BibFieldParserUnitTests, self).setUp()
     from invenio.bibfield_config_engine import BibFieldParser
     parser = BibFieldParser(main_config_file="test_bibfield.cfg")
     self.config_rules = parser.config_rules
 def setUpClass(cls):
     from invenio.bibfield_config_engine import BibFieldParser
     BibFieldParser.reparse()
示例#7
0
 def field_definitions(self):
     return FieldParser.field_definitions()
示例#8
0
def load():
    """Loads BibField config."""
    print ">>> Going to load BibField config..."
    from invenio.bibfield_config_engine import BibFieldParser
    BibFieldParser().write_to_file()
    print ">>> BibField config load successfully."
 def setUp(self):
     """Loads bibfield configuration test files"""
     BibFieldParser._field_definitions = {}
     BibFieldParser._legacy_field_matchings = {}
     parser = BibFieldParser(main_config_file="test_bibfield.cfg")._create()
     self.config_rules = BibFieldParser.field_definitions()