)]}'
{"cliff/command.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"46331dd02f6615c173b7487ef45cc60f0284a747","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        \"\"\"Calls before() method of the hooks."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        This method is intended to be called from the run() method before"},{"line_number":145,"context_line":"        take_action() is called."},{"line_number":146,"context_line":"        \"\"\""},{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_d7c96c78","line":145,"updated":"2017-07-03 01:17:24.000000000","message":"I think it is better to mention this method is not intended to be overridden by a subclass as the docstirng of run() says.\n\nIt might be a good idea to start the method name from underscore.\nAt least it clarifies it is not intended to be overridden by cliff application developers.","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"},{"author":{"_account_id":14758,"name":"Rajath Agasthya","email":"rajagast@cisco.com","username":"rajathagasthya"},"change_message_id":"ef8b263168ebfbdf7908f0e6af4a1cb3a8a1817d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        \"\"\"Calls before() method of the hooks."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        This method is intended to be called from the run() method before"},{"line_number":145,"context_line":"        take_action() is called."},{"line_number":146,"context_line":"        \"\"\""},{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_c3776e3a","line":145,"in_reply_to":"3f1d235d_d7c96c78","updated":"2017-07-03 05:52:58.000000000","message":"Done","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"46331dd02f6615c173b7487ef45cc60f0284a747","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_after_hooks(self, parsed_args, *return_code):"},{"line_number":151,"context_line":"        \"\"\"Calls after() method of the hooks."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This method is intended to be called from the run() method after"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_f778e82b","line":150,"range":{"start_line":150,"start_character":43,"end_line":150,"end_character":55},"updated":"2017-07-03 01:17:24.000000000","message":"Why not \"return_code\"? I do not understand why \u0027*\u0027 is needed.","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"38cf7615442ffb3e420e42db08f4b9c5c5fbe940","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_after_hooks(self, parsed_args, *return_code):"},{"line_number":151,"context_line":"        \"\"\"Calls after() method of the hooks."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This method is intended to be called from the run() method after"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_a72d29a9","line":150,"range":{"start_line":150,"start_character":43,"end_line":150,"end_character":55},"in_reply_to":"3f1d235d_5887c810","updated":"2017-07-06 09:04:27.000000000","message":"You\u0027re right. it seems I was confused a bit somehow.","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"513ef41d1031c24bace87499756734d3ca3b007a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_after_hooks(self, parsed_args, *return_code):"},{"line_number":151,"context_line":"        \"\"\"Calls after() method of the hooks."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This method is intended to be called from the run() method after"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_d5eba1d9","line":150,"range":{"start_line":150,"start_character":43,"end_line":150,"end_character":55},"in_reply_to":"3f1d235d_c34f6ebb","updated":"2017-07-03 06:28:23.000000000","message":"Looking at L.137 above, the value passed here is a return value from take_action OR \u00270\u0027. At least 0 cannot be unpacked. This is the main reason of my comment.","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"},{"author":{"_account_id":14758,"name":"Rajath Agasthya","email":"rajagast@cisco.com","username":"rajathagasthya"},"change_message_id":"e0ca01ed5838989fe3adcd749639efe80873eb66","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_after_hooks(self, parsed_args, *return_code):"},{"line_number":151,"context_line":"        \"\"\"Calls after() method of the hooks."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This method is intended to be called from the run() method after"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_5887c810","line":150,"range":{"start_line":150,"start_character":43,"end_line":150,"end_character":55},"in_reply_to":"3f1d235d_d5eba1d9","updated":"2017-07-03 07:14:32.000000000","message":"\u00270\u0027 isn\u0027t unpacked in the method call to run_after_hooks() in L138.  \u00270\u0027 would however be packed into return_code in run_after_hooks() because the method definition has *return_code. I think that still wouldn\u0027t have been a problem. \n\n  In [9]: def test(*args):\n   ...:     print(args)\n   ...:\n\n  In [10]: return_code \u003d 0\n\n  In [11]: test(return_code)\n  (0,)","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"},{"author":{"_account_id":14758,"name":"Rajath Agasthya","email":"rajagast@cisco.com","username":"rajathagasthya"},"change_message_id":"ef8b263168ebfbdf7908f0e6af4a1cb3a8a1817d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        for hook in self._hooks:"},{"line_number":148,"context_line":"            hook.obj.before(parsed_args)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def run_after_hooks(self, parsed_args, *return_code):"},{"line_number":151,"context_line":"        \"\"\"Calls after() method of the hooks."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        This method is intended to be called from the run() method after"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_c34f6ebb","line":150,"range":{"start_line":150,"start_character":43,"end_line":150,"end_character":55},"in_reply_to":"3f1d235d_f778e82b","updated":"2017-07-03 05:52:58.000000000","message":"Done. I thought it\u0027s useful if take_action() returns multiple values, but I just realized the values are returned packed as a tuple.","commit_id":"7171a53d81b7b7e3d76c519f357092669bed9d20"}]}
