aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/optmanager.py
diff options
context:
space:
mode:
Diffstat (limited to 'mitmproxy/optmanager.py')
-rw-r--r--mitmproxy/optmanager.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/mitmproxy/optmanager.py b/mitmproxy/optmanager.py
index e497c3b6..78b358c9 100644
--- a/mitmproxy/optmanager.py
+++ b/mitmproxy/optmanager.py
@@ -244,6 +244,21 @@ class OptManager(metaclass=_DefaultsMeta):
txt = f.read()
self.load(txt)
+ def merge(self, opts):
+ """
+ Merge a dict of options into this object. Options that have None
+ value are ignored. Lists and tuples are appended to the current
+ option value.
+ """
+ toset = {}
+ for k, v in opts.items():
+ if v is not None:
+ if isinstance(v, (list, tuple)):
+ toset[k] = getattr(self, k) + v
+ else:
+ toset[k] = v
+ self.update(**toset)
+
def __repr__(self):
options = pprint.pformat(self._opts, indent=4).strip(" {}")
if "\n" in options: