text: import six
  
  # {'code': 'N', 'label': 'Name', 'required': True, 'multipart': [
  #     'Last Name', 'First Name']},
  PROPERTIES = {
      'NICKNAME': {'label': 'Nickname'},
      'BDAY': {'label': 'Birthday', 'date': True},
      'TEL': {'label': 'Phone'},
      'EMAIL': {'label': 'E-mail'},
      'ADR': {'label': 'Address', 'multipart': [
          'PO Box', 'Room Number', 'House Number', 'City', 'Prefecture',
          'Zip Code', 'Country']},
      'URL': {'label': 'URL'},
      'MEMO': {'label': 'Note'},
  }
  
  
  def build_code(data):
      notation = []
  
      name = data['N']
      if not isinstance(name, six.text_type):
          name = ','.join(name)
      notation.append('N', name)
  
      for prop in PROPERTIES:
          value = data.get(prop['code'])
          if not value:
              continue
          if prop['date']:
              value = value.strftime('%Y%m%d')
          elif prop['multipart']:
              value = ','.join(value)
  