docs: def report(policies, start_date, options, output_fh, raw_output_fh=None):
      """Format a policy's extant records into a report."""
      regions = set([p.options.region for p in policies])
      policy_names = set([p.name for p in policies])
      formatter = Formatter(
          policies[0].resource_manager.resource_type,
          extra_fields=options.field,
          include_default_fields=not options.no_default_fields,
          include_region=len(regions) > 1,
          include_policy=len(policy_names) > 1
      )
  
      records = []
      for policy in policies:
          # initialize policy execution context for output access
          policy.ctx.initialize()
          if policy.ctx.output.type == 's3':
              policy_records = record_set(
                  policy.session_factory,
                  policy.ctx.output.config['netloc'],
                  policy.ctx.output.config['path'].strip('/'),
                  start_date)
          else:
              policy_records = fs_record_set(policy.ctx.log_dir, policy.name)
  
          log.debug("Found %d records for region %s", len(policy_records), policy.options.region)
  
          for record in policy_records:
              record['policy'] = policy.name
              record['region'] = policy.options.region
  
          records += policy_records
  
      rows = formatter.to_csv(records)
  
      if options.format == 'csv':
          writer = UnicodeWriter(output_fh, formatter.headers())
          writer.writerow(formatter.headers())
          writer.writerows(rows)
      elif options.format == 'json':
          print(dumps(records, indent=2))
      else:
          # We special case CSV, and for other formats we pass to tabulate
          print(tabulate(rows, formatter.headers(), tablefmt=options.format))
  
      if raw_output_fh is not None:
          dumps(records, raw_output_fh, indent=2)