diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index 8caebc5be2..ff03260f2b 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -318,7 +318,7 @@ def extract(path, dir): raise Exception('Unknown archive type') extractor(path, dir) -def get_proxies(self): +def get_proxies(): proxies = {} if iswindows: try: diff --git a/src/calibre/ebooks/lrf/comic/convert_from.py b/src/calibre/ebooks/lrf/comic/convert_from.py index 847b588aef..a8bc6cbb15 100755 --- a/src/calibre/ebooks/lrf/comic/convert_from.py +++ b/src/calibre/ebooks/lrf/comic/convert_from.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +from __future__ import with_statement __license__ = 'GPL v3' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __docformat__ = 'restructuredtext en' @@ -31,12 +31,13 @@ try: MagickQuantizeImage, RGBColorspace, \ MagickWriteImage, DestroyPixelWand, \ DestroyMagickWand, CloneMagickWand, \ - MagickThumbnailImage, MagickCropImage, initialize, finalize + MagickThumbnailImage, MagickCropImage, ImageMagick _imagemagick_loaded = True except: _imagemagick_loaded = False PROFILES = { + # Name : (width, height) in pixels 'prs500':(584, 754), } @@ -205,8 +206,7 @@ def process_pages(pages, opts, update): ''' if not _imagemagick_loaded: raise RuntimeError('Failed to load ImageMagick') - initialize() - try: + with ImageMagick(): tdir = PersistentTemporaryDirectory('_comic2lrf_pp') processed_pages = [PageProcessor(path, tdir, opts, i) for i, path in enumerate(pages)] tp = ThreadPool(detect_ncpus()) @@ -223,9 +223,7 @@ def process_pages(pages, opts, update): else: ans += pp return ans, failures, tdir - finally: - finalize() - + def config(defaults=None): desc = _('Options to control the conversion of comics (CBR, CBZ) files into ebooks') if defaults is None: diff --git a/src/calibre/utils/PythonMagickWand.py b/src/calibre/utils/PythonMagickWand.py index e3e421fe55..301557c369 100644 --- a/src/calibre/utils/PythonMagickWand.py +++ b/src/calibre/utils/PythonMagickWand.py @@ -104,6 +104,14 @@ def finalize(): _magick.MagickWandTerminus() _initialized = False +class ImageMagick(object): + + def __enter__(self): + initialize() + + def __exit__(self, *args): + finalize() + class MetricType(ctypes.c_int): pass UndefinedMetric = MetricType(0) diff --git a/src/calibre/web/feeds/main.py b/src/calibre/web/feeds/main.py index 7d2547360d..14299abecd 100644 --- a/src/calibre/web/feeds/main.py +++ b/src/calibre/web/feeds/main.py @@ -67,7 +67,7 @@ def run_recipe(opts, recipe_arg, parser, notification=None, handler=None): if notification is None: from calibre.utils.terminfo import TerminalController, ProgressBar term = TerminalController(sys.stdout) - pb = ProgressBar(term, _('Fetching feeds...'), no_progress_bar=opts.progress_bar) + pb = ProgressBar(term, _('Fetching feeds...'), no_progress_bar=not opts.progress_bar) notification = pb.update recipe, is_profile = None, False