)]}'
{"roles/generate-tempestconf-file-cloud/tasks/compare-ini.py":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"c081b8b545c79fb9e2c98299a9726c0d1bd2d9dd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from six.moves import configparser"},{"line_number":27,"context_line":"import sys"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"conf1 \u003d configparser.SafeConfigParser()"},{"line_number":30,"context_line":"conf2 \u003d configparser.SafeConfigParser()"},{"line_number":31,"context_line":"conf1.read(sys.argv[1])"},{"line_number":32,"context_line":"conf2.read(sys.argv[2])"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffd0ebdf_8f50ca34","line":30,"range":{"start_line":29,"start_character":0,"end_line":30,"end_character":39},"updated":"2019-01-03 13:46:39.000000000","message":"use if six.PY3: here as done in https://review.openstack.org/628130","commit_id":"cb73a04ee640c501d7f1c9a64d8ca382fcbf85a2"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"9ebfbdca473673e99107d5b161b4976dff8d99ca","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                failed \u003d 1"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# compare the other file to the first one"},{"line_number":69,"context_line":"for section in conf2.sections():"},{"line_number":70,"context_line":"    if not conf1.has_section(section):"},{"line_number":71,"context_line":"        sys.stderr(\"%s doesn\u0027t have %s section.\\n\" % (sys.argv[1], section))"},{"line_number":72,"context_line":"        failed \u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffd0ebdf_9e0a3a88","line":69,"updated":"2019-01-03 17:28:26.000000000","message":"if this section is the duplication of the previous one with swapped parameters, it\u0027s calling for a function...","commit_id":"ac20cdb11c0648f2504fa5c4ed0bc8d146c08265"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"bf37480eea744a2454659c8afdf411cf015c36f0","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                failed \u003d 1"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# compare the other file to the first one"},{"line_number":69,"context_line":"for section in conf2.sections():"},{"line_number":70,"context_line":"    if not conf1.has_section(section):"},{"line_number":71,"context_line":"        sys.stderr(\"%s doesn\u0027t have %s section.\\n\" % (sys.argv[1], section))"},{"line_number":72,"context_line":"        failed \u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffd0ebdf_f546fc4f","line":69,"in_reply_to":"ffd0ebdf_9e0a3a88","updated":"2019-01-03 23:45:33.000000000","message":"oh, sure, I was in a hurry to find out if it works ..","commit_id":"ac20cdb11c0648f2504fa5c4ed0bc8d146c08265"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"b998c468e6b918a61c0e1a0a1cc601a687aa2fab","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":67,"context_line":"    if six.PY3:"},{"line_number":68,"context_line":"        conf1 \u003d configparser.ConfigParser()"},{"line_number":69,"context_line":"        conf2 \u003d configparser.ConfigParser()"},{"line_number":70,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffd0ebdf_bb2aa2e4","line":67,"updated":"2019-01-04 08:53:54.000000000","message":"I know this is a small script, but i would use:\nparser \u003d configparser.SafeConfigParser\nif six.PY3:\n    parser \u003d configparser.ConfigParser\n\nconf1 \u003d parser()\nconf2 \u003d parser()\n\nIt would simplify the logic...","commit_id":"defb80bd3d925167e20885ce64e1038a657a93e7"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"d3d1ca860b4cb105e80dab352ecfb0760cab36a9","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":67,"context_line":"    if six.PY3:"},{"line_number":68,"context_line":"        conf1 \u003d configparser.ConfigParser()"},{"line_number":69,"context_line":"        conf2 \u003d configparser.ConfigParser()"},{"line_number":70,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffd0ebdf_f6c83f75","line":67,"in_reply_to":"ffd0ebdf_b6bb97e3","updated":"2019-01-04 09:39:12.000000000","message":"Aha! my bad :)","commit_id":"defb80bd3d925167e20885ce64e1038a657a93e7"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"7bc2d21836118e2e49ac029eeabb9f16889765c4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":67,"context_line":"    if six.PY3:"},{"line_number":68,"context_line":"        conf1 \u003d configparser.ConfigParser()"},{"line_number":69,"context_line":"        conf2 \u003d configparser.ConfigParser()"},{"line_number":70,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffd0ebdf_36e6c718","line":67,"in_reply_to":"ffd0ebdf_bb2aa2e4","updated":"2019-01-04 09:35:09.000000000","message":"But then the warning is not going away, because you are going to create the SafeConfigParser object.","commit_id":"defb80bd3d925167e20885ce64e1038a657a93e7"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"43a9235b39cd34c6f0ec3a3fd9760883d37ea2f5","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":67,"context_line":"    if six.PY3:"},{"line_number":68,"context_line":"        conf1 \u003d configparser.ConfigParser()"},{"line_number":69,"context_line":"        conf2 \u003d configparser.ConfigParser()"},{"line_number":70,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffd0ebdf_b6bb97e3","line":67,"in_reply_to":"ffd0ebdf_bb2aa2e4","updated":"2019-01-04 09:37:43.000000000","message":"It doesn\u0027t work like that:\n\nTraceback (most recent call last):\n  File \"roles/generate-tempestconf-file-cloud/tasks/compare-ini.py\", line 70, in \u003cmodule\u003e\n    conf1 \u003d parser()\nAttributeError: SafeConfigParser instance has no __call__ method\n\nHowever, I can get rid of else branch if you want and put the content of that branch before if six.PY3 - we\u0027ll save one line","commit_id":"defb80bd3d925167e20885ce64e1038a657a93e7"}]}
