docs: def transform_attributes(attrs, cls):
      """Transform some attribute keys.
  
      :param attrs: Properties from the XML
      :type attrs: dict
      :param cls: Class of the entity
      :type cls: class
      """
      transformed = {}
      for key, value in attrs.items():
          if value is None:
              value = ""
          if key == "text":
              transformed["raw_content"] = value
          elif key == "author":
              if cls == DiasporaProfile:
                  # Diaspora Profile XML message contains no GUID. We need the guid. Fetch it.
                  profile = retrieve_and_parse_profile(value)
                  transformed['id'] = value
                  transformed["guid"] = profile.guid
              else:
                  transformed["actor_id"] = value
              transformed["handle"] = value
          elif key == 'guid':
              if cls != DiasporaProfile:
                  transformed["id"] = value
                  transformed["guid"] = value
          elif key in ("root_author", "recipient"):
              transformed["target_id"] = value
              transformed["target_handle"] = value
          elif key in ("target_guid", "root_guid", "parent_guid"):
              transformed["target_id"] = value
              transformed["target_guid"] = value
          elif key in ("first_name", "last_name"):
              values = [attrs.get('first_name'), attrs.get('last_name')]
              values = [v for v in values if v]
              transformed["name"] = " ".join(values)
          elif key == "image_url":
              if "image_urls" not in transformed:
                  transformed["image_urls"] = {}
              transformed["image_urls"]["large"] = value
          elif key == "image_url_small":
              if "image_urls" not in transformed:
                  transformed["image_urls"] = {}
              transformed["image_urls"]["small"] = value
          elif key == "image_url_medium":
              if "image_urls" not in transformed:
                  transformed["image_urls"] = {}
              transformed["image_urls"]["medium"] = value
          elif key == "tag_string":
              if value:
                  transformed["tag_list"] = value.replace("#", "").split(" ")
          elif key == "bio":
              transformed["raw_content"] = value
          elif key == "searchable":
              transformed["public"] = True if value == "true" else False
          elif key in ["target_type"] and cls == DiasporaRetraction:
              transformed["entity_type"] = DiasporaRetraction.entity_type_from_remote(value)
          elif key == "remote_photo_path":
              transformed["remote_path"] = value
          elif key == "remote_photo_name":
              transformed["remote_name"] = value
          elif key == "status_message_guid":
              transformed["linked_guid"] = value
              transformed["linked_type"] = "Post"
          elif key == "author_signature":
              transformed["signature"] = value
          elif key in BOOLEAN_KEYS:
              transformed[key] = True if value == "true" else False
          elif key in DATETIME_KEYS:
              transformed[key] = datetime.strptime(value, "%Y-%m-%dT%H:%M:%SZ")
          elif key in INTEGER_KEYS:
              transformed[key] = int(value)
          else:
              transformed[key] = value
      return transformed