mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add a special deepcopy that only copies metadata, not the other random attributes that have been added.
This commit is contained in:
parent
4ae7a3b8c9
commit
7e1e6bd746
@ -360,7 +360,7 @@ class XMLCache(object):
|
||||
if record is None:
|
||||
record = self.create_text_record(root, i, book.lpath)
|
||||
if plugboard is not None:
|
||||
newmi = book.deepcopy()
|
||||
newmi = book.deepcopy_metadata()
|
||||
newmi.template_to_attribute(book, plugboard)
|
||||
else:
|
||||
newmi = book
|
||||
|
@ -148,6 +148,11 @@ class Metadata(object):
|
||||
object.__setattr__(m, '_data', copy.deepcopy(object.__getattribute__(self, '_data')))
|
||||
return m
|
||||
|
||||
def deepcopy_metadata(self):
|
||||
m = Metadata(None)
|
||||
object.__setattr__(m, '_data', copy.deepcopy(object.__getattribute__(self, '_data')))
|
||||
return m
|
||||
|
||||
def get(self, field, default=None):
|
||||
try:
|
||||
return self.__getattribute__(field)
|
||||
|
@ -357,7 +357,7 @@ class DeviceManager(Thread): # {{{
|
||||
f, file=sys.__stdout__)
|
||||
with open(f, 'r+b') as stream:
|
||||
if cpb:
|
||||
newmi = mi.deepcopy()
|
||||
newmi = mi.deepcopy_metadata()
|
||||
newmi.template_to_attribute(mi, cpb)
|
||||
else:
|
||||
newmi = mi
|
||||
|
@ -281,7 +281,7 @@ def save_book_to_disk(id, db, root, opts, length):
|
||||
stream.seek(0)
|
||||
try:
|
||||
if cpb:
|
||||
newmi = mi.deepcopy()
|
||||
newmi = mi.deepcopy_metadata()
|
||||
newmi.template_to_attribute(mi, cpb)
|
||||
else:
|
||||
newmi = mi
|
||||
|
Loading…
x
Reference in New Issue
Block a user