)]}'
{"cliff/commandmanager.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5f88167ffd2b063be11155c5d8e58028a24a9818","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # Convert the legacy command name to its new name."},{"line_number":110,"context_line":"            if name in self._legacy:"},{"line_number":111,"context_line":"                name \u003d self._legacy[name]"},{"line_number":112,"context_line":"            elif os.environ.get(\"CLIFF_PARTIAL_NAME\"):"},{"line_number":113,"context_line":"                candidates \u003d get_commands_by_partial_name("},{"line_number":114,"context_line":"                    argv[:i], self.commands)"},{"line_number":115,"context_line":"                n \u003d len(candidates)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_b5c22958","line":112,"updated":"2018-03-14 17:15:04.000000000","message":"Why use an environment variable to control this? Why not just turn it on all the time?","commit_id":"c4d8f3f0d2912b86c3f353d7accc8deb22416002"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"e65bf41cfff71fc071af866aa6c46b9e70e928b8","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # Convert the legacy command name to its new name."},{"line_number":110,"context_line":"            if name in self._legacy:"},{"line_number":111,"context_line":"                name \u003d self._legacy[name]"},{"line_number":112,"context_line":"            elif os.environ.get(\"CLIFF_PARTIAL_NAME\"):"},{"line_number":113,"context_line":"                candidates \u003d get_commands_by_partial_name("},{"line_number":114,"context_line":"                    argv[:i], self.commands)"},{"line_number":115,"context_line":"                n \u003d len(candidates)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_89aa5c16","line":112,"in_reply_to":"df7087c5_b5c22958","updated":"2018-03-15 08:40:43.000000000","message":"Thought about as kind of experimental feature, changed.","commit_id":"c4d8f3f0d2912b86c3f353d7accc8deb22416002"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5f88167ffd2b063be11155c5d8e58028a24a9818","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                if n \u003d\u003d 1:"},{"line_number":117,"context_line":"                    name \u003d candidates[0]"},{"line_number":118,"context_line":"                elif n \u003e 1:"},{"line_number":119,"context_line":"                    print(\u0027Too many command candidates found by partial \u0027"},{"line_number":120,"context_line":"                          \u0027name: %r\u0027, candidates)"},{"line_number":121,"context_line":"            if name in self.commands:"},{"line_number":122,"context_line":"                cmd_ep \u003d self.commands[name]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_752a512c","line":119,"updated":"2018-03-14 17:15:04.000000000","message":"I don\u0027t think we want to print this to stdout. I\u0027m not sure we want to output a message like this at all, but if we do it should go to stderr.","commit_id":"c4d8f3f0d2912b86c3f353d7accc8deb22416002"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"e65bf41cfff71fc071af866aa6c46b9e70e928b8","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                if n \u003d\u003d 1:"},{"line_number":117,"context_line":"                    name \u003d candidates[0]"},{"line_number":118,"context_line":"                elif n \u003e 1:"},{"line_number":119,"context_line":"                    print(\u0027Too many command candidates found by partial \u0027"},{"line_number":120,"context_line":"                          \u0027name: %r\u0027, candidates)"},{"line_number":121,"context_line":"            if name in self.commands:"},{"line_number":122,"context_line":"                cmd_ep \u003d self.commands[name]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_89581c56","line":119,"in_reply_to":"df7087c5_752a512c","updated":"2018-03-15 08:40:43.000000000","message":"Changed to stderr. I would like to have that message it\u0027s critical to understand why your partial name does not work\nand how your partial name should be modified.","commit_id":"c4d8f3f0d2912b86c3f353d7accc8deb22416002"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"5f88167ffd2b063be11155c5d8e58028a24a9818","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                    print(\u0027Too many command candidates found by partial \u0027"},{"line_number":120,"context_line":"                          \u0027name: %r\u0027, candidates)"},{"line_number":121,"context_line":"            if name in self.commands:"},{"line_number":122,"context_line":"                cmd_ep \u003d self.commands[name]"},{"line_number":123,"context_line":"                if hasattr(cmd_ep, \u0027resolve\u0027):"},{"line_number":124,"context_line":"                    cmd_factory \u003d cmd_ep.resolve()"},{"line_number":125,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_f5a661ab","line":122,"updated":"2018-03-14 17:15:04.000000000","message":"I think we want to move lines 113-118 down here somewhere as an alternative to this if conditional. That lets this existing code handle the exact match, and treats the abbreviations as a fallback. We can then safely ignore a failure of the abbreviations to resolve to exactly 1 command, and the existing handling for unknown commands will work properly.","commit_id":"c4d8f3f0d2912b86c3f353d7accc8deb22416002"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"e65bf41cfff71fc071af866aa6c46b9e70e928b8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                    print(\u0027Too many command candidates found by partial \u0027"},{"line_number":120,"context_line":"                          \u0027name: %r\u0027, candidates)"},{"line_number":121,"context_line":"            if name in self.commands:"},{"line_number":122,"context_line":"                cmd_ep \u003d self.commands[name]"},{"line_number":123,"context_line":"                if hasattr(cmd_ep, \u0027resolve\u0027):"},{"line_number":124,"context_line":"                    cmd_factory \u003d cmd_ep.resolve()"},{"line_number":125,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df7087c5_493444fc","line":122,"in_reply_to":"df7087c5_f5a661ab","updated":"2018-03-15 08:40:43.000000000","message":"Updated.","commit_id":"c4d8f3f0d2912b86c3f353d7accc8deb22416002"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"206d7bc2de5304d472c3bbafa7b866f230a8c30c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def get_commands_by_partial_name(args, commands):"},{"line_number":28,"context_line":"    n \u003d len(args)"},{"line_number":29,"context_line":"    candidates \u003d []"},{"line_number":30,"context_line":"    for command_name in commands:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_ab1f0a06","line":27,"updated":"2018-03-15 14:38:29.000000000","message":"Please rename this to add a _ to the front of the name to indicate that it is a private function that should not be used outside of cliff.","commit_id":"977c1b0627ec2cd9c65b3443ed18d20090ece011"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"7d7b8e351f5110b26ee684c90bb9d2bc09a3e401","unresolved":false,"context_lines":[{"line_number":24,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def get_commands_by_partial_name(args, commands):"},{"line_number":28,"context_line":"    n \u003d len(args)"},{"line_number":29,"context_line":"    candidates \u003d []"},{"line_number":30,"context_line":"    for command_name in commands:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_eb474276","line":27,"in_reply_to":"df7087c5_ab1f0a06","updated":"2018-03-15 14:52:24.000000000","message":"Done","commit_id":"977c1b0627ec2cd9c65b3443ed18d20090ece011"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"206d7bc2de5304d472c3bbafa7b866f230a8c30c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        self._legacy[old_name] \u003d new_name"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _get_command_factory(self, name):"},{"line_number":100,"context_line":"        cmd_ep \u003d self.commands[name]"},{"line_number":101,"context_line":"        if hasattr(cmd_ep, \u0027resolve\u0027):"},{"line_number":102,"context_line":"            cmd_factory \u003d cmd_ep.resolve()"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_4b53cee2","line":99,"updated":"2018-03-15 14:38:29.000000000","message":"Please limit each patch to the changes needed to implement it. I don\u0027t mind the refactoring in general, but it makes it more confusing to review.","commit_id":"977c1b0627ec2cd9c65b3443ed18d20090ece011"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"7d7b8e351f5110b26ee684c90bb9d2bc09a3e401","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        self._legacy[old_name] \u003d new_name"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def _get_command_factory(self, name):"},{"line_number":100,"context_line":"        cmd_ep \u003d self.commands[name]"},{"line_number":101,"context_line":"        if hasattr(cmd_ep, \u0027resolve\u0027):"},{"line_number":102,"context_line":"            cmd_factory \u003d cmd_ep.resolve()"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_4b58ae54","line":99,"in_reply_to":"df7087c5_4b53cee2","updated":"2018-03-15 14:52:24.000000000","message":"Done","commit_id":"977c1b0627ec2cd9c65b3443ed18d20090ece011"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"206d7bc2de5304d472c3bbafa7b866f230a8c30c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                    found \u003d candidates[0]"},{"line_number":137,"context_line":"                elif n \u003e 1:"},{"line_number":138,"context_line":"                    print(\u0027Too many command candidates found by partial \u0027"},{"line_number":139,"context_line":"                          \u0027name: %r\u0027 % candidates, file\u003dsys.stderr)"},{"line_number":140,"context_line":"            if found:"},{"line_number":141,"context_line":"                return (self._get_command_factory(found),"},{"line_number":142,"context_line":"                        return_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_abf62ad6","line":139,"updated":"2018-03-15 14:38:29.000000000","message":"We already have some logic to try to offer suggestions for names that should be triggered by the exception raised when no command is found. So please remove the print.","commit_id":"977c1b0627ec2cd9c65b3443ed18d20090ece011"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"7d7b8e351f5110b26ee684c90bb9d2bc09a3e401","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                    found \u003d candidates[0]"},{"line_number":137,"context_line":"                elif n \u003e 1:"},{"line_number":138,"context_line":"                    print(\u0027Too many command candidates found by partial \u0027"},{"line_number":139,"context_line":"                          \u0027name: %r\u0027 % candidates, file\u003dsys.stderr)"},{"line_number":140,"context_line":"            if found:"},{"line_number":141,"context_line":"                return (self._get_command_factory(found),"},{"line_number":142,"context_line":"                        return_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_eb3c22e2","line":139,"in_reply_to":"df7087c5_abf62ad6","updated":"2018-03-15 14:52:24.000000000","message":"Done","commit_id":"977c1b0627ec2cd9c65b3443ed18d20090ece011"}]}
