From adc4079a71c331fcb5c0d506a9d152307b5daeb2 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sun, 26 Nov 2006 06:20:01 +0000 Subject: r9809@Kushana: nickm | 2006-11-26 01:14:14 -0500 Write command-line code in a check for __name__=="__main__" so I can run anonbib stuff through pychecker. svn:r186 --- writeHTML.py | 175 ++++++++++++++++++++++++++++++----------------------------- 1 file changed, 88 insertions(+), 87 deletions(-) (limited to 'writeHTML.py') diff --git a/writeHTML.py b/writeHTML.py index 34e852e..0273f66 100755 --- a/writeHTML.py +++ b/writeHTML.py @@ -75,91 +75,92 @@ def writeHTML(f, sections, sectionType, fieldName, choices, section_urls={}): writeBody(f, sections, section_urls) print >>f, footer%fields -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) - -##### Sorted views: - -## By topic. - -entries = BibTeX.sortEntriesBy(bib.entries, "www_section", "ZZZZZZZZZZZZZZZZZ") -entries = BibTeX.splitSortedEntriesBy(entries, "www_section") -if entries[-1][0].startswith(""): - entries[-1] = ("Miscellaneous", entries[-1][1]) - -entries = [ (s, BibTeX.sortEntriesByDate(ents)) - for s, ents in entries - ] - -f = open(os.path.join(config.OUTPUT_DIR,"topic.html"), 'w') -writeHTML(f, entries, "Topics", "topic", - (("By topic", None), - ("By date", "./date.html"), - ("By author", "./author.html") - )) -f.close() - -## By date. - -entries = BibTeX.sortEntriesByDate(bib.entries) -entries = BibTeX.splitSortedEntriesBy(entries, 'year') -for idx in -1, -2: - if entries[idx][0].startswith(""): - entries[idx] = ("Unknown", entries[idx][1]) - elif entries[idx][0].startswith("forthcoming"): - entries[idx] = ("Forthcoming", entries[idx][1]) -sections = [ ent[0] for ent in entries ] - -first_year = int(entries[0][1][0]['year']) -try: - last_year = int(entries[-1][1][0].get('year')) -except ValueError: - last_year = int(entries[-2][1][0].get('year')) - -years = map(str, range(first_year, last_year+1)) -if entries[-1][0] == 'Unknown': - years.append("Unknown") - -f = open(os.path.join(config.OUTPUT_DIR,"date.html"), 'w') -writeHTML(f, entries, "Years", "date", - (("By topic", "./topic.html"), - ("By date", None), - ("By author", "./author.html") - )) -f.close() - -## By author -entries, url_map = BibTeX.splitEntriesByAuthor(bib.entries) - -f = open(os.path.join(config.OUTPUT_DIR,"author.html"), 'w') -writeHTML(f, entries, "Authors", "author", - (("By topic", "./topic.html"), - ("By date", "./date.html"), - ("By author", None), - ), - url_map) -f.close() - -## The big BibTeX file - -entries = bib.entries[:] -entries = [ (ent.key, ent) for ent in entries ] -entries.sort() -entries = [ ent[1] for ent in entries ] -header,footer = getTemplate(config.BIBTEX_TEMPLATE_FILE) -f = open(os.path.join(config.OUTPUT_DIR,"bibtex.html"), 'w') -print >>f, header % { 'command_line' : "" } -for ent in entries: - print >>f, ( - ("%s" - "
%s
") - %(BibTeX.url_untranslate(ent.key), ent.key, ent.format(90,8,1))) -print >>f, footer -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) + + ##### Sorted views: + + ## By topic. + + entries = BibTeX.sortEntriesBy(bib.entries, "www_section", "ZZZZZZZZZZZZZZZZZ") + entries = BibTeX.splitSortedEntriesBy(entries, "www_section") + if entries[-1][0].startswith(""): + entries[-1] = ("Miscellaneous", entries[-1][1]) + + entries = [ (s, BibTeX.sortEntriesByDate(ents)) + for s, ents in entries + ] + + f = open(os.path.join(config.OUTPUT_DIR,"topic.html"), 'w') + writeHTML(f, entries, "Topics", "topic", + (("By topic", None), + ("By date", "./date.html"), + ("By author", "./author.html") + )) + f.close() + + ## By date. + + entries = BibTeX.sortEntriesByDate(bib.entries) + entries = BibTeX.splitSortedEntriesBy(entries, 'year') + for idx in -1, -2: + if entries[idx][0].startswith(""): + entries[idx] = ("Unknown", entries[idx][1]) + elif entries[idx][0].startswith("forthcoming"): + entries[idx] = ("Forthcoming", entries[idx][1]) + sections = [ ent[0] for ent in entries ] + + first_year = int(entries[0][1][0]['year']) + try: + last_year = int(entries[-1][1][0].get('year')) + except ValueError: + last_year = int(entries[-2][1][0].get('year')) + + years = map(str, range(first_year, last_year+1)) + if entries[-1][0] == 'Unknown': + years.append("Unknown") + + f = open(os.path.join(config.OUTPUT_DIR,"date.html"), 'w') + writeHTML(f, entries, "Years", "date", + (("By topic", "./topic.html"), + ("By date", None), + ("By author", "./author.html") + )) + f.close() + + ## By author + entries, url_map = BibTeX.splitEntriesByAuthor(bib.entries) + + f = open(os.path.join(config.OUTPUT_DIR,"author.html"), 'w') + writeHTML(f, entries, "Authors", "author", + (("By topic", "./topic.html"), + ("By date", "./date.html"), + ("By author", None), + ), + url_map) + f.close() + + ## The big BibTeX file + + entries = bib.entries[:] + entries = [ (ent.key, ent) for ent in entries ] + entries.sort() + entries = [ ent[1] for ent in entries ] + header,footer = getTemplate(config.BIBTEX_TEMPLATE_FILE) + f = open(os.path.join(config.OUTPUT_DIR,"bibtex.html"), 'w') + print >>f, header % { 'command_line' : "" } + for ent in entries: + print >>f, ( + ("%s" + "
%s
") + %(BibTeX.url_untranslate(ent.key), ent.key, ent.format(90,8,1))) + print >>f, footer + f.close() -- cgit v1.2.3-70-g09d2