From e53e237818afa00a05807289a838b6437b7123fb Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Mon, 7 Feb 2005 01:04:33 +0000 Subject: [PATCH] Better error logging for when commands.wrap fails to provide the right number of arguments. --- src/commands.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/commands.py b/src/commands.py index 2da9ba308..c242fcfb5 100644 --- a/src/commands.py +++ b/src/commands.py @@ -34,6 +34,7 @@ Includes wrappers for commands. import time import types import getopt +import inspect import threading import supybot.log as log @@ -870,7 +871,14 @@ def wrap(f, specList=[], **kw): def newf(self, irc, msg, args, **kwargs): state = spec(irc, msg, args, stateAttrs={'cb': self, 'log': self.log}) self.log.debug('State before call: %s' % state) - f(self, irc, msg, args, *state.args, **state.kwargs) + try: + f(self, irc, msg, args, *state.args, **state.kwargs) + except TypeError: + self.log.error('Spec: %s', specList) + self.log.error('Received args: %s', args) + funcArgs = inspect.getargs(f.func_code)[0][len(self.commandArgs):] + self.log.error('Extra args: %s', funcArgs) + raise return utils.gen.changeFunctionName(newf, f.func_name, f.__doc__)