)]}'
{"swift/common/swob.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"8d40e7ac04ca10b0fa4dcba8b1ec7a83dfa064f5","unresolved":false,"context_lines":[{"line_number":1276,"context_line":"        Response.__init__(self, *args, **kwargs)"},{"line_number":1277,"context_line":"        Exception.__init__(self, self.status)"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"    def to_tuple(self, headers\u003dNone):"},{"line_number":1280,"context_line":"        if headers:"},{"line_number":1281,"context_line":"            self.headers.update(headers)"},{"line_number":1282,"context_line":"        return (self.status_int, self.explanation, self.headers.items(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_f6878610","line":1279,"updated":"2014-09-09 00:04:37.000000000","message":"This interface is a little... weird, IMO. I like to_tuple(), but the fact that you can feed it some headers that then persist on the invocant\u0027s headers feels odd. Seems like this is outside the scope of a method called \"to_tuple\".\n\nI think I\u0027d prefer two calls:\n\n    req.headers.update(new_headers)\n    thingy \u003d req.to_tuple()","commit_id":"b1b1bfbb06e284bf9b1a4639ed682d9878224284"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"b7e2742ccf127cdd2a3aa6de5f64ad5e26c2feb1","unresolved":false,"context_lines":[{"line_number":1276,"context_line":"        Response.__init__(self, *args, **kwargs)"},{"line_number":1277,"context_line":"        Exception.__init__(self, self.status)"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"    def to_tuple(self, headers\u003dNone):"},{"line_number":1280,"context_line":"        if headers:"},{"line_number":1281,"context_line":"            self.headers.update(headers)"},{"line_number":1282,"context_line":"        return (self.status_int, self.explanation, self.headers.items(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_06ee9522","line":1279,"in_reply_to":"fa98f980_f6878610","updated":"2014-09-09 03:19:34.000000000","message":"Yeah good point. I added the header stuff while debugging and fixing the tests.. so wasn\u0027t thinking of the consequences. Nice one.\n\nWith your code this method isn\u0027t needed... I\u0027ll have a play with it :)","commit_id":"b1b1bfbb06e284bf9b1a4639ed682d9878224284"}],"swift/proxy/controllers/base.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"048f70dc681fbf259c28e823e09060638b34a8f8","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"                    {\u0027method\u0027: method, \u0027path\u0027: path})"},{"line_number":1040,"context_line":""},{"line_number":1041,"context_line":"    def make_requests(self, req, ring, part, method, path, headers,"},{"line_number":1042,"context_line":"                      query_string\u003d\u0027\u0027, overrides\u003d{}):"},{"line_number":1043,"context_line":"        \"\"\""},{"line_number":1044,"context_line":"        Sends an HTTP request to multiple nodes and aggregates the results."},{"line_number":1045,"context_line":"        It attempts the primary nodes concurrently, then iterates over the"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_05c8cb53","line":1042,"updated":"2014-08-29 00:17:32.000000000","message":"Let\u0027s default this to None, and then check for None and make an empty dictionary at call time. Otherwise this is going to work perfectly until the day someone decides to modify overrides, and then everything will go straight down the toilet.","commit_id":"fdf604c8cca5365139a8422726a079b56bf7f6c4"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"048f70dc681fbf259c28e823e09060638b34a8f8","unresolved":false,"context_lines":[{"line_number":1070,"context_line":"            if not resp:"},{"line_number":1071,"context_line":"                continue"},{"line_number":1072,"context_line":"            response.append(resp)"},{"line_number":1073,"context_line":"            status \u003d overrides[resp[0]] if resp[0] in overrides else resp[0]"},{"line_number":1074,"context_line":"            statuses.append(status)"},{"line_number":1075,"context_line":"            if self.have_quorum(statuses, len(start_nodes)):"},{"line_number":1076,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":4,"id":"1abeadc6_8505bb12","line":1073,"updated":"2014-08-29 00:17:32.000000000","message":"nit: you have overrides.get(s, s) down below, but here it\u0027s the same check but phrased differently. I\u0027d rather see both these look the same.\n\nI like overrides.get(status, status), so if you\u0027re standardizing on one, my vote is for changing this line to look like that.","commit_id":"fdf604c8cca5365139a8422726a079b56bf7f6c4"}]}
