From 0d3efeb32e33749012547a823afb8070f9b49195 Mon Sep 17 00:00:00 2001 From: Justin Forest Date: Wed, 2 Jun 2010 21:37:48 +0400 Subject: [PATCH] Let @botcmd override command name. This makes commands named after Python keywords available again. Example usage: @botcmd(name='for') def for_(self, *args): pass --- jabberbot.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jabberbot.py b/jabberbot.py index 75de89f..31405cf 100644 --- a/jabberbot.py +++ b/jabberbot.py @@ -40,9 +40,10 @@ __license__ = 'GPLv3 or later' def botcmd(*args, **kwargs): """Decorator for bot command functions""" - def decorate(func, hidden=False): + def decorate(func, hidden=False, name=None): setattr(func, '_jabberbot_command', True) setattr(func, '_jabberbot_hidden', hidden) + setattr(func, '_jabberbot_command_name', name or func.__name__) return func if len(args): @@ -74,6 +75,7 @@ class JabberBot(object): self.commands = {} for name, value in inspect.getmembers(self): if inspect.ismethod(value) and getattr(value, '_jabberbot_command', False): + name = getattr(value, '_jabberbot_command_name') self.debug('Registered command: %s' % name) self.commands[name] = value -- 2.11.4.GIT