aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2017-12-12 08:03:09 +1300
committerGitHub <noreply@github.com>2017-12-12 08:03:09 +1300
commit4912920573c71a49670928b19893b965d199f836 (patch)
tree170034aac0b28e93dfa7e6735b873593d5a5a30a /mitmproxy
parent7654ad2d31d294d227e9ed305309c927a2ec0b94 (diff)
parentb09c28d8a6fcd2af4a43b968b800d44c5a8c836e (diff)
downloadmitmproxy-4912920573c71a49670928b19893b965d199f836.tar.gz
mitmproxy-4912920573c71a49670928b19893b965d199f836.tar.bz2
mitmproxy-4912920573c71a49670928b19893b965d199f836.zip
Merge branch 'master' into browser-win
Diffstat (limited to 'mitmproxy')
-rw-r--r--mitmproxy/command.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/mitmproxy/command.py b/mitmproxy/command.py
index c9776bc3..eae3d80c 100644
--- a/mitmproxy/command.py
+++ b/mitmproxy/command.py
@@ -190,10 +190,19 @@ def parsearg(manager: CommandManager, spec: str, argtype: type) -> typing.Any:
raise exceptions.CommandError("Unsupported argument type: %s" % argtype)
+def verify_arg_signature(f: typing.Callable, args: list, kwargs: dict) -> None:
+ sig = inspect.signature(f)
+ try:
+ sig.bind(*args, **kwargs)
+ except TypeError as v:
+ raise exceptions.CommandError("Argument mismatch: %s" % v.args[0])
+
+
def command(path):
def decorator(function):
@functools.wraps(function)
def wrapper(*args, **kwargs):
+ verify_arg_signature(function, args, kwargs)
return function(*args, **kwargs)
wrapper.__dict__["command_path"] = path
return wrapper