)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"b5304420ac05d9e775459d0233583b48586438c1","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2013-09-24 13:46:43 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove unnecessary statement of \u0027from openstack_dashboard.api\u0027 since"},{"line_number":8,"context_line":"they\u0027re in the same directory."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Id41f602bde490dfa3548fb20ef22ff68ffe03153"},{"line_number":11,"context_line":"Closes-Bug: #1125622"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAS3%2F%2FiKI%3D","line":8,"updated":"2013-09-25 04:48:36.000000000","message":"Pep8 failure due to the (.) period ending in the first line of the commit message.\n\nThe first line should be limited to 50 characters (https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_GIT_commit_message_structure) and should not end with the period (something in pep8 is causing this).","commit_id":"66beefba8afb835c042fb74d2b15aadb2a7d837a"}],"openstack_dashboard/api/__init__.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed02583f14e82a3a6d0b403646d59c651209f37c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"shouldn\u0027t need to understand the finer details of APIs for"},{"line_number":34,"context_line":"Keystone/Nova/Glance/Swift et. al."},{"line_number":35,"context_line":"\"\"\""},{"line_number":36,"context_line":"# flake8: noqa"},{"line_number":37,"context_line":"import base"},{"line_number":38,"context_line":"import ceilometer"},{"line_number":39,"context_line":"import cinder"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fb5s%3D","line":36,"updated":"2013-09-26 17:33:14.000000000","message":"(question) This statement disables all checks by flake8. Is it a good solution?","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"88c8a77baf07dcab60b408d181ca4a8b32c8afd3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"shouldn\u0027t need to understand the finer details of APIs for"},{"line_number":34,"context_line":"Keystone/Nova/Glance/Swift et. al."},{"line_number":35,"context_line":"\"\"\""},{"line_number":36,"context_line":"# flake8: noqa"},{"line_number":37,"context_line":"import base"},{"line_number":38,"context_line":"import ceilometer"},{"line_number":39,"context_line":"import cinder"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fapw%3D","line":36,"in_reply_to":"AAAAS3%2F%2Fa00%3D","updated":"2013-09-27 05:58:37.000000000","message":"I understand, but I think it is a last-resort to disable ALL flake8 checks.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"b64fc76c963d2e8da792cc69d961c5b805c18c3e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"shouldn\u0027t need to understand the finer details of APIs for"},{"line_number":34,"context_line":"Keystone/Nova/Glance/Swift et. al."},{"line_number":35,"context_line":"\"\"\""},{"line_number":36,"context_line":"# flake8: noqa"},{"line_number":37,"context_line":"import base"},{"line_number":38,"context_line":"import ceilometer"},{"line_number":39,"context_line":"import cinder"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fa00%3D","line":36,"in_reply_to":"AAAAS3%2F%2Fb5s%3D","updated":"2013-09-27 03:29:55.000000000","message":"I think it is acceptable since we can see this solution in many places of Openstack projects.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed02583f14e82a3a6d0b403646d59c651209f37c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"import nova"},{"line_number":48,"context_line":"import swift"},{"line_number":49,"context_line":"import trove"},{"line_number":50,"context_line":"import vpn"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"assert base"},{"line_number":53,"context_line":"assert cinder"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fb5o%3D","line":50,"updated":"2013-09-26 17:33:14.000000000","message":"How about using explicit relative imports?\n\n  from . import vpn","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"88c8a77baf07dcab60b408d181ca4a8b32c8afd3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"import nova"},{"line_number":48,"context_line":"import swift"},{"line_number":49,"context_line":"import trove"},{"line_number":50,"context_line":"import vpn"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"assert base"},{"line_number":53,"context_line":"assert cinder"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FapU%3D","line":50,"in_reply_to":"AAAAS3%2F%2Fa1A%3D","updated":"2013-09-27 05:58:37.000000000","message":"I am not just talking about flake8 rules accepts and denies.\n\nHave you read the discussion about relative import in the ML? At least the proposed style imports are regarded as non-safe.\n\nPEP8 is another good source. http://www.python.org/dev/peps/pep-0008/#imports\n\nI would like to know why these imports are safe. Is it guaranteed \"import base\" is always imports from the same directory regardless to import path?\n\nIn addition, implicit relative imports will be removed in Python 3 and it means we will encounter the same problem again.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"b64fc76c963d2e8da792cc69d961c5b805c18c3e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"import nova"},{"line_number":48,"context_line":"import swift"},{"line_number":49,"context_line":"import trove"},{"line_number":50,"context_line":"import vpn"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"assert base"},{"line_number":53,"context_line":"assert cinder"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fa1A%3D","line":50,"in_reply_to":"AAAAS3%2F%2Fb5o%3D","updated":"2013-09-27 03:29:55.000000000","message":"this is also unnecessary and forbidden by H304 rule in flake8.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"ed02583f14e82a3a6d0b403646d59c651209f37c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"assert keystone"},{"line_number":58,"context_line":"assert lbaas"},{"line_number":59,"context_line":"assert network"},{"line_number":60,"context_line":"assert neutron"},{"line_number":61,"context_line":"assert nova"},{"line_number":62,"context_line":"assert swift"},{"line_number":63,"context_line":"assert ceilometer"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fb5E%3D","line":60,"updated":"2013-09-26 17:33:14.000000000","message":"If \"flake8: noqa\" is used in L.36, these assert looks unnecessary.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"88c8a77baf07dcab60b408d181ca4a8b32c8afd3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"assert keystone"},{"line_number":58,"context_line":"assert lbaas"},{"line_number":59,"context_line":"assert network"},{"line_number":60,"context_line":"assert neutron"},{"line_number":61,"context_line":"assert nova"},{"line_number":62,"context_line":"assert swift"},{"line_number":63,"context_line":"assert ceilometer"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2FarE%3D","line":60,"in_reply_to":"AAAAS3%2F%2Fa0U%3D","updated":"2013-09-27 05:58:37.000000000","message":"It is just a workaround to silence flake8 (F401 check) and unnecessary at running time. Please see commit 4ac70a73 and the related review.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"b64fc76c963d2e8da792cc69d961c5b805c18c3e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"assert keystone"},{"line_number":58,"context_line":"assert lbaas"},{"line_number":59,"context_line":"assert network"},{"line_number":60,"context_line":"assert neutron"},{"line_number":61,"context_line":"assert nova"},{"line_number":62,"context_line":"assert swift"},{"line_number":63,"context_line":"assert ceilometer"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAS3%2F%2Fa0U%3D","line":60,"in_reply_to":"AAAAS3%2F%2Fb5E%3D","updated":"2013-09-27 03:29:55.000000000","message":"flake8 is a code check tool. But assert is for runtime check purpose. it might be necessary to validate those api availability at running time.","commit_id":"e37f4648b5229d3fc5a5e9236474c11da5948531"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"23b737b01a4c923a6af9eefb10b500890aab2dcc","unresolved":false,"context_lines":[{"line_number":33,"context_line":"shouldn\u0027t need to understand the finer details of APIs for"},{"line_number":34,"context_line":"Keystone/Nova/Glance/Swift et. al."},{"line_number":35,"context_line":"\"\"\""},{"line_number":36,"context_line":"from . import base  # noqa"},{"line_number":37,"context_line":"from . import ceilometer  # noqa"},{"line_number":38,"context_line":"from . import cinder  # noqa"},{"line_number":39,"context_line":"from . import fwaas  # noqa"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2Fgzo%3D","line":36,"updated":"2013-10-15 06:55:27.000000000","message":"Honestly, I don\u0027t see a value here in changing to relative imports AND to switch code quality checks OFF. \n\nCurrently, we use flake8 and hackinig, and we decided not to use relative imports.\nOf course, the latter is subject to discuss.","commit_id":"661402255a2cffa39233b2e25f9a9463611bf507"}]}
