From 5dd27c22e631cf80e54f668f25ca32168ed61e02 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 10 Mar 2009 22:04:49 -0700 Subject: [PATCH] Fix regression with loading custom recipes that use __future__ imports --- src/calibre/web/feeds/recipes/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/web/feeds/recipes/__init__.py b/src/calibre/web/feeds/recipes/__init__.py index 793d5cf45d..94a32a6393 100644 --- a/src/calibre/web/feeds/recipes/__init__.py +++ b/src/calibre/web/feeds/recipes/__init__.py @@ -86,11 +86,15 @@ def compile_recipe(src): match = re.search(r'coding[:=]\s*([-\w.]+)', src[:200]) enc = match.group(1) if match else 'utf-8' src = src.decode(enc) + src = re.sub(r'from __future__.*', '', src) f = open(temp, 'wb') src = 'from %s.web.feeds.news import BasicNewsRecipe, AutomaticNewsRecipe\n'%__appname__ + src src = 'from %s.ebooks.lrf.web.profiles import DefaultProfile, FullContentProfile\n'%__appname__ + src src = '# coding: utf-8\n' + src - f.write(src.replace('from libprs500', 'from calibre').encode('utf-8')) + src = 'from __future__ import with_statement\n' + src + + src = src.replace('from libprs500', 'from calibre').encode('utf-8') + f.write(src) f.close() module = imp.find_module(temp.namebase, [temp.dirname()]) module = imp.load_module(temp.namebase, *module)