From 38c22e83b6bfe7fdcd4f8987063cd240d5655539 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 3 Jun 2013 15:29:54 -0400 Subject: [PATCH] readers: Ensure the reader class is enabled before instantiating Otherwise the MarkdownReader fails with: 'bool' object is not callable if Markdown is not installed. Reported-by: Deniz Turgut --- pelican/readers.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pelican/readers.py b/pelican/readers.py index 3e00b430..bd9f5914 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -361,15 +361,17 @@ def read_file(base_path, path, content_class=Page, fmt=None, if settings is None: settings = {} - reader = EXTENSIONS[fmt](settings) + reader_class = EXTENSIONS[fmt] + if not reader_class.enabled: + raise ValueError('Missing dependencies for {}'.format(fmt)) + + reader = reader_class(settings) + settings_key = '%s_EXTENSIONS' % fmt.upper() if settings and settings_key in settings: reader.extensions = settings[settings_key] - if not reader.enabled: - raise ValueError("Missing dependencies for %s" % fmt) - metadata = default_metadata( settings=settings, process=reader.process_metadata) metadata.update(path_metadata(