)]}'
{"test/functional/swift_test_client.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"678c34d12f03569adab4c38550be99bd7097972d","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            path \u003d \u0027%s?%s\u0027 % (path, \u0027\u0026\u0027.join(query_args))"},{"line_number":295,"context_line":"        if not cfg.get(\u0027no_content_length\u0027):"},{"line_number":296,"context_line":"            if cfg.get(\u0027set_content_length\u0027):"},{"line_number":297,"context_line":"                headers[\u0027Content-Length\u0027] \u003d str(cfg.get(\u0027set_content_length\u0027))"},{"line_number":298,"context_line":"            else:"},{"line_number":299,"context_line":"                headers[\u0027Content-Length\u0027] \u003d str(len(data))"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_4018581d","line":297,"updated":"2019-03-05 00:18:00.000000000","message":"cfg only contains strings though?","commit_id":"8b519d1abcb4d7b34c8bbdfe535f472fe105231c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2313ee09fd1d5f0d11d1e713a4b77bb250bf2a86","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            path \u003d \u0027%s?%s\u0027 % (path, \u0027\u0026\u0027.join(query_args))"},{"line_number":295,"context_line":"        if not cfg.get(\u0027no_content_length\u0027):"},{"line_number":296,"context_line":"            if cfg.get(\u0027set_content_length\u0027):"},{"line_number":297,"context_line":"                headers[\u0027Content-Length\u0027] \u003d str(cfg.get(\u0027set_content_length\u0027))"},{"line_number":298,"context_line":"            else:"},{"line_number":299,"context_line":"                headers[\u0027Content-Length\u0027] \u003d str(len(data))"},{"line_number":300,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_171e13bb","line":297,"in_reply_to":"9fdfeff1_4018581d","updated":"2019-03-05 00:37:21.000000000","message":"Nope; see https://github.com/openstack/swift/blob/2.20.0/test/functional/tests.py#L2221 for example. Rather than fix all the callers, I figured it\u0027d be easier to fix it here in the client.","commit_id":"8b519d1abcb4d7b34c8bbdfe535f472fe105231c"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"678c34d12f03569adab4c38550be99bd7097972d","unresolved":false,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def put_data(self, data, chunked\u003dFalse):"},{"line_number":379,"context_line":"        if chunked:"},{"line_number":380,"context_line":"            self.connection.send(b\u0027%x\\r\\n%s\\r\\n\u0027 % (len(data), data))"},{"line_number":381,"context_line":"        else:"},{"line_number":382,"context_line":"            self.connection.send(data)"},{"line_number":383,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_40c6186b","line":380,"updated":"2019-03-05 00:18:00.000000000","message":"This is guaranteed to fail with b\u0027\u0027 created by %s. We betted use a separate connection.send(data).","commit_id":"8b519d1abcb4d7b34c8bbdfe535f472fe105231c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2313ee09fd1d5f0d11d1e713a4b77bb250bf2a86","unresolved":false,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def put_data(self, data, chunked\u003dFalse):"},{"line_number":379,"context_line":"        if chunked:"},{"line_number":380,"context_line":"            self.connection.send(b\u0027%x\\r\\n%s\\r\\n\u0027 % (len(data), data))"},{"line_number":381,"context_line":"        else:"},{"line_number":382,"context_line":"            self.connection.send(data)"},{"line_number":383,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_f7c82f22","line":380,"in_reply_to":"9fdfeff1_40c6186b","updated":"2019-03-05 00:37:21.000000000","message":"Eh? That\u0027s why I changed it to a byte string, so everything would just work:\n\n Python 3.7.0 (default, Feb 12 2019, 12:57:25) \n [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n \u003e\u003e\u003e data \u003d b\u0027asdf\u0027\n \u003e\u003e\u003e b\u0027%x\\r\\n%s\\r\\n\u0027 % (len(data), data)\n b\u00274\\r\\nasdf\\r\\n\u0027\n\nIt\u0027s when we try to stuff bytes into normal strings that we run into problems:\n\n \u003e\u003e\u003e \u0027%x\\r\\n%s\\r\\n\u0027 % (len(data), data)\n \"4\\r\\nb\u0027asdf\u0027\\r\\n\"","commit_id":"8b519d1abcb4d7b34c8bbdfe535f472fe105231c"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"678c34d12f03569adab4c38550be99bd7097972d","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        headers \u003d {}"},{"line_number":731,"context_line":"        if not cfg.get(\u0027no_content_length\u0027):"},{"line_number":732,"context_line":"            if cfg.get(\u0027set_content_length\u0027):"},{"line_number":733,"context_line":"                headers[\u0027Content-Length\u0027] \u003d str(cfg.get(\u0027set_content_length\u0027))"},{"line_number":734,"context_line":"            elif self.size:"},{"line_number":735,"context_line":"                headers[\u0027Content-Length\u0027] \u003d str(self.size)"},{"line_number":736,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_e0e86cb4","line":733,"updated":"2019-03-05 00:18:00.000000000","message":"I still think this is redundant, but I may be wrong.","commit_id":"8b519d1abcb4d7b34c8bbdfe535f472fe105231c"}]}
