)]}'
{"gear/__init__.py":[{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"b5bdd67b3f69222fec4285f319503c57b37ac3a0","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                cmd \u003d obj.__dict__.get(\u0027command\u0027)"},{"line_number":428,"context_line":"                if cmd is not None:"},{"line_number":429,"context_line":"                    helps[cmd] \u003d obj.__dict__.get(\u0027inline_help\u0027,"},{"line_number":430,"context_line":"                                                  \u0027undocumented\u0027)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        longest \u003d len(max(helps.iterkeys(), key\u003dlen))"},{"line_number":433,"context_line":"        ret \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_d7910154","line":430,"updated":"2015-10-25 12:09:38.000000000","message":"Because inline_help is set in AdminRequest this will get None, and therefore the \u0027undocumented\u0027 string won\u0027t be shown.","commit_id":"1146e65abd3f472832e29dc198b5cfc94d8ceee6"},{"author":{"_account_id":2475,"name":"Antoine Musso","email":"hashar@free.fr","username":"hashar"},"change_message_id":"cf43592ac67bc1ad7284b3b4e680a8b2385840b4","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                cmd \u003d obj.__dict__.get(\u0027command\u0027)"},{"line_number":428,"context_line":"                if cmd is not None:"},{"line_number":429,"context_line":"                    helps[cmd] \u003d obj.__dict__.get(\u0027inline_help\u0027,"},{"line_number":430,"context_line":"                                                  \u0027undocumented\u0027)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        longest \u003d len(max(helps.iterkeys(), key\u003dlen))"},{"line_number":433,"context_line":"        ret \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_8097858f","line":430,"in_reply_to":"3a29b11f_d7910154","updated":"2015-10-29 21:20:18.000000000","message":"Good one, I completely missed it. Changed to use:\n\n help \u003d {}.get(\u0027inline_help\u0027) or \u0027undocumented\u0027","commit_id":"1146e65abd3f472832e29dc198b5cfc94d8ceee6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"b5bdd67b3f69222fec4285f319503c57b37ac3a0","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        longest \u003d len(max(helps.iterkeys(), key\u003dlen))"},{"line_number":433,"context_line":"        ret \u003d \u0027\u0027"},{"line_number":434,"context_line":"        for cmd in sorted(helps.iterkeys()):"},{"line_number":435,"context_line":"            ret \u003d ret + (\"%-\" + str(longest) + \"s: %s\") % (cmd, helps[cmd])"},{"line_number":436,"context_line":"        return ret"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_37871514","line":435,"updated":"2015-10-25 12:09:38.000000000","message":"This mixes concatenation with substitution and is difficult to read. Why not use \n  ret +\u003d \"%...\"","commit_id":"1146e65abd3f472832e29dc198b5cfc94d8ceee6"},{"author":{"_account_id":2475,"name":"Antoine Musso","email":"hashar@free.fr","username":"hashar"},"change_message_id":"cf43592ac67bc1ad7284b3b4e680a8b2385840b4","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        longest \u003d len(max(helps.iterkeys(), key\u003dlen))"},{"line_number":433,"context_line":"        ret \u003d \u0027\u0027"},{"line_number":434,"context_line":"        for cmd in sorted(helps.iterkeys()):"},{"line_number":435,"context_line":"            ret \u003d ret + (\"%-\" + str(longest) + \"s: %s\") % (cmd, helps[cmd])"},{"line_number":436,"context_line":"        return ret"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a26ad4f_2051d10e","line":435,"in_reply_to":"3a29b11f_37871514","updated":"2015-10-29 21:20:18.000000000","message":"Looks like I need to finally attend python 101.\n\nI could not find a good way to use string formatting to inject %-str(longest). So it there is still a concatenation :(","commit_id":"1146e65abd3f472832e29dc198b5cfc94d8ceee6"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"6eb95d8b253c342f93c5e956637f0775db22066a","unresolved":false,"context_lines":[{"line_number":2929,"context_line":"        topic \u003d \u0027 \u0027.join(words[1:])"},{"line_number":2930,"context_line":"        helps \u003d self._getInlineHelps()"},{"line_number":2931,"context_line":""},{"line_number":2932,"context_line":"        if topic \u003d\u003d \u0027help\u0027:"},{"line_number":2933,"context_line":"            helps \u003d {\u0027help\u0027:"},{"line_number":2934,"context_line":"                     \u0027returns inline help of all commands\u0027}"},{"line_number":2935,"context_line":"        elif topic in helps:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da85f559_9dcd4f87","line":2932,"updated":"2015-11-11 10:51:32.000000000","message":"The point of taking a topic, in my opinion, would be to show a more verbose message.\n\nFor example, just doing `help` I would expect the list you\u0027ve given with \"cancel job : cancel a job that has been queued\". However, doing `help cancel` I would expect it to explain to me that \"job\" means the job name to cancel.\n\nThis could be done later though, so not -1\u0027ing for this","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"},{"author":{"_account_id":2475,"name":"Antoine Musso","email":"hashar@free.fr","username":"hashar"},"change_message_id":"7bf99e0fb941be6a1c691f54f95a27f0dbebcb2d","unresolved":false,"context_lines":[{"line_number":2929,"context_line":"        topic \u003d \u0027 \u0027.join(words[1:])"},{"line_number":2930,"context_line":"        helps \u003d self._getInlineHelps()"},{"line_number":2931,"context_line":""},{"line_number":2932,"context_line":"        if topic \u003d\u003d \u0027help\u0027:"},{"line_number":2933,"context_line":"            helps \u003d {\u0027help\u0027:"},{"line_number":2934,"context_line":"                     \u0027returns inline help of all commands\u0027}"},{"line_number":2935,"context_line":"        elif topic in helps:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_1d710e0e","line":2932,"in_reply_to":"da85f559_9dcd4f87","updated":"2020-01-20 21:44:56.000000000","message":"Note the actual command is literally \"cancel job\", so one has to do:\n\n cancel job XXXXX\n\nMaybe I can later introduce a more verbose help for each of the commands.  The primary intent was just to easily list available commands.","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"6eb95d8b253c342f93c5e956637f0775db22066a","unresolved":false,"context_lines":[{"line_number":2944,"context_line":"            if not inspect.isclass(obj):"},{"line_number":2945,"context_line":"                continue"},{"line_number":2946,"context_line":"            if issubclass(obj, sys.modules[__name__].AdminRequest):"},{"line_number":2947,"context_line":"                cmd \u003d obj.__dict__.get(\u0027command\u0027)"},{"line_number":2948,"context_line":"                if cmd is not None:"},{"line_number":2949,"context_line":"                    helps[cmd] \u003d (obj.__dict__.get(\u0027inline_help\u0027)"},{"line_number":2950,"context_line":"                                  or \u0027undocumented\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da85f559_bd55b3c2","line":2947,"updated":"2015-11-11 10:51:32.000000000","message":"getattr would be a better use here","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"},{"author":{"_account_id":2475,"name":"Antoine Musso","email":"hashar@free.fr","username":"hashar"},"change_message_id":"7bf99e0fb941be6a1c691f54f95a27f0dbebcb2d","unresolved":false,"context_lines":[{"line_number":2944,"context_line":"            if not inspect.isclass(obj):"},{"line_number":2945,"context_line":"                continue"},{"line_number":2946,"context_line":"            if issubclass(obj, sys.modules[__name__].AdminRequest):"},{"line_number":2947,"context_line":"                cmd \u003d obj.__dict__.get(\u0027command\u0027)"},{"line_number":2948,"context_line":"                if cmd is not None:"},{"line_number":2949,"context_line":"                    helps[cmd] \u003d (obj.__dict__.get(\u0027inline_help\u0027)"},{"line_number":2950,"context_line":"                                  or \u0027undocumented\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_3d6dea66","line":2947,"in_reply_to":"da85f559_bd55b3c2","updated":"2020-01-20 21:44:56.000000000","message":"Replaced with:\n\n cmd \u003d getattr(obj, \u0027command\u0027, None)","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"6eb95d8b253c342f93c5e956637f0775db22066a","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"            if issubclass(obj, sys.modules[__name__].AdminRequest):"},{"line_number":2947,"context_line":"                cmd \u003d obj.__dict__.get(\u0027command\u0027)"},{"line_number":2948,"context_line":"                if cmd is not None:"},{"line_number":2949,"context_line":"                    helps[cmd] \u003d (obj.__dict__.get(\u0027inline_help\u0027)"},{"line_number":2950,"context_line":"                                  or \u0027undocumented\u0027)"},{"line_number":2951,"context_line":"        return helps"},{"line_number":2952,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da85f559_7d742b67","line":2949,"updated":"2015-11-11 10:51:32.000000000","message":"and also here. You can also supply a default with getattr that you could set to \u0027undocumented\u0027\n\nhttps://docs.python.org/2/library/functions.html#getattr","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"},{"author":{"_account_id":2475,"name":"Antoine Musso","email":"hashar@free.fr","username":"hashar"},"change_message_id":"7bf99e0fb941be6a1c691f54f95a27f0dbebcb2d","unresolved":false,"context_lines":[{"line_number":2946,"context_line":"            if issubclass(obj, sys.modules[__name__].AdminRequest):"},{"line_number":2947,"context_line":"                cmd \u003d obj.__dict__.get(\u0027command\u0027)"},{"line_number":2948,"context_line":"                if cmd is not None:"},{"line_number":2949,"context_line":"                    helps[cmd] \u003d (obj.__dict__.get(\u0027inline_help\u0027)"},{"line_number":2950,"context_line":"                                  or \u0027undocumented\u0027)"},{"line_number":2951,"context_line":"        return helps"},{"line_number":2952,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_7d984266","line":2949,"in_reply_to":"da85f559_7d742b67","updated":"2020-01-20 21:44:56.000000000","message":"Years later: thank you! :)","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"}],"gear/tests/test_functional.py":[{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"6eb95d8b253c342f93c5e956637f0775db22066a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        conn.sendAdminRequest(help_req)"},{"line_number":154,"context_line":"        self.assertEqual(b\u0027help: returns inline help of all commands\\n.\\n\u0027,"},{"line_number":155,"context_line":"                         help_req.response,"},{"line_number":156,"context_line":"                         \u0027\"help help\" output is different from menu entry\u0027)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"def load_tests(loader, in_tests, pattern):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da85f559_fd89fb26","line":156,"updated":"2015-11-11 10:51:32.000000000","message":"because `help help` is a special case, it\u0027d be good to check one of the other commands.","commit_id":"a14d09f8d243eacf82c1ebc5b7fc76df1057b6be"}]}
