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:
|
if record is None:
|
||||||
record = self.create_text_record(root, i, book.lpath)
|
record = self.create_text_record(root, i, book.lpath)
|
||||||
if plugboard is not None:
|
if plugboard is not None:
|
||||||
newmi = book.deepcopy()
|
newmi = book.deepcopy_metadata()
|
||||||
newmi.template_to_attribute(book, plugboard)
|
newmi.template_to_attribute(book, plugboard)
|
||||||
else:
|
else:
|
||||||
newmi = book
|
newmi = book
|
||||||
|
@ -148,6 +148,11 @@ class Metadata(object):
|
|||||||
object.__setattr__(m, '_data', copy.deepcopy(object.__getattribute__(self, '_data')))
|
object.__setattr__(m, '_data', copy.deepcopy(object.__getattribute__(self, '_data')))
|
||||||
return m
|
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):
|
def get(self, field, default=None):
|
||||||
try:
|
try:
|
||||||
return self.__getattribute__(field)
|
return self.__getattribute__(field)
|
||||||
|
@ -357,7 +357,7 @@ class DeviceManager(Thread): # {{{
|
|||||||
f, file=sys.__stdout__)
|
f, file=sys.__stdout__)
|
||||||
with open(f, 'r+b') as stream:
|
with open(f, 'r+b') as stream:
|
||||||
if cpb:
|
if cpb:
|
||||||
newmi = mi.deepcopy()
|
newmi = mi.deepcopy_metadata()
|
||||||
newmi.template_to_attribute(mi, cpb)
|
newmi.template_to_attribute(mi, cpb)
|
||||||
else:
|
else:
|
||||||
newmi = mi
|
newmi = mi
|
||||||
|
@ -281,7 +281,7 @@ def save_book_to_disk(id, db, root, opts, length):
|
|||||||
stream.seek(0)
|
stream.seek(0)
|
||||||
try:
|
try:
|
||||||
if cpb:
|
if cpb:
|
||||||
newmi = mi.deepcopy()
|
newmi = mi.deepcopy_metadata()
|
||||||
newmi.template_to_attribute(mi, cpb)
|
newmi.template_to_attribute(mi, cpb)
|
||||||
else:
|
else:
|
||||||
newmi = mi
|
newmi = mi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user