rreilink avatar rreilink committed b9a6518

fixed encoding for hashing functions for Python 3

Comments (0)

Files changed (2)


 def render_dot(self, code, options, format, prefix='graphviz'):
     """Render graphviz code into a PNG or PDF output file."""
-    hashkey = code.encode('utf-8') + str(options) + \
+    hashkey = (code + str(options) + \
               str(self.builder.config.graphviz_dot) + \
+              ).encode('utf-8')
     fname = '%s-%s.%s' % (prefix, sha(hashkey).hexdigest(), format)
     if hasattr(self.builder, 'imgpath'):
         # HTML


 import re
 import sys
 import inspect
-import __builtin__
+import __builtin__ as __builtin__ # as __builtin__ is for lib2to3 compatibility
     from hashlib import md5
 except ImportError:
 def get_graph_hash(node):
-    return md5(node['content'] + str(node['parts'])).hexdigest()[-10:]
+    encoded = (node['content'] + str(node['parts'])).encode('utf-8')
+    return md5(encoded).hexdigest()[-10:]
 def html_visit_inheritance_diagram(self, node):
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.