aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sam W <[email protected]>2018-02-13 17:39:38 +0000
committerGravatar Sam W <[email protected]>2018-02-13 17:39:38 +0000
commit3b54d65f33fa9be3f12c97a2d5f9e1579d6bf439 (patch)
tree319969407e4f2797ca6e2ed7badeea42ef94ddf8
parentchanged the way command names are shown (due to the change in command names f... (diff)
added type hinting, and rearranged some code for readability
Diffstat (limited to '')
-rw-r--r--bot/formatter.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/bot/formatter.py b/bot/formatter.py
index d3dd88349..503ae331d 100644
--- a/bot/formatter.py
+++ b/bot/formatter.py
@@ -18,7 +18,7 @@ class Formatter(HelpFormatter):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- def _add_subcommands_to_page(self, max_width, commands):
+ def _add_subcommands_to_page(self, max_width: int, commands: list):
"""
basically the same function from d.py but changed:
- to make the helptext appear as a comment
@@ -56,21 +56,24 @@ class Formatter(HelpFormatter):
if isinstance(self.command, Command):
# strip the command of bot. and ()
- stripped_command = self.command.name.replace("()", "")
- # getting args using the handy inspect module
+ stripped_command = self.command.name.replace(HELP_PREFIX, "").replace("()", "")
+
+ # get the args using the handy inspect module
argspec = getfullargspec(self.command.callback)
arguments = formatargspec(*argspec)
args_no_type_hints = ", ".join(argspec[0])
- # remove self from the arguments
+
+ # remove self from the args
arguments = arguments.replace("self, ", "")
args_no_type_hints = args_no_type_hints.replace("self, ", "")
- # first line of help containing the command name and arguments
+
+ # prepare the different sections of the help output, and add them to the paginator
definition = f"async def {stripped_command}{arguments}:"
+ docstring = f" \"\"\"\n {self.command.help}\n \"\"\""
+ invocation = f" await do_{stripped_command}({args_no_type_hints})"
self._paginator.add_line(definition)
- # next few lines containing the help text formatted as a docstring
- self._paginator.add_line(f" \"\"\"\n {self.command.help}\n \"\"\"")
- # last line 'invoking' the command
- self._paginator.add_line(f" await do_{stripped_command}({args_no_type_hints})")
+ self._paginator.add_line(docstring)
+ self._paginator.add_line(invocation)
return self._paginator.pages