code: def split_field_path(field_path):
      
      if not isinstance(field_path, string_types):
          raise ValueError("Field path %r must be a string" % field_path)
      search_parts = field_path.split('__')
      field = search_parts[0]
      try:
          label = search_parts[1]
      except IndexError:
          label = None
      try:
          subfield = search_parts[2]
      except IndexError:
          subfield = None
      return field, label, subfield
docs: Return the individual parts of a field path that may, apart from the fieldname, have label and subfield parts.
      Examples:
          'start' -> ('start', None, None)
          'phone_numbers__PrimaryPhone' -> ('phone_numbers', 'PrimaryPhone', None)
          'physical_addresses__Home__street' -> ('physical_addresses', 'Home', 'street')