aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/optmanager.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2018-05-08 14:24:41 +1200
committerAldo Cortesi <aldo@nullcube.com>2018-05-08 14:24:41 +1200
commit717fbaa99076545d11f554187759005dce1aa67b (patch)
treecc437a95786c34200340e43e39c145f0c5ea5d25 /mitmproxy/optmanager.py
parent76a7883c8b7651e7078ba351ea4675bb0bd0f3db (diff)
downloadmitmproxy-717fbaa99076545d11f554187759005dce1aa67b.tar.gz
mitmproxy-717fbaa99076545d11f554187759005dce1aa67b.tar.bz2
mitmproxy-717fbaa99076545d11f554187759005dce1aa67b.zip
optmanager: refactor for coverage and clarity
Diffstat (limited to 'mitmproxy/optmanager.py')
-rw-r--r--mitmproxy/optmanager.py14
1 files changed, 5 insertions, 9 deletions
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py
index 7dc4bf6c..a473e9df 100644
--- a/mitmproxy/optmanager.py
+++ b/mitmproxy/optmanager.py
@@ -298,7 +298,7 @@ class OptManager:
else:
optname, optval = parts[0], parts[1]
if optname in self._options:
- vals[optname] = self.parse_setval(optname, optval)
+ vals[optname] = self.parse_setval(self._options[optname], optval)
else:
unknown[optname] = optval
if defer:
@@ -315,19 +315,15 @@ class OptManager:
update = {}
for optname, optval in self._deferred.items():
if optname in self._options:
- update[optname] = self.parse_setval(optname, optval)
+ update[optname] = self.parse_setval(self._options[optname], optval)
self.update(**update)
for k in update.keys():
del self._deferred[k]
- def parse_setval(self, optname: str, optstr: typing.Optional[str]) -> typing.Any:
+ def parse_setval(self, o: _Option, optstr: typing.Optional[str]) -> typing.Any:
"""
Convert a string to a value appropriate for the option type.
"""
- if optname not in self._options:
- raise exceptions.OptionsError("No such option %s" % optname)
- o = self._options[optname]
-
if o.typespec in (str, typing.Optional[str]):
return optstr
elif o.typespec in (int, typing.Optional[int]):
@@ -337,7 +333,7 @@ class OptManager:
except ValueError:
raise exceptions.OptionsError("Not an integer: %s" % optstr)
elif o.typespec == int:
- raise exceptions.OptionsError("Option is required: %s" % optname)
+ raise exceptions.OptionsError("Option is required: %s" % o.name)
else:
return None
elif o.typespec == bool:
@@ -355,7 +351,7 @@ class OptManager:
if not optstr:
return []
else:
- return getattr(self, optname) + [optstr]
+ return getattr(self, o.name) + [optstr]
raise NotImplementedError("Unsupported option type: %s", o.typespec)
def make_parser(self, parser, optname, metavar=None, short=None):