return u'Error in command "%s".' % u' '.join(self.command)
class WrongArgumentsError(CommandError):
- r"""WrongArgumentsError() -> WrongArgumentsError instance.
+ r"""WrongArgumentsError(handler, message) -> WrongArgumentsError instance.
This exception is raised when an empty command string is received.
"""
- def __init__(self, message):
+ def __init__(self, handler, message):
r"Initialize the object, see class documentation for more info."
+ self.handler = handler
self.message = message
def __unicode__(self):
- return self.message
+ return u'Command "%s" %s.' % (self.handler.__name__, self.message)
class CommandNotSpecifiedError(CommandError):
r"""CommandNotSpecifiedError() -> CommandNotSpecifiedError instance.
d = dict()
for a in dir(self):
h = getattr(self, a)
+ if a == 'parent': continue # Skip parents in SubHandlers
if is_handler(h) or isinstance(h, Handler):
d[a] = h.handler_help
return d
# A command was specified
+ if command == 'parent': # Skip parents in SubHandlers
+ raise HelpNotFoundError(command)
if not hasattr(self, command.encode('utf-8')):
raise HelpNotFoundError(command)
handler = getattr(self, command.encode('utf-8'))
- if not is_handler(handler) and not hasattr(handler):
+ if not is_handler(handler) and not hasattr(handler, 'handler_help'):
raise HelpNotFoundError(command)
return handler.handler_help
raise CommandIsAHandlerError(command)
raise CommandNotFoundError(command)
command.append(route[0])
+ if route[0] == 'parent':
+ raise CommandNotFoundError(command)
if not hasattr(handler, route[0].encode('utf-8')):
if isinstance(handler, Handler) and len(command) > 1:
raise CommandNotInHandlerError(command)
pl = ''
if n_ok > 1:
pl = 's'
- raise WrongArgumentsError(
- u'Command "%s" takes %s %s argument%s, %s given.'
- % (handler.__name__, quant, n_ok, pl, n_bad))
+ raise WrongArgumentsError(handler, u'takes %s %s argument%s, '
+ '%s given' % (quant, n_ok, pl, n_bad))
m = kw_re.match(unicode(e))
if m:
(kw,) = m.groups()
- raise WrongArgumentsError(
- u'Command "%s" got an unexpected keyword argument %s.'
- % (handler.__name__, kw))
+ raise WrongArgumentsError(handler,
+ u'got an unexpected keyword argument %s' % kw)
raise