config.py (1734B)
1 # Copyright 2003-2006, Nick Mathewson. See LICENSE for licensing info. 2 # Copyright 2018, 2019 ng0 <ng0@n0.is>. 3 4 import re 5 6 _KEYS = ["ALL_TAGS", 7 "ALPHABETIZE_AUTHOR_AS", "AUTHOR_URLS", "CACHE_DIR", 8 "CACHE_SECTIONS", "CACHE_UMASK", "CITE_CACHE_DIR", 9 "COLLAPSE_AUTHORS", 10 "DOWNLOAD_CONNECT_TIMEOUT", "INITIAL_STRINGS", 11 "MASTER_BIB", "NO_COLLAPSE_AUTHORS", "OMIT_ENTRIES", 12 "OUTPUT_DIR", "TEMPLATE_FILE", "BIBTEX_TEMPLATE_FILE", 13 "REQUIRE_KEY", "TAG_TITLES", "TAG_DIRECTORIES", "TAG_SHORT_TITLES", 14 "MULTI_VAL_FIELDS", "BIB_DIRECTORY"] 15 16 for _k in _KEYS: 17 globals()[_k] = None 18 del _k 19 20 def load(cfgFile): 21 """ 22 Load config FILE 23 """ 24 mod = {} 25 exec(compile(open(cfgFile, "rb").read(), cfgFile, 'exec'), mod) 26 for _k in _KEYS: 27 try: 28 globals()[_k] = mod[_k] 29 except KeyError: 30 raise KeyError("Configuration option %s is missing" % _k) 31 32 INITIAL_STRINGS.update(_EXTRA_INITIAL_STRINGS) 33 AUTHOR_RE_LIST[:] = [ 34 (re.compile(k, re.I), v,) for k, v in list(AUTHOR_URLS.items()) 35 ] 36 37 NO_COLLAPSE_AUTHORS_RE_LIST[:] = [ 38 re.compile(pat, re.I) for pat in NO_COLLAPSE_AUTHORS 39 ] 40 41 ALPHABETIZE_AUTHOR_AS_RE_LIST[:] = [ 42 (re.compile(k, re.I), v,) for k, v in list(ALPHABETIZE_AUTHOR_AS.items()) 43 ] 44 45 _EXTRA_INITIAL_STRINGS = { 46 # Months 47 'jan' : 'January', 'feb' : 'February', 48 'mar' : 'March', 'apr' : 'April', 49 'may' : 'May', 'jun' : 'June', 50 'jul' : 'July', 'aug' : 'August', 51 'sep' : 'September', 'oct' : 'October', 52 'nov' : 'November', 'dec' : 'December',} 53 54 AUTHOR_RE_LIST = [] 55 56 NO_COLLAPSE_AUTHORS_RE_LIST = [] 57 58 ALPHABETIZE_AUTHOR_AS_RE_LIST = []