)]}'
{"openstack/exceptions.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"c685e0b45dc9b7b1ca88244979e3613b27c1f6f9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def __str__(self):"},{"line_number":66,"context_line":"        msg \u003d self.__class__.__name__ + \": \" + self.message"},{"line_number":67,"context_line":"        if self.details:"},{"line_number":68,"context_line":"            msg +\u003d \", \" + str(self.details)"},{"line_number":69,"context_line":"        return msg"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_2a6f2561","line":68,"updated":"2014-09-15 21:12:28.000000000","message":"If we\u0027re going to add anything, I would think we should put just the message part of self.details in here rather than str\u0027ing the full object which duplicates the error code and error name.","commit_id":"21734a998821595eec57ba8b04a0c1b76e8c8eca"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"78fad3a1c82176ee9c409953ad968867e85690cc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        super(HttpException, self).__init__(message)"},{"line_number":63,"context_line":"        self.details \u003d details"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __str__(self):"},{"line_number":66,"context_line":"        msg \u003d self.__class__.__name__ + \": \" + self.message"},{"line_number":67,"context_line":"        if self.details:"},{"line_number":68,"context_line":"            msg +\u003d \", \" + str(self.details)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_264f0bbf","line":65,"updated":"2014-10-21 19:17:21.000000000","message":"Do we need a __unicode__ implementation, too? Or does the base class provide a default for us?","commit_id":"f4c3a3fbfa8e6f26a5e58a978b8d5aa4e35fa126"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"78fad3a1c82176ee9c409953ad968867e85690cc","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    def __str__(self):"},{"line_number":66,"context_line":"        msg \u003d self.__class__.__name__ + \": \" + self.message"},{"line_number":67,"context_line":"        if self.details:"},{"line_number":68,"context_line":"            msg +\u003d \", \" + str(self.details)"},{"line_number":69,"context_line":"        return msg"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_06d767c0","line":68,"updated":"2014-10-21 19:17:21.000000000","message":"Is there any chance self.details will include data that can\u0027t be encoded to ASCII?","commit_id":"f4c3a3fbfa8e6f26a5e58a978b8d5aa4e35fa126"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2181afbe4630a6a0a9d160e4e18091abdfd7b5ff","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.details \u003d details"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def __unicode__(self):"},{"line_number":68,"context_line":"        msg \u003d self.__class__.__name__ + \": \" + self.message"},{"line_number":69,"context_line":"        if self.details:"},{"line_number":70,"context_line":"            msg +\u003d \", \" + six.text_type(self.details)"},{"line_number":71,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_b9784890","line":68,"updated":"2014-11-13 15:59:40.000000000","message":"I feel like this should be simpler. Why not just do \n\n    __unicode__ \u003d __str__ \n\nAfter definiing str?","commit_id":"6431ddfa14352473ba2c89813d4bc23c233cf0b5"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"7871e66f3971575c0557848a002124043bd78f56","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        self.details \u003d details"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def __unicode__(self):"},{"line_number":68,"context_line":"        msg \u003d self.__class__.__name__ + \": \" + self.message"},{"line_number":69,"context_line":"        if self.details:"},{"line_number":70,"context_line":"            msg +\u003d \", \" + six.text_type(self.details)"},{"line_number":71,"context_line":"        return msg"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_5fd016f6","line":68,"in_reply_to":"5a890539_b9784890","updated":"2014-11-13 23:29:37.000000000","message":"Well, I kind of felt that str should call unicode, so I went that way.","commit_id":"6431ddfa14352473ba2c89813d4bc23c233cf0b5"}],"openstack/transport.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2181afbe4630a6a0a9d160e4e18091abdfd7b5ff","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    def _parse_error_response(self, resp):"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            jresp \u003d resp.json()"},{"line_number":209,"context_line":"            # compute"},{"line_number":210,"context_line":"            if \"badRequest\" in jresp and \"message\" in jresp[\"badRequest\"]:"},{"line_number":211,"context_line":"                return jresp[\"badRequest\"][\"message\"]"},{"line_number":212,"context_line":"            # identity"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_99838c55","line":209,"updated":"2014-11-13 15:59:40.000000000","message":"Would this be more useful defined on HTTPException? You could do something like\n\n    raise exceptions.HttpException.from_response(e, resp)\n\nAnd then from_response would handle calling six.text_type and parsing the response. It might be helpful if other places/classes need to use it in the future.","commit_id":"6431ddfa14352473ba2c89813d4bc23c233cf0b5"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"7871e66f3971575c0557848a002124043bd78f56","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    def _parse_error_response(self, resp):"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            jresp \u003d resp.json()"},{"line_number":209,"context_line":"            # compute"},{"line_number":210,"context_line":"            if \"badRequest\" in jresp and \"message\" in jresp[\"badRequest\"]:"},{"line_number":211,"context_line":"                return jresp[\"badRequest\"][\"message\"]"},{"line_number":212,"context_line":"            # identity"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_1f020e6f","line":209,"in_reply_to":"5a890539_99838c55","updated":"2014-11-13 23:29:37.000000000","message":"I hear you on this, but I felt that putting a bunch of message parsing into the exception class didn\u0027t make too much sense either.  Maybe a whole different class?","commit_id":"6431ddfa14352473ba2c89813d4bc23c233cf0b5"}]}
