)]}'
{"swift/common/bufferedhttp.py":[{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"3015c02046ef39118f4898abf8477b954804d6e8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        self.chunk_left \u003d _UNKNOWN      # bytes left to read in current chunk"},{"line_number":63,"context_line":"        self.length \u003d _UNKNOWN          # number of bytes left in response"},{"line_number":64,"context_line":"        self.will_close \u003d _UNKNOWN      # conn will close at end of response"},{"line_number":65,"context_line":"        self._readline_buffer \u003d \u0027\u0027"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def expect_response(self):"},{"line_number":68,"context_line":"        if self.fp:"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa53dc9_8c7da11e","line":65,"updated":"2015-04-08 02:45:00.000000000","message":"nipick: nice to have a meaning of the variable like others","commit_id":"c6f5826bbac153f63ef56a22ef851300b475bd05"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"3015c02046ef39118f4898abf8477b954804d6e8","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            self._readline_buffer \u003d \u0027\u0027"},{"line_number":103,"context_line":"            return buf + HTTPResponse.read(self, smaller_amt)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def readline(self, size\u003dNone):"},{"line_number":106,"context_line":"        # You\u0027d think Python\u0027s httplib would provide this, but it doesn\u0027t."},{"line_number":107,"context_line":"        # It does, however, provide a comment in the HTTPResponse class:"},{"line_number":108,"context_line":"        #"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa53dc9_043878d2","line":105,"updated":"2015-04-08 02:45:00.000000000","message":"nitpick: How about following?\n\ndef readline(self, size\u003d1024):\nor\ndef readline(self, size\u003dNone):\nif size is None:\n    size \u003d 1024\n\nThen while statement can be simple.\n\nwhile (\u0027\\n\u0027 not in self._readline_buffer\n        and len(self._readline_buffer) \u003c size):\n    read_size \u003d size - len(self._readline_buffer)\n    chunk \u003d HTTPResponse.read(self, read_size)","commit_id":"c6f5826bbac153f63ef56a22ef851300b475bd05"}],"swift/common/utils.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a5c0488a045feb2cfd6f1b523e27949915237d7d","unresolved":false,"context_lines":[{"line_number":3502,"context_line":"        return multipart_byteranges_to_document_iters("},{"line_number":3503,"context_line":"            response, params[\u0027boundary\u0027], read_chunk_size)"},{"line_number":3504,"context_line":""},{"line_number":3505,"context_line":""},{"line_number":3506,"context_line":"#: Regular expression to match form attributes."},{"line_number":3507,"context_line":"ATTRIBUTES_RE \u003d re.compile(r\u0027(\\w+)\u003d(\".*?\"|[^\";]+)(; ?|$)\u0027)"},{"line_number":3508,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_111bd073","line":3505,"updated":"2015-03-26 04:39:16.000000000","message":"Wow, interator methods up the wa zoo. They look good, had to really read it figure out why we needed so many :)","commit_id":"4476182e4d841c3c55ee0216636e1b61036d8513"},{"author":{"_account_id":12193,"name":"Hisashi Osanai","email":"osanai.hisashi@jp.fujitsu.com","username":"ho"},"change_message_id":"3015c02046ef39118f4898abf8477b954804d6e8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"import os"},{"line_number":26,"context_line":"import pwd"},{"line_number":27,"context_line":"import re"},{"line_number":28,"context_line":"import rfc822"},{"line_number":29,"context_line":"import sys"},{"line_number":30,"context_line":"import threading as stdlib_threading"},{"line_number":31,"context_line":"import time"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aa53dc9_2c47b54c","line":28,"updated":"2015-04-08 02:45:00.000000000","message":"this package is deprecated since 2.3 and it removed in 3.0 so it is better to replace it by email.\n\nhttps://docs.python.org/2.7/library/rfc822.html#module-rfc822\n\nDeprecated since version 2.3: The email package should be used in preference to the rfc822 module. This module is present only to maintain backward compatibility, and has been removed in Python 3.","commit_id":"c6f5826bbac153f63ef56a22ef851300b475bd05"}],"swift/proxy/controllers/base.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a5c0488a045feb2cfd6f1b523e27949915237d7d","unresolved":false,"context_lines":[{"line_number":918,"context_line":"                           \u0027part_iter\u0027: part_iter}"},{"line_number":919,"context_line":"                    self.pop_range()"},{"line_number":920,"context_line":"            except StopIteration:"},{"line_number":921,"context_line":"                return"},{"line_number":922,"context_line":""},{"line_number":923,"context_line":"        except ChunkReadTimeout:"},{"line_number":924,"context_line":"            self.app.exception_occurred(node[0], _(\u0027Object\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_514f086b","line":921,"updated":"2015-03-26 04:39:16.000000000","message":"Wow Sam your a machine, complicated much :P\n\nAt first glance I\u0027m like, we must be able to simplify that.. after reading through it attempting to understand, I know think, no we can\u0027t, nice work. If we can then I\u0027d need many a cups of coffee or something stronger :)","commit_id":"4476182e4d841c3c55ee0216636e1b61036d8513"}],"test/unit/common/test_utils.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"a5c0488a045feb2cfd6f1b523e27949915237d7d","unresolved":false,"context_lines":[{"line_number":4726,"context_line":"        self.assertEquals(fp.read(), \u0027\u0027)"},{"line_number":4727,"context_line":"        fp \u003d it.next()"},{"line_number":4728,"context_line":"        self.assertEquals(fp.read(), \u0027hijkl\u0027)"},{"line_number":4729,"context_line":"        self.assertRaises(StopIteration, it.next)"},{"line_number":4730,"context_line":""},{"line_number":4731,"context_line":"    def test_broken_mid_stream(self):"},{"line_number":4732,"context_line":"        # We go ahead and accept whatever is sent instead of rejecting the"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6ced46_2653343a","line":4729,"updated":"2015-03-26 04:39:16.000000000","message":"You add a bunch of new methods in utils, I know you in theory are testing much of them with the server in the other test files, but we really should have some kind of unit testing strictly for those methods here.","commit_id":"4476182e4d841c3c55ee0216636e1b61036d8513"}]}
