From f7d59a2cb88fddb121569bba13dfd67df915d8b4 Mon Sep 17 00:00:00 2001 From: Fabio Caccamo Date: Fri, 15 Jul 2022 23:56:04 +0200 Subject: [PATCH] Fixed `deepcopy` with pointer. --- benedict/dicts/base/base_dict.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/benedict/dicts/base/base_dict.py b/benedict/dicts/base/base_dict.py index dfe68af..ce193ef 100644 --- a/benedict/dicts/base/base_dict.py +++ b/benedict/dicts/base/base_dict.py @@ -1,5 +1,7 @@ # -*- coding: utf-8 -*- +from benedict.core import clone as _clone + class BaseDict(dict): @@ -37,6 +39,12 @@ class BaseDict(dict): return key in self._dict return super(BaseDict, self).__contains__(key) + def __deepcopy__(self, memo): + obj = self.__class__() + for key, value in self.items(): + obj[key] = _clone(value, memo=memo) + return obj + def __delitem__(self, key): if self._pointer: del self._dict[key]