Exemplo n.º 1
0
    def __iter__(self):
        # Get options
        key = self.options.get('key')
        delete = Matcher(*get_words(self.options.get('delete')))

        # Define logger
        name = self.options.get(
            'name', self.transmogrifier.configuration_id + '.' + self.name)
        logger = logging.getLogger(name)

        # Set log level
        level = self.options.get('level', logging.getLevelName(logger.level))
        if level != 'NOTSET':
            level = getattr(logging, level, None) or int(level)
        else:
            level = int(logging.INFO)
        logger.setLevel(level)

        for item in self.previous:
            if logger.isEnabledFor(level) and self.condition(item):
                if key is None:
                    copy = {}
                    for key_ in item.keys():
                        if not delete(key_)[1]:
                            copy[key_] = item[key_]
                    msg = pformat_msg(copy)
                elif key in item:
                    msg = item[key]
                else:
                    msg = '-- Missing key --'
                logger.log(level, msg)
            yield item
Exemplo n.º 2
0
    def __iter__(self):
        logger = logging.getLogger(self.options.get('name', 'transmogrifier'))

        contents = {}
        for item in self.previous:
            if self.condition(item):
                contents[item['_path']] = item
            yield item

        # Set log level
        level = self.options.get('level', logging.getLevelName(logger.level))
        level = getattr(logging, level, None)
        if level is None:
            # Assume it's an integer:
            level = int(level)

        logger.log(level, '\n' + pformat_msg(contents))
    def __iter__(self):
        logger = logging.getLogger(self.options.get('name', 'transmogrifier'))

        contents = {}
        for item in self.previous:
            if self.condition(item):
                contents[item['_path']] = item.__dict__
            yield item

        # Set log level
        level = self.options.get(
            'level', logging.getLevelName(logger.level))
        level = getattr(logging, level, None)
        if level is None:
            # Assume it's an integer:
            level = int(level)

        logger.log(level, pformat_msg(contents))
    def __iter__(self):
        logger = logging.getLogger(self.options.get('name', 'transmogrifier'))

        types = {}
        for item in self.previous:
            if self.condition(item):
                type_ = item['_type']
                types[type_] = types.get(type_, 0) + 1
            yield item

        # Set log level
        level = self.options.get('level', logging.getLevelName(logger.level))
        level = getattr(logging, level, None)
        if level is None:
            # Assume it's an integer:
            level = int(level)

        # Log the grand total
        logger.log(level, pformat_msg(types))
Exemplo n.º 5
0
    def __call__(self, item, **extras):
        context = {}
        context.update(extras)
        context.update({'item': item})

        m = match_prefix(self.expression)
        if m is not None:
            prefix = m.group(1)
            expr = self.expression[m.end():]
        else:
            prefix = DEFAULT_EXPRESSION_TYPE
            expr = self.expression

        result = self.evaluator(context, {}, prefix, expr)

        if self.logger.isEnabledFor(DEBUG):
            formatted = pformat_msg(result)
            self.logger.debug('Expression returned: {0:s}'.format(formatted))
        return result
Exemplo n.º 6
0
    def __call__(self, item, **extras):
        context = {'item': item}
        context.update(extras)

        m = match_prefix(self.expression)
        if m is not None:
            prefix = m.group(1)
            expr = self.expression[m.end():]
        else:
            prefix = DEFAULT_EXPRESSION_TYPE
            expr = self.expression

        result = self.evaluator(context, {}, prefix, expr)

        if self.logger.isEnabledFor(DEBUG):
            formatted = pformat_msg(result)
            self.logger.debug(
                'Expression returned: {0:s}'.format(formatted))
        return result