From d72691ee49184905f1e31530868bbe9c5efebcd7 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 12 Mar 2018 07:38:56 +0100 Subject: [PATCH] Simplify ListOrValue configtype --- qutebrowser/config/configtypes.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py index 14855bf03..86b72a9ff 100644 --- a/qutebrowser/config/configtypes.py +++ b/qutebrowser/config/configtypes.py @@ -506,6 +506,16 @@ class ListOrValue(BaseType): self.listtype = List(valtype, none_ok=none_ok, *args, **kwargs) self.valtype = valtype + def _val_and_type(self, value): + """Get the value and type to use for to_str/to_doc/from_str.""" + if isinstance(value, list): + if len(value) == 1: + return value[0], self.valtype + else: + return value, self.listtype + else: + return value, self.valtype + def get_name(self): return self.listtype.get_name() + ', or ' + self.valtype.get_name() @@ -533,25 +543,15 @@ class ListOrValue(BaseType): if value is None: return '' - if isinstance(value, list): - if len(value) == 1: - return self.valtype.to_str(value[0]) - else: - return self.listtype.to_str(value) - else: - return self.valtype.to_str(value) + val, typ = self._val_and_type(value) + return typ.to_str(val) def to_doc(self, value, indent=0): if value is None: return 'empty' - if isinstance(value, list): - if len(value) == 1: - return self.valtype.to_doc(value[0], indent) - else: - return self.listtype.to_doc(value, indent) - else: - return self.valtype.to_doc(value, indent) + val, typ = self._val_and_type(value) + return typ.to_doc(val) class FlagList(List):