)]}'
{"karborclient/v1/shell.py":[{"author":{"_account_id":21648,"name":"zhangshuai","email":"446077695@qq.com","username":"zhangshuai"},"change_message_id":"18277ad7bf891fea63032a0592571d84328bce0d","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            resource[\"name\"] \u003d resource_values[2]"},{"line_number":210,"context_line":"            if len(resource_values) \u003d\u003d 4:"},{"line_number":211,"context_line":"                resource_extra_info \u003d resource_values[3]"},{"line_number":212,"context_line":"                if resource_extra_info is not None:"},{"line_number":213,"context_line":"                    resource[\"extra_info\"] \u003d jsonutils.loads("},{"line_number":214,"context_line":"                        resource_extra_info)"},{"line_number":215,"context_line":"        else:"},{"line_number":216,"context_line":"            raise exceptions.CommandError("},{"line_number":217,"context_line":"                \"Unable to parse parameter resources.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_d7b35e96","line":214,"range":{"start_line":212,"start_character":16,"end_line":214,"end_character":44},"updated":"2016-11-18 08:11:30.000000000","message":"IMO, \"if resource_extra_info：\" is more suitable than \"if resource_extra_info is not None:\", because resource_extra_info may be empty string like \u0027\u0027, but it is not None.","commit_id":"bafe41f887e701a0b0f6bd935a18c3e3a2fdbe9b"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"411f42bd59bf197ff794e8b262825ffb686ee00c","unresolved":false,"context_lines":[{"line_number":209,"context_line":"            resource[\"name\"] \u003d resource_values[2]"},{"line_number":210,"context_line":"            if len(resource_values) \u003d\u003d 4:"},{"line_number":211,"context_line":"                resource_extra_info \u003d resource_values[3]"},{"line_number":212,"context_line":"                if resource_extra_info is not None:"},{"line_number":213,"context_line":"                    resource[\"extra_info\"] \u003d jsonutils.loads("},{"line_number":214,"context_line":"                        resource_extra_info)"},{"line_number":215,"context_line":"        else:"},{"line_number":216,"context_line":"            raise exceptions.CommandError("},{"line_number":217,"context_line":"                \"Unable to parse parameter resources.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a77a97e_9d82e7c6","line":214,"range":{"start_line":212,"start_character":16,"end_line":214,"end_character":44},"in_reply_to":"7a77a97e_d7b35e96","updated":"2016-11-18 09:01:34.000000000","message":"Done","commit_id":"bafe41f887e701a0b0f6bd935a18c3e3a2fdbe9b"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"ffa6e38c9bafb9ed189d0509e091ec2477e0d71e","unresolved":false,"context_lines":[{"line_number":119,"context_line":"@utils.arg(\u0027resources\u0027,"},{"line_number":120,"context_line":"           metavar\u003d\u0027\u003cid\u003dtype\u003dname\u003dextra_info,id\u003dtype\u003dname\u003dextra_info\u003e\u0027,"},{"line_number":121,"context_line":"           help\u003d\u0027Resource in list must be a dict when creating\u0027"},{"line_number":122,"context_line":"                \u0027 a plan.The keys of resource are id ,type and name.\u0027"},{"line_number":123,"context_line":"                \u0027The extra_info field is optional.\u0027)"},{"line_number":124,"context_line":"@utils.arg(\u0027--parameters-json\u0027,"},{"line_number":125,"context_line":"           type\u003dstr,"},{"line_number":126,"context_line":"           dest\u003d\u0027parameters_json\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_5e3398ab","line":123,"range":{"start_line":122,"start_character":25,"end_line":123,"end_character":49},"updated":"2017-03-30 07:29:45.000000000","message":"IMO, it is more clear to say \u0027The keys of resource are id ,type, name and extra_info. Note: extra_info is optional.\u0027","commit_id":"f83cd9b532163c136fa0549c6712aa08f2954d67"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"05f53c442e3351cca6b6487064884c6acaa83439","unresolved":false,"context_lines":[{"line_number":119,"context_line":"@utils.arg(\u0027resources\u0027,"},{"line_number":120,"context_line":"           metavar\u003d\u0027\u003cid\u003dtype\u003dname\u003dextra_info,id\u003dtype\u003dname\u003dextra_info\u003e\u0027,"},{"line_number":121,"context_line":"           help\u003d\u0027Resource in list must be a dict when creating\u0027"},{"line_number":122,"context_line":"                \u0027 a plan.The keys of resource are id ,type and name.\u0027"},{"line_number":123,"context_line":"                \u0027The extra_info field is optional.\u0027)"},{"line_number":124,"context_line":"@utils.arg(\u0027--parameters-json\u0027,"},{"line_number":125,"context_line":"           type\u003dstr,"},{"line_number":126,"context_line":"           dest\u003d\u0027parameters_json\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_542c8946","line":123,"range":{"start_line":122,"start_character":25,"end_line":123,"end_character":49},"in_reply_to":"ffe62b97_5e3398ab","updated":"2017-04-14 08:41:55.000000000","message":"Done","commit_id":"f83cd9b532163c136fa0549c6712aa08f2954d67"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"ffa6e38c9bafb9ed189d0509e091ec2477e0d71e","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    for data in args.resources.split(\u0027,\u0027):"},{"line_number":210,"context_line":"        resource \u003d {}"},{"line_number":211,"context_line":"        if \u0027\u003d\u0027 in data:"},{"line_number":212,"context_line":"            resource_values \u003d data.split(\u0027\u003d\u0027)"},{"line_number":213,"context_line":"            resource[\"id\"] \u003d resource_values[0]"},{"line_number":214,"context_line":"            resource[\"type\"] \u003d resource_values[1]"},{"line_number":215,"context_line":"            resource[\"name\"] \u003d resource_values[2]"},{"line_number":216,"context_line":"            if len(resource_values) \u003d\u003d 4:"},{"line_number":217,"context_line":"                resource_extra_info \u003d resource_values[3]"},{"line_number":218,"context_line":"                if resource_extra_info:"},{"line_number":219,"context_line":"                    resource[\"extra_info\"] \u003d jsonutils.loads("},{"line_number":220,"context_line":"                        resource_extra_info)"},{"line_number":221,"context_line":"        else:"},{"line_number":222,"context_line":"            raise exceptions.CommandError("},{"line_number":223,"context_line":"                \"Unable to parse parameter resources.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffe62b97_25db1b4f","line":220,"range":{"start_line":212,"start_character":0,"end_line":220,"end_character":44},"updated":"2017-03-30 07:29:45.000000000","message":"Think about following codes. Maybe it is shorter.\nresource \u003d dict(zip([\u0027id\u0027, \u0027type\u0027, \u0027name\u0027, \u0027extra_info\u0027], data.split(\u0027\u003d\u0027)))\nif resource.get(\u0027extra_info\u0027):\n    resource[\u0027extra_info\u0027] \u003d jsonutils.loads(resource.get(\u0027extra_info\u0027))","commit_id":"f83cd9b532163c136fa0549c6712aa08f2954d67"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"05f53c442e3351cca6b6487064884c6acaa83439","unresolved":false,"context_lines":[{"line_number":209,"context_line":"    for data in args.resources.split(\u0027,\u0027):"},{"line_number":210,"context_line":"        resource \u003d {}"},{"line_number":211,"context_line":"        if \u0027\u003d\u0027 in data:"},{"line_number":212,"context_line":"            resource_values \u003d data.split(\u0027\u003d\u0027)"},{"line_number":213,"context_line":"            resource[\"id\"] \u003d resource_values[0]"},{"line_number":214,"context_line":"            resource[\"type\"] \u003d resource_values[1]"},{"line_number":215,"context_line":"            resource[\"name\"] \u003d resource_values[2]"},{"line_number":216,"context_line":"            if len(resource_values) \u003d\u003d 4:"},{"line_number":217,"context_line":"                resource_extra_info \u003d resource_values[3]"},{"line_number":218,"context_line":"                if resource_extra_info:"},{"line_number":219,"context_line":"                    resource[\"extra_info\"] \u003d jsonutils.loads("},{"line_number":220,"context_line":"                        resource_extra_info)"},{"line_number":221,"context_line":"        else:"},{"line_number":222,"context_line":"            raise exceptions.CommandError("},{"line_number":223,"context_line":"                \"Unable to parse parameter resources.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_943211a7","line":220,"range":{"start_line":212,"start_character":0,"end_line":220,"end_character":44},"in_reply_to":"ffe62b97_25db1b4f","updated":"2017-04-14 08:41:55.000000000","message":"Done","commit_id":"f83cd9b532163c136fa0549c6712aa08f2954d67"}]}
