)]}'
{"swift/common/memcached.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"605cce61fb0d1612fad52b52378987cd38bfe794","unresolved":false,"context_lines":[{"line_number":258,"context_line":"            value \u003d json.dumps(value).encode(\u0027ascii\u0027)"},{"line_number":259,"context_line":"            flags |\u003d JSON_FLAG"},{"line_number":260,"context_line":"        elif not isinstance(value, bytes):"},{"line_number":261,"context_line":"            value \u003d str(value).encode(\u0027utf-8\u0027)  # ... seems reasonable?"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        for (server, fp, sock) in self._get_conns(key):"},{"line_number":264,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_bd8f2dcb","line":261,"updated":"2018-02-26 11:53:32.000000000","message":"kill this comment - it\u0027s perfectly reasonable IMHO","commit_id":"6a7f86197e5d3d563992bebef64a6832231ca54c"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"605cce61fb0d1612fad52b52378987cd38bfe794","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                value \u003d json.dumps(value).encode(\u0027ascii\u0027)"},{"line_number":434,"context_line":"                flags |\u003d JSON_FLAG"},{"line_number":435,"context_line":"            msg.extend(("},{"line_number":436,"context_line":"                b\u0027set \u0027,"},{"line_number":437,"context_line":"                key,"},{"line_number":438,"context_line":"                (\u0027 %d %d %s\\r\\n\u0027 % (flags, timeout, len(value))).encode("},{"line_number":439,"context_line":"                    \u0027ascii\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_40dac04a","line":436,"updated":"2018-02-26 11:53:32.000000000","message":"why do you hate consistency so much? Line 266 has a different implementation of this code.","commit_id":"6a7f86197e5d3d563992bebef64a6832231ca54c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a74aa98c40086f57f891ec77bc2b01930ff9e800","unresolved":false,"context_lines":[{"line_number":433,"context_line":"                value \u003d json.dumps(value).encode(\u0027ascii\u0027)"},{"line_number":434,"context_line":"                flags |\u003d JSON_FLAG"},{"line_number":435,"context_line":"            msg.extend(("},{"line_number":436,"context_line":"                b\u0027set \u0027,"},{"line_number":437,"context_line":"                key,"},{"line_number":438,"context_line":"                (\u0027 %d %d %s\\r\\n\u0027 % (flags, timeout, len(value))).encode("},{"line_number":439,"context_line":"                    \u0027ascii\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_e3de7668","line":436,"in_reply_to":"3fa0c359_40dac04a","updated":"2018-02-26 12:13:43.000000000","message":"Done","commit_id":"6a7f86197e5d3d563992bebef64a6832231ca54c"}],"test/unit/common/test_memcached.py":[{"author":{"_account_id":19853,"name":"Nguyen Hung Phuong","email":"phuongnh@vn.fujitsu.com","username":"phuongnh"},"change_message_id":"dcffc8a0d6ade06c0dcdfcbcd4086a1c2e58ad99","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from eventlet.pools import Pool"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from swift.common import memcached"},{"line_number":35,"context_line":"from mock import patch, MagicMock, ANY"},{"line_number":36,"context_line":"from test.unit import debug_logger"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_8f29e537","line":35,"range":{"start_line":35,"start_character":35,"end_line":35,"end_character":38},"updated":"2018-02-02 01:14:30.000000000","message":"import but not use","commit_id":"635e53155af78032201f7e162884093cf8ff32ec"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"2d02d6ff243d63837edb23d410b24d16cdf96337","unresolved":false,"context_lines":[{"line_number":32,"context_line":"from eventlet.pools import Pool"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from swift.common import memcached"},{"line_number":35,"context_line":"from mock import patch, MagicMock, ANY"},{"line_number":36,"context_line":"from test.unit import debug_logger"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_afa381b1","line":35,"range":{"start_line":35,"start_character":35,"end_line":35,"end_character":38},"in_reply_to":"5f93b717_8f29e537","updated":"2018-02-02 01:17:35.000000000","message":"Bah! I accidentally added the fixup to the next in the chain -- https://review.openstack.org/#/c/540190/\n\nThanks!","commit_id":"635e53155af78032201f7e162884093cf8ff32ec"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"605cce61fb0d1612fad52b52378987cd38bfe794","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            raise Exception(\u0027mock is down\u0027)"},{"line_number":86,"context_line":"        self.inbuf +\u003d string"},{"line_number":87,"context_line":"        while b\u0027\\n\u0027 in self.inbuf:"},{"line_number":88,"context_line":"            cmd, self.inbuf \u003d self.inbuf.split(b\u0027\\n\u0027, 1)"},{"line_number":89,"context_line":"            parts \u003d cmd.split()"},{"line_number":90,"context_line":"            cmd_name \u003d parts[0].decode(\u0027ascii\u0027).lower()"},{"line_number":91,"context_line":"            handler \u003d getattr(self, \u0027handle_%s\u0027 % cmd_name, None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_00cd9864","line":88,"updated":"2018-02-26 11:53:32.000000000","message":"Does this actually work?\n\n[zaitcev@lembas swift-tip]$ python3\nPython 3.6.3 (default, Oct  9 2017, 12:07:10) \n[GCC 7.2.1 20170915 (Red Hat 7.2.1-2)] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e v \u003d b\u0027abc\u0027\n\u003e\u003e\u003e v.split(\u0027b\u0027)\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nTypeError: a bytes-like object is required, not \u0027str\u0027\n\nThe \u0027in\u0027 operator works, but not .split() method.","commit_id":"6a7f86197e5d3d563992bebef64a6832231ca54c"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a74aa98c40086f57f891ec77bc2b01930ff9e800","unresolved":false,"context_lines":[{"line_number":85,"context_line":"            raise Exception(\u0027mock is down\u0027)"},{"line_number":86,"context_line":"        self.inbuf +\u003d string"},{"line_number":87,"context_line":"        while b\u0027\\n\u0027 in self.inbuf:"},{"line_number":88,"context_line":"            cmd, self.inbuf \u003d self.inbuf.split(b\u0027\\n\u0027, 1)"},{"line_number":89,"context_line":"            parts \u003d cmd.split()"},{"line_number":90,"context_line":"            cmd_name \u003d parts[0].decode(\u0027ascii\u0027).lower()"},{"line_number":91,"context_line":"            handler \u003d getattr(self, \u0027handle_%s\u0027 % cmd_name, None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_809688ef","line":88,"in_reply_to":"3fa0c359_00cd9864","updated":"2018-02-26 12:13:43.000000000","message":"Sure it works! Just gotta have the args be bytes too.\n\n $ python3\n Python 3.6.4+ (heads/3.6:db1de75, Feb 12 2018, 00:20:39)\n [GCC 4.8.4] on linux\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n \u003e\u003e\u003e b\u0027abc\u0027.split(b\u0027b\u0027)\n [b\u0027a\u0027, b\u0027c\u0027]","commit_id":"6a7f86197e5d3d563992bebef64a6832231ca54c"}]}
