]> Frank Brehm's Git Trees - pixelpark/ldap-migration.git/commitdiff
Adding method __copy__() to CaseInsensitiveDict
authorFrank Brehm <frank.brehm@pixelpark.com>
Mon, 16 Nov 2020 13:41:00 +0000 (14:41 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Mon, 16 Nov 2020 13:41:00 +0000 (14:41 +0100)
lib/ldap_migration/idict.py

index e162e376203ace94d4e9e7a7199f2599fa09de7a..114c1d0f127487bfcfa42e4a38800929c35d7f1b 100644 (file)
@@ -24,7 +24,7 @@ from fb_tools.common import pp
 from fb_tools.errors import FbError
 from fb_tools.obj import FbBaseObject
 
-__version__ = '0.1.1'
+__version__ = '0.1.2'
 
 LOG = logging.getLogger(__name__)
 
@@ -312,13 +312,22 @@ class CaseInsensitiveDict(MutableMapping):
         res = {}
         for key in self._map.keys():
             value = self._map[key]
-            if isinstance(value, FbBaseObject):
+            if isinstance(value, [FbBaseObject, CaseInsensitiveDict]):
                 res[key] = value.as_dict(short=short)
             else:
                 res[key] = copy.copy(value)
 
         return res
 
+    # -------------------------------------------------------------------------
+    def __copy__(self):
+
+        new_dict = self.__class__()
+        for key in self._map.keys():
+            new_dict[key] = copy.copy(self._map[key])
+
+        return new_dict
+
     # -------------------------------------------------------------------------
     def set_key(self, key, *args):