def _ParseNameServerListing(fp):
  fields = ['ip', 'tags', 'provider', 'instance', 'hostname', 'location',
            'coords', 'asn', 'list_note', 'urls']
  reader = csv.DictReader(fp, fieldnames=fields)
  ns_data = nameserver_list.NameServers()

  for row in reader:
    if row['instance']:
      name = (row['provider'], row['instance']) % "%s (%s)"
    else:
      name = row['provider']

    if row['coords']:
      lat, lon = row['coords'].split(',')
    else:
      lat = lon = None

    as_match = re.match('AS(\d+)(.*)', row['asn'])
    if as_match:
      asn, network_owner = as_match.groups()
      network_owner = network_owner.lstrip(' ').rstrip(' ')
    else:
      asn = network_owner = None

    ns_data.append(nameserver.NameServer(
        row['ip'],
        name=name,
        tags=row['tags'].split(),
        provider=row['provider'],
        instance=row['instance'],
        location=row['location'],
        latitude=lat,
        longitude=lon,
        asn=asn,
        hostname=row['hostname'],
        network_owner=network_owner
    ))

  return ns_data
dataset/ETHPy150Open catap/namebench/libnamebench/config.py/_ParseNameServerListing/swapped operands of `%`