docs: def accounts(dbpath, output, format, account,
               config=None, tag=None, tagprefix=None, region=(),
               not_region=(), not_bucket=None):
      """Report on stats by account"""
      d = db.db(dbpath)
      accounts = d.accounts()
      formatter = (
          format == 'csv' and format_accounts_csv or format_accounts_plain)
  
      if region:
          for a in accounts:
              a.buckets = [b for b in a.buckets if b.region in region]
          accounts = [a for a in accounts if a.bucket_count]
  
      if not_region:
          for a in accounts:
              a.buckets = [b for b in a.buckets if b.region not in not_region]
          accounts = [a for a in accounts if a.bucket_count]
  
      if not_bucket:
          for a in accounts:
              a.buckets = [b for b in a.buckets if b.name not in not_bucket]
      if config and tagprefix:
          account_map = {account.name: account for account in accounts}
  
          with open(config) as fh:
              account_data = json.load(fh).get('accounts')
          tag_groups = {}
          for a in account_data:
              if tag is not None and tag not in a['tags']:
                  continue
  
              for t in a['tags']:
                  if t.startswith(tagprefix):
                      tvalue = t[len(tagprefix):]
                      if not tvalue:
                          continue
                      if tvalue not in tag_groups:
                          tag_groups[tvalue] = db.Account(tvalue, [])
                      account_results = account_map.get(a['name'])
                      if not account_results:
                          print("missing %s" % a['name'])
                          continue
                      tag_groups[tvalue].buckets.extend(
                          account_map[a['name']].buckets)
          accounts = tag_groups.values()
  
      formatter(accounts, output)