Source code for kibitzr.checker

import logging

from .fetcher import fetcher_factory
from .notifier import notify_factory
from .transformer import transform_factory


logger = logging.getLogger(__name__)


[docs]class Checker: def __init__(self, conf): self.conf = conf self.fetch = fetcher_factory(conf) self.transform = transform_factory(self.conf) self.notify = notify_factory(self.conf)
[docs] @classmethod def create_from_settings(cls, checks, names=None): if names: selected_checks = [ conf for conf in checks if conf['name'] in names ] selected_names = [conf['name'] for conf in selected_checks] if len(selected_checks) < len(checks): logger.info("Filtered list of checks to: %r", ", ".join(sorted(selected_names))) checks = selected_checks if len(selected_names) < len(names): logger.error( "Following check(s) were not found: %r", ", ".join(sorted(set(names).difference(selected_names))) ) return [cls(conf) for conf in checks]
[docs] def check(self): ok, content = self.fetch() ok, report = self.transform(ok, content) self.notify(report=report) return ok, report