From c875c27e83941ecd2bcd401efe07b35421de704c Mon Sep 17 00:00:00 2001 From: Simon Conseil Date: Wed, 7 Aug 2013 22:43:08 +0200 Subject: [PATCH] Don't warn too loud about missing dependencies. - Show the messages only once for each Reader - Decrease the logging level --- pelican/readers.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pelican/readers.py b/pelican/readers.py index 97a184d0..3f01a72c 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -372,15 +372,28 @@ class Readers(object): 'readers_init' signall for plugins. """ + + # used to warn about missing dependencies only once, at the first + # instanciation of a Readers object. + warn_missing_deps = True + def __init__(self, settings=None): self.settings = settings or {} self.readers = {} self.reader_classes = {} for cls in [BaseReader] + BaseReader.__subclasses__(): + if not cls.enabled: + if self.__class__.warn_missing_deps: + logger.debug('Missing dependencies for {}' + .format(', '.join(cls.file_extensions))) + continue + for ext in cls.file_extensions: self.reader_classes[ext] = cls + self.__class__.warn_missing_deps = False + if self.settings['READERS']: self.reader_classes.update(self.settings['READERS']) @@ -390,10 +403,6 @@ class Readers(object): if not reader_class: continue - if not reader_class.enabled: - logger.warning('Missing dependencies for {}'.format(fmt)) - continue - self.readers[fmt] = reader_class(self.settings) settings_key = '%s_EXTENSIONS' % fmt.upper()