aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/optmanager.py9
-rw-r--r--mitmproxy/utils/typecheck.py12
2 files changed, 13 insertions, 8 deletions
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py
index b67949e0..4a455282 100644
--- a/mitmproxy/optmanager.py
+++ b/mitmproxy/optmanager.py
@@ -425,14 +425,7 @@ def dump_dicts(opts):
options_list = []
for k in sorted(opts.keys()):
o = opts._options[k]
- if o.typespec in (str, int, bool):
- t = o.typespec.__name__
- elif o.typespec == typing.Optional[str]:
- t = 'Union'
- elif o.typespec == typing.Sequence[str]:
- t = 'Sequence'
- else:
- raise NotImplementedError
+ t = typecheck.typespec_to_str(o.typespec)
option = {
'name': k,
'type': t,
diff --git a/mitmproxy/utils/typecheck.py b/mitmproxy/utils/typecheck.py
index a5f27fee..ed58182d 100644
--- a/mitmproxy/utils/typecheck.py
+++ b/mitmproxy/utils/typecheck.py
@@ -98,3 +98,15 @@ def check_option_type(name: str, value: typing.Any, typeinfo: typing.Any) -> Non
return
elif not isinstance(value, typeinfo):
raise e
+
+
+def typespec_to_str(typespec: typing.Any) -> str:
+ if typespec in (str, int, bool):
+ t = typespec.__name__
+ elif typespec == typing.Optional[str]:
+ t = 'Union'
+ elif typespec == typing.Sequence[str]:
+ t = 'Sequence'
+ else:
+ raise NotImplementedError
+ return t