summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichele Simionato <michele.simionato@gmail.com>2015-07-20 12:27:10 +0200
committerMichele Simionato <michele.simionato@gmail.com>2015-07-20 12:27:10 +0200
commit34fc2466268ab2ba37d020335d08e7550fe8eecd (patch)
tree891fd89072e8c77036ad3bfae4824ac184bf40ba /src
parenta740e66c4d3a14e813788a6cdd1ed866140eb5d4 (diff)
downloadpython-decorator-git-34fc2466268ab2ba37d020335d08e7550fe8eecd.tar.gz
Added check on the dispatch arguments
Diffstat (limited to 'src')
-rw-r--r--src/decorator.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/decorator.py b/src/decorator.py
index 28ec16a..e6d456d 100644
--- a/src/decorator.py
+++ b/src/decorator.py
@@ -286,6 +286,10 @@ def dispatch_on(*dispatch_args):
dispatch_str = '(%s,)' % ', '.join(dispatch_args)
def generic(func):
+ # first check the dispatch arguments
+ argset = set(inspect.getargspec(func).args)
+ if not set(dispatch_args) <= argset:
+ raise NameError('Unknown dispatch arguments %s' % dispatch_str)
typemap = {(object,) * len(dispatch_args): func}