From 753466ab0614d33c031c7cd556fd7418ab93ba54 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 27 Aug 2009 19:57:49 -0600 Subject: [PATCH] Fix various regression in 0.6.9 caused by the new conversion debug framework --- src/calibre/customize/builtins.py | 5 +++-- src/calibre/ebooks/conversion/plumber.py | 5 ++++- src/calibre/ebooks/mobi/input.py | 2 +- src/calibre/ebooks/txt/input.py | 6 +++--- src/calibre/gui2/convert/gui_conversion.py | 6 ++++-- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/calibre/customize/builtins.py b/src/calibre/customize/builtins.py index 3493ace26a..a8f68e3073 100644 --- a/src/calibre/customize/builtins.py +++ b/src/calibre/customize/builtins.py @@ -27,12 +27,13 @@ every time you add an HTML file to the library.\ from calibre.ebooks.epub import initialize_container with TemporaryDirectory('_plugin_html2zip') as tdir: - recs =[('debug_input', tdir, OptionRecommendation.HIGH)] + recs =[('debug_pipeline', tdir, OptionRecommendation.HIGH)] if self.site_customization and self.site_customization.strip(): recs.append(['input_encoding', self.site_customization.strip(), OptionRecommendation.HIGH]) - gui_convert(htmlfile, tdir, recs) + gui_convert(htmlfile, tdir, recs, abort_after_input_dump=True) of = self.temporary_file('_plugin_html2zip.zip') + tdir = os.path.join(tdir, 'input') opf = glob.glob(os.path.join(tdir, '*.opf'))[0] ncx = glob.glob(os.path.join(tdir, '*.ncx')) if ncx: diff --git a/src/calibre/ebooks/conversion/plumber.py b/src/calibre/ebooks/conversion/plumber.py index fcbc6ce395..4fa33869e2 100644 --- a/src/calibre/ebooks/conversion/plumber.py +++ b/src/calibre/ebooks/conversion/plumber.py @@ -68,7 +68,7 @@ class Plumber(object): ] def __init__(self, input, output, log, report_progress=DummyReporter(), - dummy=False, merge_plugin_recs=True): + dummy=False, merge_plugin_recs=True, abort_after_input_dump=False): ''' :param input: Path to input file. :param output: Path to output file/directory @@ -78,6 +78,7 @@ class Plumber(object): self.output = os.path.abspath(output) self.log = log self.ui_reporter = report_progress + self.abort_after_input_dump = abort_after_input_dump # Initialize the conversion options that are independent of input and # output formats. The input and output plugins can still disable these @@ -716,6 +717,8 @@ OptionRecommendation(name='language', accelerators, tdir) if self.opts.debug_pipeline is not None: self.dump_input(self.oeb, tdir) + if self.abort_after_input_dump: + return if self.input_fmt == 'recipe': self.opts_to_mi(self.user_metadata) if not hasattr(self.oeb, 'manifest'): diff --git a/src/calibre/ebooks/mobi/input.py b/src/calibre/ebooks/mobi/input.py index 97d94a0e33..bc9409b852 100644 --- a/src/calibre/ebooks/mobi/input.py +++ b/src/calibre/ebooks/mobi/input.py @@ -17,7 +17,7 @@ class MOBIInput(InputFormatPlugin): from calibre.ebooks.mobi.reader import MobiReader from lxml import html mr = MobiReader(stream, log, options.input_encoding, - options.debug_input) + options.debug_pipeline) parse_cache = {} mr.extract_content('.', parse_cache) raw = parse_cache.pop('calibre_raw_mobi_markup', False) diff --git a/src/calibre/ebooks/txt/input.py b/src/calibre/ebooks/txt/input.py index 75dd516360..5d84a1bde1 100644 --- a/src/calibre/ebooks/txt/input.py +++ b/src/calibre/ebooks/txt/input.py @@ -50,10 +50,10 @@ class TXTInput(InputFormatPlugin): htmlfile.write(html.encode('utf-8')) htmlfile.close() cwd = os.getcwdu() - odi = options.debug_input - options.debug_input = None + odi = options.debug_pipeline + options.debug_pipeline = None oeb = html_input(open(htmlfile.name, 'rb'), options, 'html', log, {}, cwd) - options.debug_input = odi + options.debug_pipeline = odi os.remove(htmlfile.name) return oeb diff --git a/src/calibre/gui2/convert/gui_conversion.py b/src/calibre/gui2/convert/gui_conversion.py index f8da2aa824..06ade752d1 100644 --- a/src/calibre/gui2/convert/gui_conversion.py +++ b/src/calibre/gui2/convert/gui_conversion.py @@ -8,10 +8,12 @@ from calibre.ebooks.conversion.plumber import Plumber, DummyReporter from calibre.utils.logging import Log from calibre.customize.conversion import OptionRecommendation -def gui_convert(input, output, recommendations, notification=DummyReporter()): +def gui_convert(input, output, recommendations, notification=DummyReporter(), + abort_after_input_dump=False): recommendations = list(recommendations) recommendations.append(('verbose', 2, OptionRecommendation.HIGH)) - plumber = Plumber(input, output, Log(), report_progress=notification) + plumber = Plumber(input, output, Log(), report_progress=notification, + abort_after_input_dump=abort_after_input_dump) plumber.merge_ui_recommendations(recommendations) plumber.run()