)]}'
{"tests/unit/StorletSamples/test_simple.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e99c7ca7ceec29dff73551a9f39d5b8fba3fadab","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self._metadata \u003d metadata"},{"line_number":39,"context_line":"        self._pos \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def read(self, size\u003dNone):"},{"line_number":42,"context_line":"        if size is None:"},{"line_number":43,"context_line":"            ret_val \u003d self._input_string[self._pos:]"},{"line_number":44,"context_line":"            self._pos \u003d len(self._input_string)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_ff54f821","line":41,"range":{"start_line":41,"start_character":24,"end_line":41,"end_character":28},"updated":"2016-12-26 05:37:03.000000000","message":"I think it is better to use -1 as default value instead of None, as it is the same for basic file interface.","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"aba84a38dfbba8e5de9cafda6f9bc2da20e14a45","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self._metadata \u003d metadata"},{"line_number":39,"context_line":"        self._pos \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def read(self, size\u003dNone):"},{"line_number":42,"context_line":"        if size is None:"},{"line_number":43,"context_line":"            ret_val \u003d self._input_string[self._pos:]"},{"line_number":44,"context_line":"            self._pos \u003d len(self._input_string)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_af978738","line":41,"range":{"start_line":41,"start_character":24,"end_line":41,"end_character":28},"in_reply_to":"da4df55a_ff54f821","updated":"2016-12-27 02:43:56.000000000","message":"Done","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e99c7ca7ceec29dff73551a9f39d5b8fba3fadab","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self._pos \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def read(self, size\u003dNone):"},{"line_number":42,"context_line":"        if size is None:"},{"line_number":43,"context_line":"            ret_val \u003d self._input_string[self._pos:]"},{"line_number":44,"context_line":"            self._pos \u003d len(self._input_string)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            ret_val \u003d self._input_string[self._pos:self._pos + size]"},{"line_number":47,"context_line":"            self._pos \u003d self._pos + size"},{"line_number":48,"context_line":"        return ret_val"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_metadata(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_9f268ccc","line":47,"range":{"start_line":42,"start_character":8,"end_line":47,"end_character":40},"updated":"2016-12-26 05:37:03.000000000","message":"(nit) Does it make sense to use StringIO?","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"aba84a38dfbba8e5de9cafda6f9bc2da20e14a45","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self._pos \u003d 0"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def read(self, size\u003dNone):"},{"line_number":42,"context_line":"        if size is None:"},{"line_number":43,"context_line":"            ret_val \u003d self._input_string[self._pos:]"},{"line_number":44,"context_line":"            self._pos \u003d len(self._input_string)"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            ret_val \u003d self._input_string[self._pos:self._pos + size]"},{"line_number":47,"context_line":"            self._pos \u003d self._pos + size"},{"line_number":48,"context_line":"        return ret_val"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def get_metadata(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_8f96433d","line":47,"range":{"start_line":42,"start_character":8,"end_line":47,"end_character":40},"in_reply_to":"da4df55a_9f268ccc","updated":"2016-12-27 02:43:56.000000000","message":"Good idea, thanks!","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e99c7ca7ceec29dff73551a9f39d5b8fba3fadab","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def __init__(self):"},{"line_number":56,"context_line":"        super(FakeStorletFileOut, self).__init__()"},{"line_number":57,"context_line":"        self._output_string \u003d []"},{"line_number":58,"context_line":"        self._metadata \u003d {}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def write(self, data):"},{"line_number":61,"context_line":"        self._output_string.append(data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_9f0dac40","line":58,"range":{"start_line":58,"start_character":25,"end_line":58,"end_character":27},"updated":"2016-12-26 05:37:03.000000000","message":"IMO, None is a better default value, as we can know more easily that the value is intentionally set or not.","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"aba84a38dfbba8e5de9cafda6f9bc2da20e14a45","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def __init__(self):"},{"line_number":56,"context_line":"        super(FakeStorletFileOut, self).__init__()"},{"line_number":57,"context_line":"        self._output_string \u003d []"},{"line_number":58,"context_line":"        self._metadata \u003d {}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def write(self, data):"},{"line_number":61,"context_line":"        self._output_string.append(data)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_cf9ccb5f","line":58,"range":{"start_line":58,"start_character":25,"end_line":58,"end_character":27},"in_reply_to":"da4df55a_9f0dac40","updated":"2016-12-27 02:43:56.000000000","message":"Done","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e99c7ca7ceec29dff73551a9f39d5b8fba3fadab","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def test_simple_storlet(self):"},{"line_number":75,"context_line":"        simple_storlet \u003d SimpleStorlet(self.logger)"},{"line_number":76,"context_line":"        input_string \u003d \u0027abcdefghijklmonp\u0027"},{"line_number":77,"context_line":"        store_in \u003d [FakeStorletFileIn(input_string, {})]"},{"line_number":78,"context_line":"        store_out \u003d [FakeStorletFileOut()]"},{"line_number":79,"context_line":"        params \u003d {}"},{"line_number":80,"context_line":"        self.assertIsNone(simple_storlet(store_in, store_out, params))"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_ff2b1892","line":77,"range":{"start_line":77,"start_character":52,"end_line":77,"end_character":54},"updated":"2016-12-26 05:37:03.000000000","message":"Can we also assert metadata?","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"aba84a38dfbba8e5de9cafda6f9bc2da20e14a45","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def test_simple_storlet(self):"},{"line_number":75,"context_line":"        simple_storlet \u003d SimpleStorlet(self.logger)"},{"line_number":76,"context_line":"        input_string \u003d \u0027abcdefghijklmonp\u0027"},{"line_number":77,"context_line":"        store_in \u003d [FakeStorletFileIn(input_string, {})]"},{"line_number":78,"context_line":"        store_out \u003d [FakeStorletFileOut()]"},{"line_number":79,"context_line":"        params \u003d {}"},{"line_number":80,"context_line":"        self.assertIsNone(simple_storlet(store_in, store_out, params))"}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_cf0f6b86","line":77,"range":{"start_line":77,"start_character":52,"end_line":77,"end_character":54},"in_reply_to":"da4df55a_ff2b1892","updated":"2016-12-27 02:43:56.000000000","message":"Sure","commit_id":"5a7a57274fd7809ac9d41e7712eb1d81f503dd67"}]}
