works when there are default arguments
This commit is contained in:
parent
ba2f1cf99a
commit
be642f00e9
1 changed files with 6 additions and 6 deletions
|
|
@ -82,15 +82,15 @@ class ConsoleApplication(BaseApplication):
|
||||||
func = getattr(self, matching_commands[0])
|
func = getattr(self, matching_commands[0])
|
||||||
|
|
||||||
_args, varargs, varkw, defaults = getargspec(func)
|
_args, varargs, varkw, defaults = getargspec(func)
|
||||||
nb_args = len(_args) - 1
|
nb_max_args = nb_min_args = len(_args) - 1
|
||||||
if defaults:
|
if defaults:
|
||||||
nb_args -= len(defaults)
|
nb_min_args -= len(defaults)
|
||||||
|
|
||||||
if len(args) < nb_args or len(args) > nb_args and not varargs:
|
if len(args) < nb_min_args or len(args) > nb_max_args and not varargs:
|
||||||
if varargs:
|
if varargs or default:
|
||||||
sys.stderr.write("Command '%s' takes at least %d arguments.\n" % (command, nb_args))
|
sys.stderr.write("Command '%s' takes at least %d arguments.\n" % (command, nb_min_args))
|
||||||
else:
|
else:
|
||||||
sys.stderr.write("Command '%s' takes %d arguments.\n" % (command, nb_args))
|
sys.stderr.write("Command '%s' takes %d arguments.\n" % (command, nb_min_args))
|
||||||
return
|
return
|
||||||
return func(*args)
|
return func(*args)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue