[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.
This commit is contained in:
Rapptz 2016-01-10 22:10:42 -05:00
parent a706c47f34
commit 1e941925c2

View File

@ -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]