bd150ad1d8fd — Phillip Alday 6 years ago
better compatibility with python 2 + 3
1 files changed, 11 insertions(+), 2 deletions(-)

M extractbib.py
M extractbib.py +11 -2
@@ 51,7 51,12 @@ def dict2bib(ke,di):
    except KeyError:
       b = "@"+di['ENTRYTYPE'].upper()+"{"+ke+",\n"
 
-   for (k, v) in sorted(di.iteritems()):
+   try:
+      items = di.iteritems()
+   except AttributeError:
+      items = di.items()
+
+   for (k, v) in sorted(items):
       if k.lower().strip() in non_local_fields:
          if k == 'link':
             k = 'url'

          
@@ 81,7 86,11 @@ if __name__ == "__main__":
    ## Step 3 - extract the used entries
    used_refs = {key: refs[key] for key in keys if key in refs}
    ## Step 4 - convert the dicts back into bibtex
-   refs_as_bib = [dict2bib(k, v) for (k, v) in used_refs.iteritems()]
+   try:
+      used_refs_iter = used_refs.iteritems()
+   except AttributeError:
+      used_refs_iter = used_refs.items()
+   refs_as_bib = [dict2bib(k, v) for (k, v) in used_refs_iter ]
    ## Step 5 - write the output file
    with codecs.open(out_file, 'w', 'utf-8-sig') as of:
       of.writelines(refs_as_bib)