)]}'
{"novaclient/shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"1ac697a308afadbead56cb1941f295c572c37595","unresolved":false,"context_lines":[{"line_number":984,"context_line":"        logger.debug(exc, exc_info\u003d1)"},{"line_number":985,"context_line":"        print(\"ERROR (%(type)s): %(msg)s\" % {"},{"line_number":986,"context_line":"              \u0027type\u0027: exc.__class__.__name__,"},{"line_number":987,"context_line":"              \u0027msg\u0027: six.text_type(exc).encode(\u0027utf-8\u0027)},"},{"line_number":988,"context_line":"              file\u003dsys.stderr)"},{"line_number":989,"context_line":"        sys.exit(1)"},{"line_number":990,"context_line":"    except KeyboardInterrupt:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_cf8ff673","line":987,"updated":"2016-07-22 15:44:55.000000000","message":"Why isn\u0027t encodeutils.exception_to_unicode() sufficient here?  Why translate to text type and encode?  Further, this code appears to add the bytes prefix, judging by the update to the unit tests; what can we do to eliminate that?","commit_id":"b16700f5be494e9fd436052d7d80b0d6cabd40bb"},{"author":{"_account_id":20182,"name":"Bhagyashri Shewale","email":"bshewale@redhat.com","username":"bhagyashris"},"change_message_id":"94900b67190c3f4f2b168fd584060a4b6c4a5aea","unresolved":false,"context_lines":[{"line_number":984,"context_line":"        logger.debug(exc, exc_info\u003d1)"},{"line_number":985,"context_line":"        print(\"ERROR (%(type)s): %(msg)s\" % {"},{"line_number":986,"context_line":"              \u0027type\u0027: exc.__class__.__name__,"},{"line_number":987,"context_line":"              \u0027msg\u0027: six.text_type(exc).encode(\u0027utf-8\u0027)},"},{"line_number":988,"context_line":"              file\u003dsys.stderr)"},{"line_number":989,"context_line":"        sys.exit(1)"},{"line_number":990,"context_line":"    except KeyboardInterrupt:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_dfb655f8","line":987,"in_reply_to":"dada55a8_cf8ff673","updated":"2016-07-25 08:16:32.000000000","message":"Hi Kevin, thanks for review.\n\nencodeutils.exception_to_unicode() method changes the type of \"exc\" to the unicode for python2 \nand that exc of unicode type raises the \"UnicodeEncodeError\"  at the time of printing the exception error message \nbecause it is not encoded with proper format. so to display the proper error message there is need to translate \"exc\" to text type \nand then encode it with \u0027utf-8\u0027 and this tranlation of text type makes the code compatible for both py2 and py3.\nbyte prefix is required because in py3 the encoding of the string with \u0027utf-8\u0027 always returns the byte string.","commit_id":"b16700f5be494e9fd436052d7d80b0d6cabd40bb"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"93f41f6277ff0d52f2345223d599ebb18196551e","unresolved":false,"context_lines":[{"line_number":984,"context_line":"        logger.debug(exc, exc_info\u003d1)"},{"line_number":985,"context_line":"        print(\"ERROR (%(type)s): %(msg)s\" % {"},{"line_number":986,"context_line":"              \u0027type\u0027: exc.__class__.__name__,"},{"line_number":987,"context_line":"              \u0027msg\u0027: six.text_type(exc).encode(\u0027utf-8\u0027)},"},{"line_number":988,"context_line":"              file\u003dsys.stderr)"},{"line_number":989,"context_line":"        sys.exit(1)"},{"line_number":990,"context_line":"    except KeyboardInterrupt:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_fce23100","line":987,"in_reply_to":"dada55a8_dfb655f8","updated":"2016-07-25 15:37:28.000000000","message":"OK, I can accept the bulk of that, but I need to see the byte prefix removed.  This message is meant to display to the user, and we want to minimize user confusion on this point…","commit_id":"b16700f5be494e9fd436052d7d80b0d6cabd40bb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"beea9dc755e7b060a1cafeb744e17a30c51ab416","unresolved":false,"context_lines":[{"line_number":982,"context_line":"        OpenStackComputeShell().main(argv)"},{"line_number":983,"context_line":"    except Exception as exc:"},{"line_number":984,"context_line":"        logger.debug(exc, exc_info\u003d1)"},{"line_number":985,"context_line":"        print(_(\"ERROR (%(type)s): %(msg)s\") % {"},{"line_number":986,"context_line":"              \u0027type\u0027: exc.__class__.__name__,"},{"line_number":987,"context_line":"              \u0027msg\u0027: encodeutils.exception_to_unicode(exc)},"},{"line_number":988,"context_line":"              file\u003dsys.stderr)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_984f1b33","side":"PARENT","line":985,"range":{"start_line":985,"start_character":14,"end_line":985,"end_character":16},"updated":"2016-09-08 15:20:02.000000000","message":"Don\u0027t we still need to translate this?","commit_id":"ef5dc3211dc5393c5e050f5b607b9c7884e508d2"}],"novaclient/tests/unit/test_shell.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"1ac697a308afadbead56cb1941f295c572c37595","unresolved":false,"context_lines":[{"line_number":796,"context_line":"            err \u003d sys.stderr.getvalue()"},{"line_number":797,"context_line":"        msg \u003d \"ERROR (MyException): message\\n\""},{"line_number":798,"context_line":"        if six.PY3:"},{"line_number":799,"context_line":"            msg \u003d \"ERROR (MyException): b\\\u0027message\u0027\\n\""},{"line_number":800,"context_line":"        self.assertEqual(err, msg)"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_0f258ead","line":799,"range":{"start_line":799,"start_character":41,"end_line":799,"end_character":42},"updated":"2016-07-22 15:44:55.000000000","message":"Why are you escaping the quote character here?","commit_id":"b16700f5be494e9fd436052d7d80b0d6cabd40bb"}],"novaclient/v2/hosts.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"0067e014e264a19680c497e47a46dc876dd41b44","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        :param action: The action to perform"},{"line_number":77,"context_line":"        returns: An instance of novaclient.base.TupleWithMeta"},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        url \u003d \u0027/os-hosts/%s/%s\u0027 % (host, action)"},{"line_number":80,"context_line":"        resp, body \u003d self.api.client.get(url)"},{"line_number":81,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_0098fe1a","line":79,"updated":"2016-08-30 15:45:29.000000000","message":"Honestly, I think this change is unrelated, but I\u0027m not going to make an issue of it.","commit_id":"d8c07006dd85ad64a4a4a4cb47558c0a19e42e24"}]}
