From b391defeb6d0a6d5fa455397391bc3eed60129af Mon Sep 17 00:00:00 2001 From: Alexis Metaireau Date: Mon, 8 Nov 2010 00:15:34 +0000 Subject: [PATCH] Fix a bug with the optional dependency to rst2pdf. --- pelican/processors.py | 18 ++++++++++-------- setup.py | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/pelican/processors.py b/pelican/processors.py index 323be16d..110aaa01 100644 --- a/pelican/processors.py +++ b/pelican/processors.py @@ -1,8 +1,6 @@ from operator import attrgetter import os -from rst2pdf.createpdf import RstToPdf - from pelican.utils import update_dict, copytree from pelican.contents import Article, Page, is_valid_content from pelican.readers import read_file @@ -136,10 +134,16 @@ class StaticProcessor(Processor): class PdfProcessor(Processor): """Generate PDFs on the output dir, for all articles and pages coming from rst""" + def __init__(self): + try: + from rst2pdf.createpdf import RstToPdf + self.pdfcreator = RstToPdf(breakside=0, stylesheets=['twelvepoint']) + except ImportError: + raise Exception("unable to find rst2pdf") - def _create_pdf(self, creator, obj, output_path): + def _create_pdf(self, obj, output_path): if obj.filename.endswith(".rst"): - creator.createPdf(text=open(obj.filename).read(), + self.pdfcreator.createPdf(text=open(obj.filename).read(), output=os.path.join(output_path, "%s.pdf" % obj.slug)) def process(self, context, generator): @@ -149,10 +153,8 @@ class PdfProcessor(Processor): except OSError: pass - pdfcreator = RstToPdf(breakside=0, stylesheets=['twelvepoint']) - for article in context['articles']: - self._create_pdf(pdfcreator, article, pdf_path) + self._create_pdf(article, pdf_path) for page in context['pages']: - self._create_pdf(pdfcreator, page, pdf_path) + self._create_pdf(page, pdf_path) diff --git a/setup.py b/setup.py index b3acdb30..0faaa84a 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ if sys.version_info < (2,7): setup( name = "pelican", - version = '2.4.4', + version = '2.4.5', url = 'http://alexis.notmyidea.org/pelican/', author = 'Alexis Metaireau', author_email = 'alexis@notmyidea.org',