docs: def get_dict_properties(item, fields, mixed_case_fields=[], formatters={}):
      """Return a tuple containing the item properties.
      :param item: a single dict resource
      :param fields: tuple of strings with the desired field names
      :param mixed_case_fields: tuple of field names to preserve case
      :param formatters: dictionary mapping field names to callables
         to format the values
      """
      row = []
  
      for field in fields:
          if field in mixed_case_fields:
              field_name = field.replace(' ', '_')
          else:
              field_name = field.lower().replace(' ', '_')
          data = item[field_name] if field_name in item else ''
          if field in formatters:
              row.append(formatters[field](data))
          else:
              row.append(data)
      return tuple(row)