From b839a2b1036eed447c167df3f0722f8179310bca Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 20 Sep 2013 18:37:42 +0200 Subject: [PATCH] Fix longstanding bug in metadata deepcopy. --- src/calibre/ebooks/metadata/book/base.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/book/base.py b/src/calibre/ebooks/metadata/book/base.py index ab0b9f649a..f5c5d9adaa 100644 --- a/src/calibre/ebooks/metadata/book/base.py +++ b/src/calibre/ebooks/metadata/book/base.py @@ -185,10 +185,11 @@ class Metadata(object): return key in object.__getattribute__(self, '_data') def deepcopy(self): - ''' Do not use this method unless you know what you are doing, if you want to create a simple clone of - this object, use :meth:`deepcopy_metadata` instead. ''' + ''' Do not use this method unless you know what you are doing, if you + want to create a simple clone of this object, use :meth:`deepcopy_metadata` + instead. ''' m = Metadata(None) - m.__dict__ = copy.deepcopy(self.__dict__) + object.__setattr__(m, '__dict__', copy.deepcopy(self.__dict__)) object.__setattr__(m, '_data', copy.deepcopy(object.__getattribute__(self, '_data'))) return m