bib2html.py: Turn into python3
authorStefan Huber <shuber@sthu.org>
Thu, 4 Jun 2020 07:47:54 +0000 (09:47 +0200)
committerStefan Huber <shuber@sthu.org>
Thu, 4 Jun 2020 07:47:54 +0000 (09:47 +0200)
bib2html.py

index 111d1085db02106616cfcf92011846fab8c2f0f6..3ad3a93ee061d6f44088be9ac134b7f308ce9d43 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
 """Creates a webpage with all entries of a .bib file"""
 
 __version__ = "1.0"
@@ -47,7 +47,7 @@ def format_field(bibentry, field, pre='', post=''):
     return ""
 
 def format_author(a):
-    return  ' '.join(' '.join(p) for p in (a.first(), a.middle(), a.prelast(), a.last(), a.lineage()) if p)
+    return  ' '.join(' '.join(p) for p in (a.first_names, a.middle_names, a.prelast_names, a.last_names, a.lineage_names) if p)
 
 def format_authors(entry):
     return ", ".join([format_author(a) for a in entry.persons['author']])
@@ -127,24 +127,19 @@ def format_entry(entry):
     return "<br/>\n".join(lines)
 
 
-def entryCompareDate(p1, p2):
-    k1, e1 = p1
-    k2, e2 = p2
+def entryDateSortKey(p):
+    k, e = p
 
-
-    def toStr(e):
-        month2num = { 'jan' : '01', 'feb' : '02', 'mar' : '03', \
-                'apr' : '04', 'may' : '05', 'jun' : '06', \
-                'jul' : '07', 'aug' : '08', 'sep' : '09', \
-                'oct' : '10', 'nov' : '11', 'dec' : '12'}
-        month = e.fields['month'].lower()[0:3]
-        if month in month2num:
-            month = month2num[month]
-        else:
-            month = ""
-        return e.fields['year'] + "-" + month
-
-    return cmp(toStr(e1), toStr(e2))
+    month2num = { 'jan' : '01', 'feb' : '02', 'mar' : '03', \
+            'apr' : '04', 'may' : '05', 'jun' : '06', \
+            'jul' : '07', 'aug' : '08', 'sep' : '09', \
+            'oct' : '10', 'nov' : '11', 'dec' : '12'}
+    month = e.fields['month'].lower()[0:3]
+    if month in month2num:
+        month = month2num[month]
+    else:
+        month = ""
+    return e.fields['year'] + "-" + month
 
 
 def usage():
@@ -200,8 +195,8 @@ if __name__ == "__main__":
 
         print("<h2>" + year + "</h2>")
 
-        iteritems = list(entries.iteritems())
-        iteritems.sort(cmp=entryCompareDate, reverse=True)
+        iteritems = list(entries.items())
+        iteritems.sort(key=entryDateSortKey, reverse=True)
         for key, entry in iteritems:
 
             if entry.fields['year'] != year:
@@ -210,7 +205,8 @@ if __name__ == "__main__":
             print("<div class=bibentry>")
             print("<a class=bibentry_key id=" + key + ">[" + key + "]</a><br/>")
 
-            print(format_entry(entry).encode('utf8'))
+            e = format_entry(entry)
+            print(e)
 
             print("</div>\n")