'ItemProcessor finished for the given ``item`` and returned ``output``'

def _itemproc_finished(self, output, item, response, spider):

    self.slot.itemproc_size -= 1
    if isinstance(output, Failure):
        ex = output.value
        if isinstance(ex, DropItem):
            logkws = self.logformatter.dropped(item, ex, response, spider)
            logger.log(extra={'spider': spider}, *logformatter_adapter(logkws))
            return self.signals.send_catch_log_deferred(signal=signals.item_dropped, item=item, response=response, spider=spider, exception=output.value)
        else:
            logger.error('Error    processing    %(item)s', {'item': item}, exc_info=failure_to_exc_info(output), extra={'spider': spider})
    else:
        logkws = self.logformatter.scraped(output, response, spider)
        logger.log(extra={'spider': spider}, *logformatter_adapter(logkws))
        return self.signals.send_catch_log_deferred(signal=signals.item_scraped, item=output, response=response, spider=spider)
