Example #1
0
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)
Example #2
0
      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
Example #3
0
    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)
Example #4
0
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]
Example #5
0
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]