)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"b6323cd49aeebb472250ffec36ca3d9ba64f4605","unresolved":false,"context_lines":[{"line_number":12,"context_line":"import style for module report in review [1] This commit gates this,"},{"line_number":13,"context_line":"will pass pep8 check once [1] is merged."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1]https://review.openstack.org/#/c/84648"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Related-Bug: #1304774"},{"line_number":18,"context_line":"Change-Id: I29caef5faff2ec7b2eebd5c61bcf39f91e6e9265"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9ad9bd40_201b681c","line":15,"updated":"2014-05-02 09:39:23.000000000","message":"I didn\u0027t rebase on Ife98dc96b012d6aa7b5bd10d09a733506072fa1c, just to make sure this patch works well.","commit_id":"3169a35b7eb16c6b2a3b027841d8a45abba03dc2"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"47d86ef17f7d2797f66e0b25a3cff1f511e40307","unresolved":false,"context_lines":[{"line_number":13,"context_line":"will pass pep8 check once [1] is merged."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1]https://review.openstack.org/#/c/84648"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Related-Bug: #1304774"},{"line_number":18,"context_line":"Change-Id: I29caef5faff2ec7b2eebd5c61bcf39f91e6e9265"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9ad9bd40_ccecb392","line":16,"updated":"2014-05-02 14:06:51.000000000","message":"I didn\u0027t rebase on Ife98dc96b012d6aa7b5bd10d09a733506072fa1c, just to make sure this patch works well.","commit_id":"9fdb2698f024f9612ae95d0cbdd4e6d3318d1f53"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"ff448011177746a27f11b95185fe867da58ededa","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add check import style hacking in gate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"update.py scans \u0027from openstack.common.*\u0027 to replace base name while"},{"line_number":10,"context_line":"syncing, currently only module report uses another import style"},{"line_number":11,"context_line":"\u0027import openstack.common.*\u0027. As discussed, we changed the import style"},{"line_number":12,"context_line":"of module report in Ife98dc96b012d6aa7b5bd10d09a733506072fa1c. This"},{"line_number":13,"context_line":"patch adds local hacking and hacking unit test."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7adec928_b9c2fa31","line":10,"updated":"2014-05-16 14:26:40.000000000","message":"Why can\u0027t update.py be fixed to work with import openstack.common.* ...?","commit_id":"205d14d0ac9f567ad1b688d8e8df04750d9fff39"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"b4e35e71a55949978738ebd549bc7e0c9b70d594","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add check import style hacking in gate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"update.py scans \u0027from openstack.common.*\u0027 to replace base name while"},{"line_number":10,"context_line":"syncing, currently only module report uses another import style"},{"line_number":11,"context_line":"\u0027import openstack.common.*\u0027. As discussed, we changed the import style"},{"line_number":12,"context_line":"of module report in Ife98dc96b012d6aa7b5bd10d09a733506072fa1c. This"},{"line_number":13,"context_line":"patch adds local hacking and hacking unit test."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7adec928_bcfae840","line":10,"in_reply_to":"7adec928_b9c2fa31","updated":"2014-05-16 15:14:31.000000000","message":"This was discussed in commit https://review.openstack.org/#/c/84648/,  we decided to change production code . Please see comments in that commit for details.","commit_id":"205d14d0ac9f567ad1b688d8e8df04750d9fff39"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"de346a1ad1e826c83e72f8138ee1067801778a35","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add check import style hacking in gate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"update.py scans \u0027from openstack.common.*\u0027 to replace base name while"},{"line_number":10,"context_line":"syncing, currently only module report uses another import style"},{"line_number":11,"context_line":"\u0027import openstack.common.*\u0027. As discussed, we changed the import style"},{"line_number":12,"context_line":"of module report in Ife98dc96b012d6aa7b5bd10d09a733506072fa1c. This"},{"line_number":13,"context_line":"patch adds local hacking and hacking unit test."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7adec928_4959c08c","line":10,"in_reply_to":"7adec928_bcfae840","updated":"2014-05-20 15:17:34.000000000","message":"Hmm, I\u0027m not sure I agree with the reasoning there.  Did fixing update.py break something else?  Enforcing the import style means we\u0027re going to be dealing with this issue for all the code that ever gets brought into incubator, whereas just fixing update.py addresses the problem once and for all.\n\nI understand the preference to focus on production code over enhancing update.py, but in this case I think fixing update.py would let us do that better than forcing production code to conform to an arbitrary style rule.","commit_id":"205d14d0ac9f567ad1b688d8e8df04750d9fff39"}],"openstack/hacking/checks.py":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"ff448011177746a27f11b95185fe867da58ededa","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def no_import_from(logical_line):"},{"line_number":22,"context_line":"    \"\"\"Check import style."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    O101: Don\u0027t use import style \u0027import openstack.common.*\u0027"},{"line_number":25,"context_line":"    Need use \u0027from openstack.common.*\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    Okay: from openstack.common.apiclient import exceptions"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_59af3694","line":24,"updated":"2014-05-16 14:26:40.000000000","message":"This is the doctest notation,  so if we ever make enable them here this would break.","commit_id":"205d14d0ac9f567ad1b688d8e8df04750d9fff39"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"b4e35e71a55949978738ebd549bc7e0c9b70d594","unresolved":false,"context_lines":[{"line_number":21,"context_line":"def no_import_from(logical_line):"},{"line_number":22,"context_line":"    \"\"\"Check import style."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    O101: Don\u0027t use import style \u0027import openstack.common.*\u0027"},{"line_number":25,"context_line":"    Need use \u0027from openstack.common.*\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    Okay: from openstack.common.apiclient import exceptions"}],"source_content_type":"text/x-python","patch_set":9,"id":"7adec928_fc65501e","line":24,"in_reply_to":"7adec928_59af3694","updated":"2014-05-16 15:14:31.000000000","message":"thanks for your review :)So we can remove these? unit test for this is enough ?","commit_id":"205d14d0ac9f567ad1b688d8e8df04750d9fff39"}],"tools/check_codestyle.py":[{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"88ebd4df329528c81798bb9116fdd137431511e3","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def check_file(path):"},{"line_number":46,"context_line":"    with open(path, \"r\") as f:"},{"line_number":47,"context_line":"        for index, line in enumerate(f):"},{"line_number":48,"context_line":"            # Any check function can be applied here works as pipeline"},{"line_number":49,"context_line":"            _check_import_style(path, line, index)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2Fxxk%3D","line":47,"updated":"2014-04-17 14:33:19.000000000","message":"Please describe to me, how do you avoid checking of not import lines?","commit_id":"2bd5b9d37b461fb2dfd4af1ca6edd48d5a121a35"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"8808953e80066d4c10afacb02a84a90da080e7eb","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def check_file(path):"},{"line_number":46,"context_line":"    with open(path, \"r\") as f:"},{"line_number":47,"context_line":"        for index, line in enumerate(f):"},{"line_number":48,"context_line":"            # Any check function can be applied here works as pipeline"},{"line_number":49,"context_line":"            _check_import_style(path, line, index)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FqwE%3D","line":47,"in_reply_to":"AAAAXH%2F%2FxjU%3D","updated":"2014-04-18 12:04:09.000000000","message":"Oh! I got it. I\u0027m sorry. +1 from me!","commit_id":"2bd5b9d37b461fb2dfd4af1ca6edd48d5a121a35"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"3e909b6a7c371d947d622fda1447959113a56037","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def check_file(path):"},{"line_number":46,"context_line":"    with open(path, \"r\") as f:"},{"line_number":47,"context_line":"        for index, line in enumerate(f):"},{"line_number":48,"context_line":"            # Any check function can be applied here works as pipeline"},{"line_number":49,"context_line":"            _check_import_style(path, line, index)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAXH%2F%2FxjU%3D","line":47,"in_reply_to":"AAAAXH%2F%2Fxxk%3D","updated":"2014-04-17 14:56:09.000000000","message":"Not sure get your point . Do you mean  should  decide which line  is not import line  then skip \u0027_check_import_style\u0027 ? \n\nWe need at one time match action at least for each line  which is import line or not .\nHere scan every line, then  decide by  pattern in line 23.","commit_id":"2bd5b9d37b461fb2dfd4af1ca6edd48d5a121a35"}]}
