From 1e941925c2729690a6c3d3a5acb4bc86cf883ed0 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Sun, 10 Jan 2016 22:10:42 -0500 Subject: [PATCH] [commands] Add Command.clean_params to have nicer params. These are params without the self/context parameters. Useful for showing signature information in the help command without being bogged down by knowing if the self/context parameters are there. Hence it makes it easier to iterate knowing that you shouldn't care about those two parameters. --- discord/ext/commands/core.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/discord/ext/commands/core.py b/discord/ext/commands/core.py index 8503dcaf9..63f57242d 100644 --- a/discord/ext/commands/core.py +++ b/discord/ext/commands/core.py @@ -209,6 +209,24 @@ class Command: except Exception: raise BadArgument('Converting to "{0.__name__}" failed.'.format(converter)) + @property + def clean_params(self): + """Retrieves the parameter OrderedDict without the context or self parameters. + + Useful for inspecting signature. + """ + result = self.params.copy() + if self.instance is not None: + # first parameter is self + result.popitem(last=False) + + if self.pass_context: + # first/second parameter is context + result.popitem(last=False) + + return result + + def _parse_arguments(self, ctx): try: ctx.args = [] if self.instance is None else [self.instance]