def index_bib_files_in_directory(output_handle, dirname, basenames): for basename in basenames: if os.path.splitext(basename)[1] != '.bib': continue filename = os.path.join(dirname, basename) print 'Checking', filename try: BibTeX.parseFile(filename) except: traceback.print_exc() print 'Skipping', filename, 'because of errors' continue with open(filename) as input_handle: for line in input_handle: output_handle.write(line)
return False URLTYPES=[ "pdf", "ps", "txt", "ps_gz", "html" ] if __name__ == '__main__': # First download the bibliography file. import BibTeX suggest = False if sys.argv[1] == 'suggest': suggest = True del sys.argv[1] config.load(sys.argv[1]) if config.CACHE_UMASK != None: os.umask(config.CACHE_UMASK) bib = BibTeX.parseFile(config.MASTER_BIB) remove_old() print "Downloading missing ranks." for ent in bib.entries: getCite(ent['title'], cache=True, update=True) if suggest: for ent in bib.entries: haveOne = False for utype in URLTYPES: if ent.has_key("www_%s_url"%utype): haveOne = True break if haveOne: continue
print >> f, header % { 'command_line': "", 'title': config.TAG_TITLES[tag], 'root': root } for ent in entries: print >> f, ( ("<tr><td class='bibtex'><a name='%s'>%s</a>" "<pre class='bibtex'>%s</pre></td></tr>") % (BibTeX.url_untranslate(ent.key), ent.key, ent.format(90, 8, 1))) print >> f, footer f.close() f = open(os.path.join(outdir, "bibtex.json"), 'w') json.dump(entries, f, default=jsonDumper) f.close() if __name__ == '__main__': if len(sys.argv) == 2: print "Loading from %s" % sys.argv[1] else: print >> sys.stderr, "Expected a single configuration file as an argument" sys.exit(1) config.load(sys.argv[1]) bib = BibTeX.parseFile(config.MASTER_BIB) for tag in config.TAG_DIRECTORIES.keys(): writePageSet(config, bib, tag)
def emitKnown(f, ent, matches): print >>f, "%% Candidates are:", ", ".join([e.key for g,e in matches]) print >>f, "%%" print >>f, "%"+(ent.format(77,4,1,invStrings).replace("\n", "\n%")) if __name__ == '__main__': if len(sys.argv) != 3: print "reconcile.py expects 2 arguments" sys.exit(1) config.load(sys.argv[1]) print "========= Scanning master ==========" master = MasterBibTeX() master = BibTeX.parseFile(config.MASTER_BIB, result=master) master.buildIndex() print "========= Scanning new file ========" try: fn = sys.argv[2] input = BibTeX.parseFile(fn) except BibTeX.ParseError, e: print "Error parsing %s: %s"%(fn,e) sys.exit(1) f = open('tmp.bib', 'w') keys = input.newStrings.keys() keys.sort() for k in keys: v = input.newStrings[k]
def emitKnown(f, ent, matches): print >> f, "%% Candidates are:", ", ".join([e.key for g, e in matches]) print >> f, "%%" print >> f, "%" + (ent.format(77, 4, 1, invStrings).replace("\n", "\n%")) if __name__ == '__main__': if len(sys.argv) != 3: print "reconcile.py expects 2 arguments" sys.exit(1) config.load(sys.argv[1]) print "========= Scanning master ==========" master = MasterBibTeX() master = BibTeX.parseFile(config.MASTER_BIB, result=master) master.buildIndex() print "========= Scanning new file ========" try: fn = sys.argv[2] input = BibTeX.parseFile(fn) except BibTeX.ParseError, e: print "Error parsing %s: %s" % (fn, e) sys.exit(1) f = open('tmp.bib', 'w') keys = input.newStrings.keys() keys.sort() for k in keys: v = input.newStrings[k]