# HG changeset patch # User Franz Glasner # Date 1639756591 -3600 # Node ID de776953337b6f7e3eb30459060adeea560a6a0b # Parent ea4b7fac02d680ebd53094323149ff76f82014ed Remove repeated type(obj) calls diff -r ea4b7fac02d6 -r de776953337b configmix/config.py --- a/configmix/config.py Fri Dec 17 16:37:26 2021 +0100 +++ b/configmix/config.py Fri Dec 17 16:56:31 2021 +0100 @@ -630,21 +630,22 @@ def substitute_variables_in_obj(self, obj): """Recursively expand variables in the object tree `obj`.""" - if isinstance(obj, self._TEXTTYPE): + ty = type(obj) + if issubclass(ty, self._TEXTTYPE): # a string - really replace the value return self.expand_variable(obj) - elif isinstance(obj, dict): - newdict = type(obj)() + elif issubclass(ty, dict): + newdict = ty() for k in obj: newdict[k] = self.substitute_variables_in_obj(obj[k]) return newdict - elif isinstance(obj, list): + elif issubclass(ty, list): return [self.substitute_variables_in_obj(i) for i in obj] - elif isinstance(obj, tuple): + elif issubclass(ty, tuple): tmp = [self.substitute_variables_in_obj(i) for i in obj] - return type(obj)(tmp) - elif isinstance(obj, set): - newset = type(obj)() + return ty(tmp) + elif issubclass(ty, set): + newset = ty() for i in obj: newset.add(self.substitute_variables_in_obj(i)) else: