)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"108918736a1f4a43462347c94b9f961ead1a273f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Upgrade code to be python 3 compatible"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Various py2 to py3 fixes:"},{"line_number":10,"context_line":"* func.im_self to func.__self__"},{"line_number":11,"context_line":"* func.func_name to func.__name__"},{"line_number":12,"context_line":"* basestring to six.string_types"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_39aaaed5","line":9,"updated":"2015-06-29 13:54:07.000000000","message":"Prefer link to the relevant docs here. There should be an official doc that explains the rational of the fixes below.","commit_id":"b815cb5e7882f0d6b83fef3552c0ec84e7421404"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"00795181298b14ac599b602e3275253de0057736","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Upgrade code to be python 3 compatible"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Various py2 to py3 fixes:"},{"line_number":10,"context_line":"* func.im_self to func.__self__"},{"line_number":11,"context_line":"* func.func_name to func.__name__"},{"line_number":12,"context_line":"* basestring to six.string_types"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_a142dc3c","line":9,"in_reply_to":"ba3cc151_39aaaed5","updated":"2015-06-30 10:00:06.000000000","message":"I can do this, however I thought it would be overkill as many of these issues are well known and easy to lookup.","commit_id":"b815cb5e7882f0d6b83fef3552c0ec84e7421404"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"9addaa0f8917e568be0e93ec974355068830dde2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Upgrade code to be python 3 compatible"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Various py2 to py3 fixes:"},{"line_number":10,"context_line":"* func.im_self to func.__self__"},{"line_number":11,"context_line":"* func.func_name to func.__name__"},{"line_number":12,"context_line":"* basestring to six.string_types"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_06d11323","line":9,"in_reply_to":"ba3cc151_a142dc3c","updated":"2015-07-01 14:36:17.000000000","message":"I saw you have added links in the revised patch. Thanks. I believe Magnum Devs will appreciate that!","commit_id":"b815cb5e7882f0d6b83fef3552c0ec84e7421404"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"9191d0406db3b4b0b6daaf43fa16e0375a89ecbd","unresolved":false,"context_lines":[{"line_number":15,"context_line":"* use bytes where appropriate instead of str"},{"line_number":16,"context_line":"* convert bytes to string for use with re"},{"line_number":17,"context_line":"* update regex match for dealing with unicode characters, as \u0027\\w\u0027"},{"line_number":18,"context_line":"  matches unicode word characters in python 3 such as 的."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Partially-Implements: blueprint magnum-python3"},{"line_number":21,"context_line":"Change-Id: I6a7e13feeecd66910f2046956b1edc4d871208f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_14f3d69f","line":18,"updated":"2015-06-30 00:29:45.000000000","message":"as 的 what\u0027s it ? \u0027的\u0027 messy code ?","commit_id":"b815cb5e7882f0d6b83fef3552c0ec84e7421404"},{"author":{"_account_id":11650,"name":"Tom Cammann","email":"tom.cammann@hpe.com","username":"cammann"},"change_message_id":"00795181298b14ac599b602e3275253de0057736","unresolved":false,"context_lines":[{"line_number":15,"context_line":"* use bytes where appropriate instead of str"},{"line_number":16,"context_line":"* convert bytes to string for use with re"},{"line_number":17,"context_line":"* update regex match for dealing with unicode characters, as \u0027\\w\u0027"},{"line_number":18,"context_line":"  matches unicode word characters in python 3 such as 的."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Partially-Implements: blueprint magnum-python3"},{"line_number":21,"context_line":"Change-Id: I6a7e13feeecd66910f2046956b1edc4d871208f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_8119d87b","line":18,"in_reply_to":"ba3cc151_14f3d69f","updated":"2015-06-30 10:00:06.000000000","message":"This is an example a character that \u0027\\w\u0027 matches in python 3, nothing to do with its literal meaning.","commit_id":"b815cb5e7882f0d6b83fef3552c0ec84e7421404"},{"author":{"_account_id":7049,"name":"Kai Qiang Wu(Kennan)","email":"wkq5325@gmail.com","username":"Kennan"},"change_message_id":"7a751c855898b390736dd3a869a3ff87d319bde6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"* use bytes where appropriate instead of str"},{"line_number":16,"context_line":"* convert bytes to string for use with re"},{"line_number":17,"context_line":"* update regex match for dealing with unicode characters, as \u0027\\w\u0027"},{"line_number":18,"context_line":"  matches unicode word characters in python 3 such as 的."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Partially-Implements: blueprint magnum-python3"},{"line_number":21,"context_line":"Change-Id: I6a7e13feeecd66910f2046956b1edc4d871208f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_8c54af21","line":18,"in_reply_to":"ba3cc151_8119d87b","updated":"2015-06-30 10:49:12.000000000","message":"OK. Tom. Thanks for that info","commit_id":"b815cb5e7882f0d6b83fef3552c0ec84e7421404"}],"magnum/common/safe_utils.py":[{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"13bddb4bb5bbef0d05c469312d6e7c59e220dcfb","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    if \u0027self\u0027 in argnames[0] or \u0027cls\u0027 \u003d\u003d argnames[0]:"},{"line_number":39,"context_line":"        # The function may not actually be a method or have im_self."},{"line_number":40,"context_line":"        # Typically seen when it\u0027s stubbed with mox."},{"line_number":41,"context_line":"        if inspect.ismethod(function) and hasattr(function, \u0027im_self\u0027):"},{"line_number":42,"context_line":"            keyed_args[argnames[0]] \u003d function.__self__"},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            keyed_args[argnames[0]] \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_2b13c25c","line":41,"updated":"2015-07-01 14:31:08.000000000","message":"Need to check attribute \u0027__self__\u0027 instead.","commit_id":"04e14823475f1cbe95006a6a640cfb931fc136f0"}]}
