)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"b9d997f4507d0858c49541d9d0cc982a3fe68ebc","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Replace six.iteritems() with .items()"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1.As mentioned in [1], we should avoid using"},{"line_number":10,"context_line":"six.iteritems to achieve iterators. We can"},{"line_number":11,"context_line":"use dict.items instead, as it will return"},{"line_number":12,"context_line":"iterators in PY3 as well. And dict.items/keys"},{"line_number":13,"context_line":"will more readable. 2.In py2, the performance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_ee629816","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":13},"updated":"2017-03-31 09:52:10.000000000","message":"I think we can just say \u0027iteritems\u0027 rather than \u0027six.iteritems\u0027 since we want to just use items() even if no one tried to make it python3 compatible yet.","commit_id":"63c00e7d2748376bd6c5f74daf5ad381db611ecb"}],"manila/test.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"0cc30e9a61055b94bb80bd3976b08e75e6ce1c66","unresolved":false,"context_lines":[{"line_number":350,"context_line":"    def _dict_from_object(self, obj, ignored_keys):"},{"line_number":351,"context_line":"        if ignored_keys is None:"},{"line_number":352,"context_line":"            ignored_keys \u003d []"},{"line_number":353,"context_line":"        return {k: v for k, v in obj.iterms()"},{"line_number":354,"context_line":"                if k not in ignored_keys}"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"    def _assertEqualListsOfObjects(self, objs1, objs2, ignored_keys\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dfeb2761_99286a97","line":353,"range":{"start_line":353,"start_character":37,"end_line":353,"end_character":43},"updated":"2017-04-05 10:02:55.000000000","message":"items","commit_id":"9c63757f7d7f835a222c1ebbc86143285177aa82"}],"manila/tests/data/test_helper.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d4f7ecd458298b7bb18dd92dbc56e7bbc0d64607","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        data_copy_helper.CONF.data_node_access_ip \u003d \u0027fake\u0027"},{"line_number":128,"context_line":"        data_copy_helper.CONF.data_node_access_admin_user \u003d \u0027fake\u0027"},{"line_number":129,"context_line":"        expected \u003d [{"},{"line_number":130,"context_line":"            \u0027access_type\u0027: six.next(mapping.items())[0],"},{"line_number":131,"context_line":"            \u0027access_level\u0027: constants.ACCESS_LEVEL_RW,"},{"line_number":132,"context_line":"            \u0027access_to\u0027: \u0027fake\u0027,"},{"line_number":133,"context_line":"        }]"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_dcd65e50","line":130,"range":{"start_line":130,"start_character":12,"end_line":130,"end_character":56},"updated":"2017-04-06 10:08:06.000000000","message":"Unit tests are failing because mapping is now a dict rather than an iterator but the code still treats it as an iterator when retrieving \u0027access_type\u0027.  You need to figure another way to get the access type here, i.e. the first key in the dictionary.","commit_id":"27c47f3e97ecc95f46045b5a54fd2e7c8f97bc75"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"52e53b1c66f254afe2399cad93937482c2759411","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        data_copy_helper.CONF.data_node_access_ip \u003d \u0027fake\u0027"},{"line_number":128,"context_line":"        data_copy_helper.CONF.data_node_access_admin_user \u003d \u0027fake\u0027"},{"line_number":129,"context_line":"        expected \u003d [{"},{"line_number":130,"context_line":"            \u0027access_type\u0027: six.next(iter(mapping.items()))[0],"},{"line_number":131,"context_line":"            \u0027access_level\u0027: constants.ACCESS_LEVEL_RW,"},{"line_number":132,"context_line":"            \u0027access_to\u0027: \u0027fake\u0027,"},{"line_number":133,"context_line":"        }]"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_ad45a619","line":130,"range":{"start_line":130,"start_character":12,"end_line":130,"end_character":62},"updated":"2017-04-06 11:08:41.000000000","message":"All you want here is the first (and only) dictionary key.  There\u0027s a much simpler way to get that than using an iterator :D","commit_id":"1fea6dabfc61a9749ee4d5dab0d5190723d49acf"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"e619819614f43e4ef5d100142ee4b2c5a8682cfe","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        data_copy_helper.CONF.data_node_access_ip \u003d \u0027fake\u0027"},{"line_number":127,"context_line":"        data_copy_helper.CONF.data_node_access_admin_user \u003d \u0027fake\u0027"},{"line_number":128,"context_line":"        expected \u003d [{"},{"line_number":129,"context_line":"            \u0027access_type\u0027: mapping.keys()[0],"},{"line_number":130,"context_line":"            \u0027access_level\u0027: constants.ACCESS_LEVEL_RW,"},{"line_number":131,"context_line":"            \u0027access_to\u0027: \u0027fake\u0027,"},{"line_number":132,"context_line":"        }]"}],"source_content_type":"text/x-python","patch_set":6,"id":"bff0334d_83198a7a","line":129,"range":{"start_line":129,"start_character":27,"end_line":129,"end_character":45},"updated":"2017-04-06 14:24:56.000000000","message":"Yeah, this is basically what I had in mind, but for python3 you have to turn mapping.keys() into a list:\n\n   \u0027access_type\u0027: list(mapping.keys())[0]\n\nThat should also work for python 2.","commit_id":"15a4bff024f9f3436c8a7c06f3e7124602bf9b14"}]}
