changeset 491:de776953337b

Remove repeated type(obj) calls
author Franz Glasner <f.glasner@feldmann-mg.com>
date Fri, 17 Dec 2021 16:56:31 +0100
parents ea4b7fac02d6
children a9a291927a4b
files configmix/config.py
diffstat 1 files changed, 9 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- 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: