)]}'
{"swift/common/middleware/slo.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"9a0f7f8a35f1939313f4c9865edabd3e7d3f29f4","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        if six.PY3:"},{"line_number":658,"context_line":"            json_data \u003d json_data.encode(\u0027utf-8\u0027)"},{"line_number":659,"context_line":"        env[\u0027CONTENT_LENGTH\u0027] \u003d str(len(json_data))"},{"line_number":660,"context_line":"        env[\u0027wsgi.input\u0027] \u003d six.BytesIO(json_data)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        slo_put_context \u003d SloPutContext(self, slo_etag)"},{"line_number":663,"context_line":"        return slo_put_context.handle_slo_put(req, start_response)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_65d83280","line":660,"updated":"2015-05-27 16:28:46.000000000","message":"This change replaces cStringIO.StringIO() (C implementation) with StringIO.StringIO (Python implementation). The C implementation is faster.\n\nDo performances matter in the SLO middleware?\n\ncStringIO is replaced with StringIO in other files, but they are only tests, so performances don\u0027t matter there.","commit_id":"537d44e4039de23f605291ae13d97d6ef62268af"}],"swift/common/swob.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"1150d65ef6409e4bece7f53b9ba4ddf487d7a3f0","unresolved":false,"context_lines":[{"line_number":873,"context_line":"            env[\u0027wsgi.input\u0027] \u003d WsgiStringIO(body)"},{"line_number":874,"context_line":"            env[\u0027CONTENT_LENGTH\u0027] \u003d str(len(body))"},{"line_number":875,"context_line":"        elif \u0027wsgi.input\u0027 not in env:"},{"line_number":876,"context_line":"            env[\u0027wsgi.input\u0027] \u003d WsgiStringIO(b\u0027\u0027)"},{"line_number":877,"context_line":"        req \u003d Request(env)"},{"line_number":878,"context_line":"        for key, val in headers.iteritems():"},{"line_number":879,"context_line":"            req.headers[key] \u003d val"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_c540060a","line":876,"updated":"2015-05-27 16:34:17.000000000","message":"Note: StringIO and WsgiStringIO constructors use an empty string by default. It\u0027s not needed to pass an empty string.","commit_id":"537d44e4039de23f605291ae13d97d6ef62268af"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"414226ea8564f62867c794f931b028619f1242aa","unresolved":false,"context_lines":[{"line_number":873,"context_line":"            env[\u0027wsgi.input\u0027] \u003d WsgiStringIO(body)"},{"line_number":874,"context_line":"            env[\u0027CONTENT_LENGTH\u0027] \u003d str(len(body))"},{"line_number":875,"context_line":"        elif \u0027wsgi.input\u0027 not in env:"},{"line_number":876,"context_line":"            env[\u0027wsgi.input\u0027] \u003d WsgiStringIO(b\u0027\u0027)"},{"line_number":877,"context_line":"        req \u003d Request(env)"},{"line_number":878,"context_line":"        for key, val in headers.iteritems():"},{"line_number":879,"context_line":"            req.headers[key] \u003d val"}],"source_content_type":"text/x-python","patch_set":1,"id":"3afb71cf_3614479e","line":876,"in_reply_to":"7a016987_c540060a","updated":"2015-06-10 09:07:31.000000000","message":"Done","commit_id":"537d44e4039de23f605291ae13d97d6ef62268af"}],"test/unit/common/middleware/test_bulk.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"1150d65ef6409e4bece7f53b9ba4ddf487d7a3f0","unresolved":false,"context_lines":[{"line_number":863,"context_line":"        resp_body \u003d self.handle_delete_and_iter(req)"},{"line_number":864,"context_line":"        resp_data \u003d utils.json.loads(resp_body)"},{"line_number":865,"context_line":"        self.assertEquals(resp_data[\u0027Number Deleted\u0027], 2)"},{"line_number":866,"context_line":"        self.assertEquals(resp_data[\u0027Errors\u0027], [[bad_file, \u0027400 Bad Request\u0027]])"},{"line_number":867,"context_line":"        self.assertEquals(resp_data[\u0027Response Status\u0027], \u0027400 Bad Request\u0027)"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    def test_bulk_delete_bad_file_over_twice_max_length(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_c525a65c","line":866,"updated":"2015-05-27 16:34:17.000000000","message":"I don\u0027t know if bad_file must be bytes or unicode here. (Unicode, I guess.)","commit_id":"537d44e4039de23f605291ae13d97d6ef62268af"}]}
