code: def get_summary_stats(items, attr):
      
      data = {}
      for item in items:
          stats = models.Stats.query.filter_by(**{attr: item.id})
          data[item.id] = {
              'ok': sum([int(stat.ok) for stat in stats]),
              'changed': sum([int(stat.changed) for stat in stats]),
              'failed': sum([int(stat.failed) for stat in stats]),
              'skipped': sum([int(stat.skipped) for stat in stats]),
              'unreachable': sum([int(stat.unreachable) for stat in stats])
          }
  
          # If we're aggregating stats for a playbook, also infer status
          if attr is "playbook_id":
              data[item.id]['status'] = _infer_status(item, data[item.id])
  
      return data
docs: Returns a dictionary of aggregated statistics for 'items' filtered by
      "attr'. For example, it will aggregate statistics for a host across all
      the playbook runs it has been a member of, with the following structure:
  
          data[host.id] = {
              'ok': 4
              'changed': 4
              ...
          }