)]}'
{"cliff/display.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64e38f80d0706c68a08d0afcb6c3d7e251c5e530","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        parsed_args \u003d self._run_before_hooks(parsed_args)"},{"line_number":114,"context_line":"        self.formatter \u003d self._formatter_plugins[parsed_args.formatter].obj"},{"line_number":115,"context_line":"        column_names, data \u003d self.take_action(parsed_args)"},{"line_number":116,"context_line":"        column_names, data \u003d self._run_after_hooks(parsed_args,"},{"line_number":117,"context_line":"                                                   (column_names, data))"},{"line_number":118,"context_line":"        self.produce_output(parsed_args, column_names, data)"},{"line_number":119,"context_line":"        return 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_f4a7ef4e","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":26},"updated":"2017-09-22 14:41:52.000000000","message":"Because we passed in a tuple, we get back a tuple. Gotcha","commit_id":"42b169123de219bfe873e7b525a50d78028d4109"}],"cliff/hooks.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9d3eb2fe23271649d3a71a3582b3e056f92ebab0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def before(self, parsed_args):"},{"line_number":47,"context_line":"        \"\"\"Called before the command\u0027s take_action() method."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        Any return value is ignored."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        :param parsed_args: The arguments to the command."},{"line_number":52,"context_line":"        :paramtype parsed_args: argparse.Namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_74189f80","line":49,"updated":"2017-09-22 14:40:18.000000000","message":"This no longer applies.","commit_id":"42b169123de219bfe873e7b525a50d78028d4109"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"64e38f80d0706c68a08d0afcb6c3d7e251c5e530","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        :param parsed_args: The arguments to the command."},{"line_number":52,"context_line":"        :paramtype parsed_args: argparse.Namespace"},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        return parsed_args"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @abc.abstractmethod"},{"line_number":57,"context_line":"    def after(self, parsed_args, return_code):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_b4673726","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":26},"updated":"2017-09-22 14:41:52.000000000","message":"nit: I thought abstractmethod were supposed to stay empty? I don\u0027t know all that much about abc though so I won\u0027t/can\u0027t block on it","commit_id":"42b169123de219bfe873e7b525a50d78028d4109"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9ee57a3ef6111fccfb033b6613c1d193c6acad0f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        :param parsed_args: The arguments to the command."},{"line_number":52,"context_line":"        :paramtype parsed_args: argparse.Namespace"},{"line_number":53,"context_line":"        \"\"\""},{"line_number":54,"context_line":"        return parsed_args"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @abc.abstractmethod"},{"line_number":57,"context_line":"    def after(self, parsed_args, return_code):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_a5e13fd3","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":26},"in_reply_to":"7f515b1d_b4673726","updated":"2017-09-22 15:59:47.000000000","message":"Traditionally they may be but the docs to have a note[0] about that, as opposed to Java abstract classes, these may have implementations.  I included it to re-enforce the notion that there are return values, which of course I promptly failed to fix in the docstring :)  Follow-up review is incoming.\n\n[0] https://docs.python.org/2/library/abc.html#abc.abstractmethod","commit_id":"42b169123de219bfe873e7b525a50d78028d4109"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"9d3eb2fe23271649d3a71a3582b3e056f92ebab0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def after(self, parsed_args, return_code):"},{"line_number":58,"context_line":"        \"\"\"Called after the command\u0027s take_action() method."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        Any return value is ignored."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        :param parsed_args: The arguments to the command."},{"line_number":63,"context_line":"        :paramtype parsed_args: argparse.Namespace"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_540da33c","line":60,"updated":"2017-09-22 14:40:18.000000000","message":"Ditto.","commit_id":"42b169123de219bfe873e7b525a50d78028d4109"}]}
