From a5cadce60355a8afc49c0bd37375fff78db84d3e Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sat, 27 Nov 2010 11:30:52 +0000 Subject: [PATCH] Fix #7459: Bug/error when copying and deleting from one library to another. Problem arose because field_metadata modified a class_level (static) attribute. --- src/calibre/library/field_metadata.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/calibre/library/field_metadata.py b/src/calibre/library/field_metadata.py index dbc871026e..afc63cb692 100644 --- a/src/calibre/library/field_metadata.py +++ b/src/calibre/library/field_metadata.py @@ -3,6 +3,7 @@ Created on 25 May 2010 @author: charles ''' +import copy from calibre.utils.ordered_dict import OrderedDict from calibre.utils.config import tweaks @@ -86,7 +87,7 @@ class FieldMetadata(dict): # Builtin metadata {{{ - _field_metadata = [ + _field_metadata_prototype = [ ('authors', {'table':'authors', 'column':'name', 'link_column':'author', @@ -322,6 +323,7 @@ class FieldMetadata(dict): ] def __init__(self): + self._field_metadata = copy.deepcopy(self._field_metadata_prototype) self._tb_cats = OrderedDict() self._search_term_map = {} self.custom_label_to_key_map = {}