code: def flattened(self):
          
          parsed = self['parsed_whois']
          flat = OrderedDict()
          for key in ('domain', 'created_date', 'updated_date', 'expired_date', 'statuses', 'name_servers'):
              value = parsed[key]
              flat[key] = ' | '.join(value) if type(value) in (list, tuple) else value
  
          registrar = parsed.get('registrar', {})
          for key in ('name', 'abuse_contact_phone', 'abuse_contact_email', 'iana_id', 'url', 'whois_server'):
              flat['registrar_{0}'.format(key)] = registrar[key]
  
          for contact_type in ('registrant', 'admin', 'tech', 'billing'):
              contact = parsed.get('contacts', {}).get(contact_type, {})
              for key in ('name', 'email', 'org', 'street', 'city', 'state', 'postal', 'country', 'phone', 'fax'):
                  value = contact[key]
                  flat['{0}_{1}'.format(contact_type, key)] = ' '.join(value) if type(value) in (list, tuple) else value
  
          return flat
docs: Returns a flattened version of the parsed whois data