)]}'
{"tools/check_logs.py":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"54f19c88436b38a840ca6a74fcf3d5664a085bca","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    with open(WHITELIST_FILE) as stream:"},{"line_number":138,"context_line":"        loaded \u003d yaml.safe_load(stream)"},{"line_number":139,"context_line":"        if loaded:"},{"line_number":140,"context_line":"            for (name, l) in loaded.items():"},{"line_number":141,"context_line":"                for w in l:"},{"line_number":142,"context_line":"                    assert \u0027module\u0027 in w, \u0027no module in %s\u0027 % name"},{"line_number":143,"context_line":"                    assert \u0027message\u0027 in w, \u0027no message in %s\u0027 % name"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_7f874ad9","line":140,"updated":"2017-06-12 02:54:38.000000000","message":"I think this change is not good for python2. So why not use six?","commit_id":"d8feff39ea1bc4f965d62496cbb97026e869c0b7"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"c72f390ab37192454e2efd49772933355db4079c","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    with open(WHITELIST_FILE) as stream:"},{"line_number":138,"context_line":"        loaded \u003d yaml.safe_load(stream)"},{"line_number":139,"context_line":"        if loaded:"},{"line_number":140,"context_line":"            for (name, l) in loaded.items():"},{"line_number":141,"context_line":"                for w in l:"},{"line_number":142,"context_line":"                    assert \u0027module\u0027 in w, \u0027no module in %s\u0027 % name"},{"line_number":143,"context_line":"                    assert \u0027message\u0027 in w, \u0027no message in %s\u0027 % name"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_3570d172","line":140,"in_reply_to":"7f231b9d_7f874ad9","updated":"2017-06-12 04:34:09.000000000","message":"Done","commit_id":"d8feff39ea1bc4f965d62496cbb97026e869c0b7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6cf2d539578db54df78579dc4f148e56c5d5a96c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"import six.moves.urllib.request as urlreq"},{"line_number":26,"context_line":"import yaml"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from six import iteritems"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# DEVSTACK_GATE_GRENADE is either unset if grenade is not running"},{"line_number":31,"context_line":"# or a string describing what type of grenade run to perform."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f231b9d_2e6d0d04","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":25},"updated":"2017-06-12 14:54:20.000000000","message":"This is a needless import, why not use six.iteritems on L141 since import six is already done on L24 above?","commit_id":"bd6a9b9b202a1a126fc400ac3d00467f020bf56a"},{"author":{"_account_id":23659,"name":"Jaewoo Park","email":"jaewoopark91@gmail.com","username":"aselius"},"change_message_id":"6f82c873ce3124f161a98f7e4ea80a1403008fad","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import sys"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"import six.iteritems as iteritems"},{"line_number":26,"context_line":"import six.moves.urllib.request as urlreq"},{"line_number":27,"context_line":"import yaml"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7f231b9d_349553e5","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":33},"updated":"2017-06-12 21:10:50.000000000","message":"I feel like what Felipe said in the previous review still holds. Why not just use six.iteritems on L140 if you already import all of six in the line before?","commit_id":"3118c106cac87df73bca9c4c8263995d4347ff18"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"662372bcb9b894cd067333225d47ec8a31d894ff","unresolved":false,"context_lines":[{"line_number":25,"context_line":"import six.moves.urllib.request as urlreq"},{"line_number":26,"context_line":"import yaml"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# DEVSTACK_GATE_GRENADE is either unset if grenade is not running"},{"line_number":30,"context_line":"# or a string describing what type of grenade run to perform."},{"line_number":31,"context_line":"is_grenade \u003d os.environ.get(\u0027DEVSTACK_GATE_GRENADE\u0027) is not None"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_727ceaea","side":"PARENT","line":28,"updated":"2017-06-13 10:37:40.000000000","message":"Removing a line in an unrelated change","commit_id":"c0e31f1c32de3572b80ed9249d243d7c40a44028"}]}
