mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
py3: misc fixes for conversion pipeline
This commit is contained in:
parent
c569f857bb
commit
94d5b27128
@ -151,7 +151,7 @@ class HTMLOutput(OutputFormatPlugin):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
with open(path, 'wb') as f:
|
with open(path, 'wb') as f:
|
||||||
f.write(str(item))
|
f.write(item.bytes_representation)
|
||||||
item.unload_data_from_memory(memory=path)
|
item.unload_data_from_memory(memory=path)
|
||||||
|
|
||||||
for item in oeb_book.spine:
|
for item in oeb_book.spine:
|
||||||
|
@ -51,7 +51,7 @@ class OEBOutput(OutputFormatPlugin):
|
|||||||
if key == OPF_MIME:
|
if key == OPF_MIME:
|
||||||
# Needed as I can't get lxml to output opf:role and
|
# Needed as I can't get lxml to output opf:role and
|
||||||
# not output <opf:metadata> as well
|
# not output <opf:metadata> as well
|
||||||
raw = re.sub(r'(<[/]{0,1})opf:', r'\1', raw)
|
raw = re.sub(br'(<[/]{0,1})opf:', br'\1', raw)
|
||||||
with open(href, 'wb') as f:
|
with open(href, 'wb') as f:
|
||||||
f.write(raw)
|
f.write(raw)
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ class OEBOutput(OutputFormatPlugin):
|
|||||||
if not os.path.exists(dir):
|
if not os.path.exists(dir):
|
||||||
os.makedirs(dir)
|
os.makedirs(dir)
|
||||||
with open(path, 'wb') as f:
|
with open(path, 'wb') as f:
|
||||||
f.write(str(item))
|
f.write(item.bytes_representation)
|
||||||
item.unload_data_from_memory(memory=path)
|
item.unload_data_from_memory(memory=path)
|
||||||
|
|
||||||
def workaround_nook_cover_bug(self, root): # {{{
|
def workaround_nook_cover_bug(self, root): # {{{
|
||||||
|
@ -1095,6 +1095,10 @@ class Manifest(object):
|
|||||||
return unicode_type(data.cssText, 'utf-8', 'replace')
|
return unicode_type(data.cssText, 'utf-8', 'replace')
|
||||||
return unicode_type(data)
|
return unicode_type(data)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def bytes_representation(self):
|
||||||
|
return serialize(self.data, self.media_type, pretty_print=self.oeb.pretty_print)
|
||||||
|
|
||||||
if ispy3:
|
if ispy3:
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.unicode_representation
|
return self.unicode_representation
|
||||||
@ -1103,7 +1107,7 @@ class Manifest(object):
|
|||||||
return self.unicode_representation
|
return self.unicode_representation
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return serialize(self.data, self.media_type, pretty_print=self.oeb.pretty_print)
|
return self.bytes_representation
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return self is other
|
return self is other
|
||||||
@ -1111,6 +1115,9 @@ class Manifest(object):
|
|||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
return self is not other
|
return self is not other
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return id(self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def sort_key(self):
|
def sort_key(self):
|
||||||
href = self.href
|
href = self.href
|
||||||
|
@ -9,6 +9,7 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
|
__copyright__ = '2008, Marshall T. Vandegrift <llasram@gmail.com>'
|
||||||
|
|
||||||
import os, re, logging, copy, unicodedata, numbers
|
import os, re, logging, copy, unicodedata, numbers
|
||||||
|
from operator import itemgetter
|
||||||
from weakref import WeakKeyDictionary
|
from weakref import WeakKeyDictionary
|
||||||
from xml.dom import SyntaxErr as CSSSyntaxError
|
from xml.dom import SyntaxErr as CSSSyntaxError
|
||||||
from css_parser.css import (CSSStyleRule, CSSPageRule, CSSFontFaceRule,
|
from css_parser.css import (CSSStyleRule, CSSPageRule, CSSFontFaceRule,
|
||||||
@ -215,7 +216,7 @@ class Stylizer(object):
|
|||||||
else:
|
else:
|
||||||
rules.extend(self.flatten_rule(rule, href, index, is_user_agent_sheet=sheet_index==0))
|
rules.extend(self.flatten_rule(rule, href, index, is_user_agent_sheet=sheet_index==0))
|
||||||
index = index + 1
|
index = index + 1
|
||||||
rules.sort()
|
rules.sort(key=itemgetter(0)) # sort by specificity
|
||||||
self.rules = rules
|
self.rules = rules
|
||||||
self._styles = {}
|
self._styles = {}
|
||||||
pseudo_pat = re.compile(u':{1,2}(%s)' % ('|'.join(INAPPROPRIATE_PSEUDO_CLASSES)), re.I)
|
pseudo_pat = re.compile(u':{1,2}(%s)' % ('|'.join(INAPPROPRIATE_PSEUDO_CLASSES)), re.I)
|
||||||
|
@ -62,7 +62,7 @@ class OEBWriter(object):
|
|||||||
os.mkdir(path)
|
os.mkdir(path)
|
||||||
output = DirContainer(path, oeb.log)
|
output = DirContainer(path, oeb.log)
|
||||||
for item in oeb.manifest.values():
|
for item in oeb.manifest.values():
|
||||||
output.write(item.href, str(item))
|
output.write(item.href, item.bytes_representation)
|
||||||
|
|
||||||
if version == 1:
|
if version == 1:
|
||||||
metadata = oeb.to_opf1()
|
metadata = oeb.to_opf1()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user