def _register(command, func, kwargs={}):
"""Register func as a handler for the given command."""
pattern = Pattern(command)
sig = inspect.signature(func)
func_argnames = set(sig.parameters)
when_argnames = set(pattern.argnames) | set(kwargs.keys())
if func_argnames != when_argnames:
raise InvalidCommand(
'The function %s%s has the wrong signature for @when(%r)' % (
func.__name__, sig, command
) + '\n\nThe function arguments should be (%s)' % (
', '.join(pattern.argnames + list(kwargs.keys()))
)
)
commands.append((pattern, func, kwargs))
评论列表
文章目录