mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-09 05:53:10 +02: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
4 changed files with 8 additions and 3 deletions
|
|
@ -360,7 +360,7 @@ def update(self, booklists, collections_attributes, plugboard):
|
|||
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 @@ def deepcopy(self):
|
|||
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 @@ def _upload_books(self, files, names, on_card=None, metadata=None, plugboards=No
|
|||
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…
Reference in a new issue