)]}'
{"keystone/identity/id_generators/sha256.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"90f6e71fc027a640fe0235bf1e1b6a350f303523","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def generate_public_ID(self, mapping):"},{"line_number":25,"context_line":"        m \u003d hashlib.sha256()"},{"line_number":26,"context_line":"        for key in sorted(six.iterkeys(mapping)):"},{"line_number":27,"context_line":"            m.update(str(mapping[key]))"},{"line_number":28,"context_line":"        return m.hexdigest()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_ef22cba1","line":27,"updated":"2014-11-24 16:29:34.000000000","message":"I don\u0027t think this will work in Python 3. I think you\u0027d have to use six.binary_type instead of str. This of course, depends on what data is actually in that mapping.","commit_id":"11fa157c6feb62fbefc11cb3bdf332e0fd57f018"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a456e2c6870b3b60261ab87655b7af341cbef164","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def generate_public_ID(self, mapping):"},{"line_number":25,"context_line":"        m \u003d hashlib.sha256()"},{"line_number":26,"context_line":"        for key in sorted(six.iterkeys(mapping)):"},{"line_number":27,"context_line":"            m.update(str(mapping[key]))"},{"line_number":28,"context_line":"        return m.hexdigest()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a890539_53bec1af","line":27,"in_reply_to":"5a890539_ef22cba1","updated":"2014-12-05 18:14:24.000000000","message":"is py3 compat worth a -1 in keystone yet?","commit_id":"11fa157c6feb62fbefc11cb3bdf332e0fd57f018"}]}
