)]}'
{"openstackclient/image/v1/image.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"6db0b0310aade9c3811b7ea1db9b38ec2f578771","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        )"},{"line_number":315,"context_line":"        parser.add_argument("},{"line_number":316,"context_line":"            \"--property\","},{"line_number":317,"context_line":"            metavar\u003d\"\u003ckey\u003dvalue\u003e\","},{"line_number":318,"context_line":"            default\u003d[],"},{"line_number":319,"context_line":"            action\u003d\"append\","},{"line_number":320,"context_line":"            help\u003d\"Arbitrary property to associate with image\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FnS4%3D","line":317,"updated":"2013-07-15 20:37:15.000000000","message":"If you use nargs\u003d2 you may be able to avoid parsing the values with an \u003d between them.\n\n  --property name value\n\nI\u0027m not sure how well that works with the append action, though.","commit_id":"b70a5ed581df89cc141dded64aceb69e5b4be262"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7622a4ab209c938c57424361b51f1b12f2fd944b","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        )"},{"line_number":315,"context_line":"        parser.add_argument("},{"line_number":316,"context_line":"            \"--property\","},{"line_number":317,"context_line":"            metavar\u003d\"\u003ckey\u003dvalue\u003e\","},{"line_number":318,"context_line":"            default\u003d[],"},{"line_number":319,"context_line":"            action\u003d\"append\","},{"line_number":320,"context_line":"            help\u003d\"Arbitrary property to associate with image\","}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjoI%3D","line":317,"in_reply_to":"AAAAP3%2F%2FnS4%3D","updated":"2013-07-16 16:08:29.000000000","message":"Since I wrote this I created a custom parser action KeyValueAction that also handles \u0027key\u003d\u0027 (no value present) as a deletion.  I haven\u0027t gone back yet to update the other --property declarations.","commit_id":"b70a5ed581df89cc141dded64aceb69e5b4be262"}],"openstackclient/image/v2/image.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"6db0b0310aade9c3811b7ea1db9b38ec2f578771","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            parsed_args.image,"},{"line_number":136,"context_line":"        )"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        info \u003d {}"},{"line_number":139,"context_line":"        info.update(image._info)"},{"line_number":140,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FnSU%3D","line":138,"updated":"2013-07-15 20:37:15.000000000","message":"This pattern appears a lot. We should make a ShowOneModel class that does this part automatically.","commit_id":"b70a5ed581df89cc141dded64aceb69e5b4be262"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"b13ed59452fbec7a4625b5d52a710d68b7f3cec9","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            parsed_args.image,"},{"line_number":136,"context_line":"        )"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        info \u003d {}"},{"line_number":139,"context_line":"        info.update(image._info)"},{"line_number":140,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fim8%3D","line":138,"in_reply_to":"AAAAP3%2F%2FjeQ%3D","updated":"2013-07-16 19:56:39.000000000","message":"rather than mess with take_action() itself, how about adding a ShowOne.make_columns() method that does the pattern below and returns the zip results.  So the below would become:\n\n  return self.make_columns(image._info)\n\nThat could also just go into utils.","commit_id":"b70a5ed581df89cc141dded64aceb69e5b4be262"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"f42b166d9b91f8827ecf72bb7068fb94affe009d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            parsed_args.image,"},{"line_number":136,"context_line":"        )"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        info \u003d {}"},{"line_number":139,"context_line":"        info.update(image._info)"},{"line_number":140,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjeQ%3D","line":138,"in_reply_to":"AAAAP3%2F%2FjnI%3D","updated":"2013-07-16 16:36:43.000000000","message":"At first I thought it would be tied to our models, but a ShowOneFromDict class would make sense in cliff.\n\nI\u0027d like to find a way to do it without forcing subclasses to implement a method other than take_action(), if that\u0027s possible.","commit_id":"b70a5ed581df89cc141dded64aceb69e5b4be262"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7622a4ab209c938c57424361b51f1b12f2fd944b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            parsed_args.image,"},{"line_number":136,"context_line":"        )"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        info \u003d {}"},{"line_number":139,"context_line":"        info.update(image._info)"},{"line_number":140,"context_line":"        return zip(*sorted(six.iteritems(info)))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjnI%3D","line":138,"in_reply_to":"AAAAP3%2F%2FnSU%3D","updated":"2013-07-16 16:08:29.000000000","message":"Agreed.  Do you think that\u0027s general enough to go straight into cliff?","commit_id":"b70a5ed581df89cc141dded64aceb69e5b4be262"}]}
